Restructured tests so that tests for validator and language version
[voodoo-lang.git] / test / test
blobbe8edf5bbbbca3f0cd59ae3e57c69b76173937e8
1 #! /usr/bin/env ruby
3 require File.dirname(__FILE__) + '/test'
4 require 'test_language_version'
5 require 'test_validator'
6 require 'thread'
8 test_validator
10 test_language_version
12 add_test 'architectures', '../bin/voodooc --architecture help',
13 `cat architectures.out`
15 add_test 'features', '../bin/voodooc -a i386 --features', `cat features.out`
17 add_test 'help', '../bin/voodooc --help', `cat help.out`
19 add_test('no-input-files',
20 '../bin/voodooc',
21 '',
22 :expected_status => 128,
23 :expected_errors => `cat no-input-files.err`)
25 add_test 'version', '../bin/voodooc --version',
26 "Voodoo Compiler version #{`cat ../VERSION`}"
28 add_test2 'hello', "Hello, world!\n"
30 add_test2 'tail-calls', ''
32 add_test1 'bytes'
34 add_test1 'call'
36 add_test1 'at'
38 add_test1 'block'
40 add_test1 'else-if'
42 add_test1 'if'
44 add_test1 'goto'
46 add_test2 'fact', "479001600\n"
48 add_test1 'bitwise'
50 add_test1 'plusminus'
52 add_test1 'many-vars'
54 add_test1 'mul'
56 add_test1 'div'
58 add_test1 'mod'
60 add_test1 'raw'
62 add_test1 'rotate'
64 add_test1 'set-byte'
66 add_test1 'set-word'
68 add_test1 'shift'
70 add_test1 'vtable'
72 add_test1 'gcd'
74 printf 'test_output_name...'
75 increment_errors unless system("$RUBY test_output_name.rb")
77 add_test 'errors',
78 "#{$VOODOOC} -o errors.o errors.voo",
79 '',
80 :expected_status => 1,
81 :expected_errors => `cat errors.err`
83 run_tests $tests, 4
85 exit report_test_results