Added tests for escaping bytes in string literals.
[voodoo-lang.git] / test / test
blob2eb50099d33f95b8c6d344f49e9a120eacaea86d
1 #! /bin/sh
3 ### Run tests
5 errors=0
7 [ -n "$RUBY" ] || RUBY=ruby
9 # run_test program expected_output
10 run_test() {
11 printf '%s...' "$1"
12 output=`$2`
13 s=$?
14 if [ $s -ne 0 ]
15 then
16 echo "FAIL: exit status is $s"
17 errors=$((errors + 1))
18 elif [ "$output" != "$3" ]
19 then
20 echo "FAIL: wrong output"
21 errors=$((errors + 1))
22 else
23 echo pass
27 run_test2() {
28 run_test "$1" "./$1" "$2"
31 run_test1() {
32 run_test2 "$1" "`cat $1.out`"
35 run_test2 hello "Hello, world!"
37 run_test1 bytes
39 run_test1 call
41 run_test1 at
43 run_test1 if
45 run_test1 goto
47 run_test2 fact 479001600
49 run_test1 bitwise
51 run_test1 plusminus
53 run_test1 many-vars
55 run_test1 mul
57 run_test1 div
59 run_test1 mod
61 run_test1 set-byte
63 run_test1 set-word
65 run_test1 vtable
67 run_test2 tail-calls ''
69 run_test1 99bottles
71 run_test1 gcd
73 printf 'test_output_name...'
74 $RUBY test_output_name.rb
75 [ $? -eq 0 ] || errors=$((errors + 1))
77 if [ $errors -eq 0 ]
78 then
79 echo All tests passed
80 else
81 echo "$errors tests failed"
82 exit 1