Split many-vars into 3 separate test programs
[voodoo-lang.git] / test / test
blob4d83be53c6cfb83cfa8ca23bbea8ff62a2334d8b
1 #! /usr/bin/env ruby
3 dirname = File.dirname(__FILE__)
4 require "#{dirname}/test"
5 require "#{dirname}/test_language_version"
6 require "#{dirname}/test_parser"
7 require "#{dirname}/test_validator"
8 require 'thread'
10 test_language_version
12 test_validator
14 test_parser
16 add_test 'architectures', '../bin/voodooc --architecture help',
17 `cat architectures.out`
19 add_test 'features', '../bin/voodooc -a i386 --features', `cat features.out`
21 add_test 'help', '../bin/voodooc --help', `cat help.out`
23 add_test('no-input-files',
24 '../bin/voodooc',
25 '',
26 :expected_status => 128,
27 :expected_errors => `cat no-input-files.err`)
29 add_test 'version', '../bin/voodooc --version',
30 "Voodoo Compiler version #{`cat ../VERSION`}"
32 add_test2 'hello', "Hello, world!\n"
34 add_test2 'tail-calls', ''
36 add_test1 'bytes'
38 add_test1 'call'
40 add_test1 'at'
42 add_test1 'block'
44 add_test1 'else-if'
46 add_test1 'if'
48 add_test1 'goto'
50 add_test2 'fact', "479001600\n"
52 add_test1 'bitwise'
54 add_test1 'plusminus'
56 add_test1 'many-args'
58 add_test1 'many-args-tail'
60 add_test1 'many-locals'
62 add_test1 'mul'
64 add_test1 'div'
66 add_test1 'mod'
68 add_test1 'raw'
70 add_test1 'rotate'
72 add_test1 'set-byte'
74 add_test1 'set-word'
76 add_test1 'shift'
78 add_test1 'vtable'
80 add_test1 'gcd'
82 printf 'test_output_name...'
83 if system("$RUBY test_output_name.rb")
84 $passed.increment
85 else
86 $failed.increment
87 end
89 add_test 'errors',
90 "#{$VOODOOC} -o errors.o errors.voo",
91 '',
92 :expected_status => 1,
93 :expected_errors => `cat errors.err`
95 run_tests $tests, 4
97 exit report_test_results