add codegen-test to CI
This commit is contained in:
parent
c7164b6f00
commit
7997defdfb
3
.travis-run-codegen.sh
Executable file
3
.travis-run-codegen.sh
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
make codegen-test
|
|
@ -14,3 +14,4 @@ env:
|
|||
- TEST_SUITE=integration
|
||||
- TEST_SUITE=unit-qemu
|
||||
- TEST_SUITE=nasm
|
||||
- TEST_SUITE=codegen
|
||||
|
|
4
Makefile
4
Makefile
|
@ -174,6 +174,7 @@ build/v86-debug.wasm: src/native/*.c src/native/*.h src/native/codegen/*.c src/n
|
|||
ls -lh build/v86-debug.wasm
|
||||
|
||||
build/codegen-test.wasm: src/native/*.c src/native/*.h src/native/codegen/*.c src/native/codegen/*.h
|
||||
mkdir -p build
|
||||
emcc src/native/codegen/api.c \
|
||||
-Isrc/native/ -Isrc/native/profiler/ \
|
||||
-Wall -Wpedantic -Wextra \
|
||||
|
@ -239,3 +240,6 @@ kvm-unit-test: build/libv86.js build/v86.wasm
|
|||
(cd tests/kvm-unit-tests && ./configure)
|
||||
$(MAKE) -C tests/kvm-unit-tests
|
||||
tests/kvm-unit-tests/run.js tests/kvm-unit-tests/x86/realmode.flat
|
||||
|
||||
codegen-test: build/codegen-test.wasm
|
||||
./tests/codegen/codegen.js
|
||||
|
|
28
tests/codegen.js → tests/codegen/codegen.js
Normal file → Executable file
28
tests/codegen.js → tests/codegen/codegen.js
Normal file → Executable file
|
@ -1,14 +1,15 @@
|
|||
#!/usr/bin/env node
|
||||
"use strict";
|
||||
|
||||
const fs = require("fs");
|
||||
|
||||
global.v86util = {};
|
||||
require("../src/browser/lib.js");
|
||||
require("../../src/browser/lib.js");
|
||||
|
||||
const Codegen = require("../src/codegen.js");
|
||||
const Codegen = require("../../src/codegen.js");
|
||||
console.assert(typeof Codegen === "function");
|
||||
|
||||
const codegen_module_buffer = fs.readFileSync(__dirname + "/../build/codegen-test.wasm");
|
||||
const codegen_module_buffer = fs.readFileSync(__dirname + "/../../build/codegen-test.wasm");
|
||||
|
||||
const vals = {
|
||||
imm8: 1,
|
||||
|
@ -38,7 +39,12 @@ v86util.load_wasm("build/codegen-test.wasm", {
|
|||
g$_previous_ip() { return vals.previous_ip; },
|
||||
}
|
||||
}, function(wm) {
|
||||
return test(new Codegen(wm));
|
||||
try {
|
||||
test(new Codegen(wm));
|
||||
} catch(er) {
|
||||
console.error(er);
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
function test(gen)
|
||||
|
@ -66,7 +72,7 @@ function test(gen)
|
|||
gen.finish();
|
||||
|
||||
buf = gen.get_module_code();
|
||||
fs.writeFileSync(__dirname + "/../build/codegen-test-output.wasm", buf);
|
||||
fs.writeFileSync(__dirname + "/../../build/codegen-test-output.wasm", buf);
|
||||
|
||||
const module = new WebAssembly.Module(buf);
|
||||
|
||||
|
@ -100,14 +106,6 @@ function test(gen)
|
|||
const view = new Uint32Array(imports.e.m.buffer);
|
||||
console.assert(view[vals.instruction_pointer] === 10);
|
||||
console.assert(view[vals.previous_ip] === 10);
|
||||
if (JSON.stringify(store) === JSON.stringify(expected))
|
||||
{
|
||||
console.log("Test passed");
|
||||
}
|
||||
else
|
||||
{
|
||||
console.error("Test failed");
|
||||
console.log("Expected:", expected);
|
||||
console.log("Got:", store);
|
||||
}
|
||||
console.log(store);
|
||||
console.assert(JSON.stringify(store) === JSON.stringify(expected));
|
||||
}
|
Loading…
Reference in a new issue