#!/usr/local/bin/ruby
ENV["RUBYLIB"] ||= ""
ENV["RUBYLIB"] = "tests:../lib:" + ENV["RUBYLIB"]
SKIPED = []
def skip(s)
SKIPED.push s
end
def allow(script)
# slow
if !ENV["TESTS"] || ENV["TESTS"].empty?
case script
when /^sample-factorize04\.rb$/ ; skip(script); return false
end
end
# little slow
if ENV["TESTF"] && !ENV["TESTF"].empty?
case script
when /\bsample-factorize05\.rb$/; skip(script); return false
when /\bsample-jordan-form\.rb$/; skip(script); return false
when /\bsample-jordan-form01\.rb$/; skip(script); return false
end
end
# 1.8.0 BUG
if ENV["TEST8"] && !ENV["TEST8"].empty?
case script
when /\bsample-m-factorize01\.rb$/; skip(script); return false
when /\bsample-galois-group01\.rb$/; skip(script); return false
when /\btest-algebraic-equation\.rb$/; skip(script); return false
when /\btest-jordan-form\.rb$/; skip(script); return false
when /\btest-splitting-field\.rb$/; skip(script); return false
end
end
true
end
$SUDDEN_DETH = true
def mktitle(head, ch = "#", ch0 = ch)
title = ch0 + " #{head} " + ch0
f = ""
f << ch * (title.size/ch.size) << "\n"
f << ch0 << " " * (title.size-ch0.size*2) << ch0 << "\n"
f << title << "\n"
f << ch0 << " " * (title.size-ch0.size*2) << ch0 << "\n"
f << ch * (title.size/ch.size) << "\n"
f
end
def testscript(fname)
script = File.basename(fname)
command = "ruby" + " " + fname
print mktitle("TEST of '#{script}'")
r = system(command)
if r
print mktitle("TEST SUCCEEDED. '#{script}'", "*", "|")
puts
else
print mktitle("TEST FAILED. '#{script}'", "X")
puts
if $SUDDEN_DETH
puts "\007"
exit(255)
end
end
end
starttime = Time.new
ARGV.each do |fname|
script = File.basename(fname)
dir = File.dirname(fname)
if script =~ /^test-.*.list$/
open(fname) do |f|
f.each do |line|
next if line =~ /^#/ || line =~ /^\s*$/
x = dir + "/" + line.chomp
testscript(x)
end
end
elsif script =~ /^test-00-.*\.rb$/
#testscript(fname)
elsif script =~ /^test-.*\.rb$/ && allow(script)
testscript(fname)
elsif script =~ /^sample-.*\.rb$/ && allow(script)
testscript(fname)
else
puts "SKIP: #{fname}"
next
end
end
spendtime = Time.now - starttime
puts
SKIPED.each do |s|
puts "SKIPED: #{s}."
end
puts "\007"; sleep 0.2; puts "\007"
print mktitle(" ALL TEST SUCCEEDED. (#{spendtime} sec.) ", "o", "|")
syntax highlighted by Code2HTML, v. 0.9.1