Added tests for array/struct impl, but they in general require printing
to screen
This commit is contained in:
12
test/arrays.c0
Normal file
12
test/arrays.c0
Normal file
@@ -0,0 +1,12 @@
|
||||
#use <conio>
|
||||
|
||||
int main() {
|
||||
int[] A = alloc_array(int, -2);
|
||||
A[3] = 0;
|
||||
A[3] = 1;
|
||||
A[3] = 2;
|
||||
A[3] = 3;
|
||||
|
||||
printint(A[3]);
|
||||
return 0;
|
||||
}
|
||||
52
test/arrays.c0.bc0
Normal file
52
test/arrays.c0.bc0
Normal file
@@ -0,0 +1,52 @@
|
||||
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 01 # number of local variables = 1
|
||||
00 33 # code length = 51 bytes
|
||||
10 FE # bipush -2 # -2
|
||||
BC 04 # newarray 4 # alloc_array(int, -(2))
|
||||
36 00 # vstore 0 # A = alloc_array(int, -(2));
|
||||
15 00 # vload 0 # A
|
||||
10 03 # bipush 3 # 3
|
||||
63 # aadds # &A[3]
|
||||
10 00 # bipush 0 # 0
|
||||
4E # imstore # A[3] = 0;
|
||||
15 00 # vload 0 # A
|
||||
10 03 # bipush 3 # 3
|
||||
63 # aadds # &A[3]
|
||||
10 01 # bipush 1 # 1
|
||||
4E # imstore # A[3] = 1;
|
||||
15 00 # vload 0 # A
|
||||
10 03 # bipush 3 # 3
|
||||
63 # aadds # &A[3]
|
||||
10 02 # bipush 2 # 2
|
||||
4E # imstore # A[3] = 2;
|
||||
15 00 # vload 0 # A
|
||||
10 03 # bipush 3 # 3
|
||||
63 # aadds # &A[3]
|
||||
10 03 # bipush 3 # 3
|
||||
4E # imstore # A[3] = 3;
|
||||
15 00 # vload 0 # A
|
||||
10 03 # bipush 3 # 3
|
||||
63 # aadds # &A[3]
|
||||
2E # imload # A[3]
|
||||
B7 00 00 # invokenative 0 # printint(A[3])
|
||||
57 # pop # (ignore result)
|
||||
10 00 # bipush 0 # 0
|
||||
B0 # return #
|
||||
|
||||
00 01 # native count
|
||||
# native pool
|
||||
00 01 00 09 # printint
|
||||
|
||||
1
test/arrays.c0.bc0out
Normal file
1
test/arrays.c0.bc0out
Normal file
@@ -0,0 +1 @@
|
||||
30
|
||||
0
test/arrays.c0.c0out
Normal file
0
test/arrays.c0.c0out
Normal file
BIN
test/arrays.c0.ex
Executable file
BIN
test/arrays.c0.ex
Executable file
Binary file not shown.
18
test/structs.c0
Normal file
18
test/structs.c0
Normal file
@@ -0,0 +1,18 @@
|
||||
#use <conio>
|
||||
|
||||
struct test {
|
||||
int a;
|
||||
string b;
|
||||
int c;
|
||||
};
|
||||
|
||||
int main() {
|
||||
struct test* t = alloc(struct test);
|
||||
t->a = 1;
|
||||
t->b = "potato chip";
|
||||
t->c = 23;
|
||||
print(t->b);
|
||||
printint(t->a);
|
||||
printint(t->c);
|
||||
return 0;
|
||||
}
|
||||
54
test/structs.c0.bc0
Normal file
54
test/structs.c0.bc0
Normal file
@@ -0,0 +1,54 @@
|
||||
C0 C0 FF EE # magic number
|
||||
00 09 # version 4, arch = 1 (64 bits)
|
||||
|
||||
00 00 # int pool count
|
||||
# int pool
|
||||
|
||||
00 0C # string pool total size
|
||||
# string pool
|
||||
70 6F 74 61 74 6F 20 63 68 69 70 00 # "potato chip"
|
||||
|
||||
00 01 # function count
|
||||
# function_pool
|
||||
|
||||
#<main>
|
||||
00 00 # number of arguments = 0
|
||||
00 01 # number of local variables = 1
|
||||
00 38 # code length = 56 bytes
|
||||
BB 18 # new 24 # alloc(struct test)
|
||||
36 00 # vstore 0 # t = alloc(struct test);
|
||||
15 00 # vload 0 # t
|
||||
62 00 # aaddf 0 # &t->a
|
||||
10 01 # bipush 1 # 1
|
||||
4E # imstore # t->a = 1;
|
||||
15 00 # vload 0 # t
|
||||
62 08 # aaddf 8 # &t->b
|
||||
14 00 00 # aldc 0 # s[0] = "potato chip"
|
||||
4F # amstore # t->b = "potato chip";
|
||||
15 00 # vload 0 # t
|
||||
62 10 # aaddf 16 # &t->c
|
||||
10 17 # bipush 23 # 23
|
||||
4E # imstore # t->c = 23;
|
||||
15 00 # vload 0 # t
|
||||
62 08 # aaddf 8 # &t->b
|
||||
2F # amload # t->b
|
||||
B7 00 00 # invokenative 0 # print(t->b)
|
||||
57 # pop # (ignore result)
|
||||
15 00 # vload 0 # t
|
||||
62 00 # aaddf 0 # &t->a
|
||||
2E # imload # t->a
|
||||
B7 00 01 # invokenative 1 # printint(t->a)
|
||||
57 # pop # (ignore result)
|
||||
15 00 # vload 0 # t
|
||||
62 10 # aaddf 16 # &t->c
|
||||
2E # imload # t->c
|
||||
B7 00 01 # invokenative 1 # printint(t->c)
|
||||
57 # pop # (ignore result)
|
||||
10 00 # bipush 0 # 0
|
||||
B0 # return #
|
||||
|
||||
00 02 # native count
|
||||
# native pool
|
||||
00 01 00 06 # print
|
||||
00 01 00 09 # printint
|
||||
|
||||
1
test/structs.c0.bc0out
Normal file
1
test/structs.c0.bc0out
Normal file
@@ -0,0 +1 @@
|
||||
potato chip1230
|
||||
1
test/structs.c0.c0out
Normal file
1
test/structs.c0.c0out
Normal file
@@ -0,0 +1 @@
|
||||
potato chip1230
|
||||
BIN
test/structs.c0.ex
Executable file
BIN
test/structs.c0.ex
Executable file
Binary file not shown.
@@ -37,3 +37,14 @@ exports.testIF = doTest("testif.c0.bc0", 32);
|
||||
|
||||
exports.testDSQUARED = doTest("dsquared.c0.bc0", 17068);
|
||||
|
||||
exports.testArrays = function(test) {
|
||||
var result = c0vm.execute(parser.parse("arrays.c0.bc0"), callbacks, false);
|
||||
test.ok(false, "test.bc0 - Did not print to screen correctly");
|
||||
test.done();
|
||||
}
|
||||
|
||||
exports.testStructs = function(test) {
|
||||
var result = c0vm.execute(parser.parse("structs.c0.bc0"), callbacks, false);
|
||||
test.ok(false, "test.bc0 - Did not print to screen correctly");
|
||||
test.done();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user