Added unit tests. Meant to be run with nodeunit
This commit is contained in:
3
test/ishr.c0
Normal file
3
test/ishr.c0
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
int main () {
|
||||||
|
return -1 >> 1; /* should return -1 */
|
||||||
|
}
|
||||||
24
test/ishr.c0.bc0
Normal file
24
test/ishr.c0.bc0
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
C0 C0 FF EE # magic number
|
||||||
|
00 09 # version 4, arch = 1 (64 bits)
|
||||||
|
|
||||||
|
00 00 # int pool count
|
||||||
|
# int pool
|
||||||
|
|
||||||
|
00 00 # string pool total size
|
||||||
|
# string pool
|
||||||
|
|
||||||
|
00 01 # function count
|
||||||
|
# function_pool
|
||||||
|
|
||||||
|
#<main>
|
||||||
|
00 00 # number of arguments = 0
|
||||||
|
00 00 # number of local variables = 0
|
||||||
|
00 06 # code length = 6 bytes
|
||||||
|
10 FF # bipush -1 # -1
|
||||||
|
10 01 # bipush 1 # 1
|
||||||
|
7A # ishr # (-(1) >> 1)
|
||||||
|
B0 # return #
|
||||||
|
|
||||||
|
00 00 # native count
|
||||||
|
# native pool
|
||||||
|
|
||||||
1
test/ishr.c0.bc0out
Normal file
1
test/ishr.c0.bc0out
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-1
|
||||||
1
test/ishr.c0.c0out
Normal file
1
test/ishr.c0.c0out
Normal file
@@ -0,0 +1 @@
|
|||||||
|
-1
|
||||||
BIN
test/ishr.c0.ex
Executable file
BIN
test/ishr.c0.ex
Executable file
Binary file not shown.
23
test/tests.js
Normal file
23
test/tests.js
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
parser = require("../src/bytecode-parser.js")
|
||||||
|
c0vm = require("../src/c0vm.js")
|
||||||
|
|
||||||
|
var callbacks = {}
|
||||||
|
|
||||||
|
// Tests that IADD, BIPUSH, and RETURN (from main) work
|
||||||
|
exports.testIADD = function(test) {
|
||||||
|
var result = c0vm.execute(parser.parse("iadd.c0.bc0"), callbacks, false);
|
||||||
|
test.ok(result == -2, "iadd.c0.bc0 - Error in IADD, BIPUSH, or RETURN");
|
||||||
|
test.done();
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.testPrint = function(test) {
|
||||||
|
var result = c0vm.execute(parser.parse("test.bc0"), callbacks, false);
|
||||||
|
test.ok(result == 0, "test.bc0 - Did not print to screen correctly");
|
||||||
|
test.done();
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.testISHR = function(test) {
|
||||||
|
var result = c0vm.execute(parser.parse("ishr.c0.bc0"), callbacks, false);
|
||||||
|
test.ok(result == -1, "ishr.c0.bc0 - -1 >> 1 gave " + result + ", not -1");
|
||||||
|
test.done();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user