change test framework to use files for in and out (s-exp)
This commit is contained in:
11
test/cases/root/class_method.tst
Normal file
11
test/cases/root/class_method.tst
Normal file
@ -0,0 +1,11 @@
|
||||
class FooBo
|
||||
Bar.call(35)
|
||||
end
|
||||
|
||||
-- -- --
|
||||
s(:list, [s(:class, "FooBo", nil, [s(:call,
|
||||
s(:name, "call"),
|
||||
s(:arguments,
|
||||
s(:int, 35)),
|
||||
s(:receiver,
|
||||
s(:module, "Bar")))])])
|
17
test/cases/root/double_root.tst
Normal file
17
test/cases/root/double_root.tst
Normal file
@ -0,0 +1,17 @@
|
||||
int foo(ref x)
|
||||
a = 5
|
||||
end
|
||||
|
||||
foo( 3 )
|
||||
-- -- --
|
||||
s(:list, [s(:function, :int,
|
||||
s(:name, "foo"),
|
||||
s(:parameters,
|
||||
s(:field, :ref, :x)),
|
||||
s(:expressions,
|
||||
s(:assign,
|
||||
s(:name, "a"),
|
||||
s(:int, 5)))), s(:call,
|
||||
s(:name, "foo"),
|
||||
s(:arguments,
|
||||
s(:int, 3)))])
|
54
test/cases/root/fibo1.tst
Normal file
54
test/cases/root/fibo1.tst
Normal file
@ -0,0 +1,54 @@
|
||||
int fibonaccit(int n)
|
||||
a = 0
|
||||
b = 1
|
||||
while( n > 1 )
|
||||
tmp = a
|
||||
a = b
|
||||
b = tmp + b
|
||||
puts(b)
|
||||
n = n - 1
|
||||
end
|
||||
end
|
||||
|
||||
fibonaccit( 10 )
|
||||
-- -- --
|
||||
s(:list, [s(:function, :int,
|
||||
s(:name, "fibonaccit"),
|
||||
s(:parameters,
|
||||
s(:field, :int, :n)),
|
||||
s(:expressions,
|
||||
s(:assign,
|
||||
s(:name, "a"),
|
||||
s(:int, 0)),
|
||||
s(:assign,
|
||||
s(:name, "b"),
|
||||
s(:int, 1)),
|
||||
s(:while,
|
||||
s(:condition,
|
||||
s(:operator, ">",
|
||||
s(:name, "n"),
|
||||
s(:int, 1))),
|
||||
s(:expressions,
|
||||
s(:assign,
|
||||
s(:name, "tmp"),
|
||||
s(:name, "a")),
|
||||
s(:assign,
|
||||
s(:name, "a"),
|
||||
s(:name, "b")),
|
||||
s(:assign,
|
||||
s(:name, "b"),
|
||||
s(:operator, "+",
|
||||
s(:name, "tmp"),
|
||||
s(:name, "b"))),
|
||||
s(:call,
|
||||
s(:name, "puts"),
|
||||
s(:arguments,
|
||||
s(:name, "b"))),
|
||||
s(:assign,
|
||||
s(:name, "n"),
|
||||
s(:operator, "-",
|
||||
s(:name, "n"),
|
||||
s(:int, 1))))))), s(:call,
|
||||
s(:name, "fibonaccit"),
|
||||
s(:arguments,
|
||||
s(:int, 10)))])
|
16
test/cases/root/module_assignment.tst
Normal file
16
test/cases/root/module_assignment.tst
Normal file
@ -0,0 +1,16 @@
|
||||
module Fibo
|
||||
a = 5 + foo
|
||||
bar( b , a , r)
|
||||
end
|
||||
|
||||
-- -- --
|
||||
s(:list, [s(:module, "Fibo", [s(:assign,
|
||||
s(:name, "a"),
|
||||
s(:operator, "+",
|
||||
s(:int, 5),
|
||||
s(:name, "foo"))), s(:call,
|
||||
s(:name, "bar"),
|
||||
s(:arguments,
|
||||
s(:name, "b"),
|
||||
s(:name, "a"),
|
||||
s(:name, "r")))])])
|
24
test/cases/root/module_method.tst
Normal file
24
test/cases/root/module_method.tst
Normal file
@ -0,0 +1,24 @@
|
||||
module Fibo
|
||||
int fibonaccit(int n)
|
||||
int a = 0
|
||||
return a
|
||||
end
|
||||
|
||||
fibonaccit( 10 )
|
||||
end
|
||||
|
||||
-- -- --
|
||||
s(:list, [s(:module, "Fibo", [s(:function, :int,
|
||||
s(:name, "fibonaccit"),
|
||||
s(:parameters,
|
||||
s(:field, :int, :n)),
|
||||
s(:expressions,
|
||||
s(:name, "int"),
|
||||
s(:assign,
|
||||
s(:name, "a"),
|
||||
s(:int, 0)),
|
||||
s(:return,
|
||||
s(:name, "a")))), s(:call,
|
||||
s(:name, "fibonaccit"),
|
||||
s(:arguments,
|
||||
s(:int, 10)))])])
|
12
test/cases/root/root_module_class.tst
Normal file
12
test/cases/root/root_module_class.tst
Normal file
@ -0,0 +1,12 @@
|
||||
module FooBo
|
||||
class Bar
|
||||
a = 5 + foo
|
||||
end
|
||||
end
|
||||
|
||||
-- -- --
|
||||
s(:list, [s(:module, "FooBo", [s(:class, "Bar", nil, [s(:assign,
|
||||
s(:name, "a"),
|
||||
s(:operator, "+",
|
||||
s(:int, 5),
|
||||
s(:name, "foo")))])])])
|
Reference in New Issue
Block a user