diff options
Diffstat (limited to 'basictest/runner.rb')
-rwxr-xr-x | basictest/runner.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/basictest/runner.rb b/basictest/runner.rb new file mode 100755 index 0000000000..2997f3af48 --- /dev/null +++ b/basictest/runner.rb @@ -0,0 +1,30 @@ +#! ./miniruby + +exit if defined?(CROSS_COMPILING) and CROSS_COMPILING +ruby = ENV["RUBY"] +unless ruby + load './rbconfig.rb' + ruby = "./#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}" +end +unless File.exist? ruby + print "#{ruby} is not found.\n" + print "Try `make' first, then `make test', please.\n" + exit false +end +ARGV[0] and opt = ARGV[0][/\A--run-opt=(.*)/, 1] and ARGV.shift + +$stderr.reopen($stdout) +error = '' + +srcdir = File.expand_path('..', File.dirname(__FILE__)) +`#{ruby} #{opt} #{srcdir}/basictest/test.rb #{ARGV.join(' ')}`.each_line do |line| + if line =~ /^end of test/ + print "\ntest succeeded\n" + exit true + end + error << line if %r:^(basictest/test.rb|not): =~ line +end +puts +print error +print "test failed\n" +exit false |