Added test case for auto-words and made it pass on amd64 and i386.
[voodoo-lang.git] / test / test
blob49516df31d8c357498115c3ddf27bd8f0a017781
1 #! /usr/bin/env ruby
3 require File.dirname(__FILE__) + '/test'
4 require 'test_language_version'
5 require 'test_parser'
6 require 'test_validator'
7 require 'thread'
9 test_language_version
11 test_validator
13 test_parser
15 add_test 'architectures', '../bin/voodooc --architecture help',
16 `cat architectures.out`
18 add_test 'features', '../bin/voodooc -a i386 --features', `cat features.out`
20 add_test 'help', '../bin/voodooc --help', `cat help.out`
22 add_test('no-input-files',
23 '../bin/voodooc',
24 '',
25 :expected_status => 128,
26 :expected_errors => `cat no-input-files.err`)
28 add_test 'version', '../bin/voodooc --version',
29 "Voodoo Compiler version #{`cat ../VERSION`}"
31 add_test2 'hello', "Hello, world!\n"
33 add_test2 'tail-calls', ''
35 add_test1 'auto-bytes'
37 add_test1 'bytes'
39 add_test1 'call'
41 add_test1 'at'
43 add_test1 'block'
45 add_test1 'else-if'
47 add_test1 'if'
49 add_test1 'goto'
51 add_test2 'fact', "479001600\n"
53 add_test1 'bitwise'
55 add_test1 'plusminus'
57 add_test1 'many-vars'
59 add_test1 'mul'
61 add_test1 'div'
63 add_test1 'mod'
65 add_test1 'raw'
67 add_test1 'rotate'
69 add_test1 'set-at'
71 add_test1 'set-byte'
73 add_test1 'set-word'
75 add_test1 'shift'
77 add_test1 'vtable'
79 add_test1 'gcd'
81 printf 'test_output_name...'
82 increment_errors unless system("$RUBY test_output_name.rb")
84 add_test 'errors',
85 "#{$VOODOOC} -o errors.o errors.voo",
86 '',
87 :expected_status => 1,
88 :expected_errors => `cat errors.err`
90 run_tests $tests, 4
92 exit report_test_results