diff options
author | Kornelius Kalnbach <murphy@rubychan.de> | 2013-06-23 16:06:02 +0200 |
---|---|---|
committer | Kornelius Kalnbach <murphy@rubychan.de> | 2013-06-23 16:06:02 +0200 |
commit | 0013b649f714f23eef0859921fa7804ca7caef76 (patch) | |
tree | 7c278ee7c420729b4738fe2a195e529ffd2bb6da /test/samples/suite.rb | |
parent | addcbd446066d0da1627112814e3ce1b8d404da0 (diff) | |
parent | 64ca2ae8ad5130bdcf652aa7aa08298de00f20f4 (diff) | |
download | coderay-0013b649f714f23eef0859921fa7804ca7caef76.tar.gz |
Merge branch 'master' into go-scanner
Conflicts:
lib/coderay/helpers/file_type.rb
Diffstat (limited to 'test/samples/suite.rb')
-rw-r--r-- | test/samples/suite.rb | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/test/samples/suite.rb b/test/samples/suite.rb new file mode 100644 index 0000000..cfe53c0 --- /dev/null +++ b/test/samples/suite.rb @@ -0,0 +1,86 @@ +mydir = File.dirname(__FILE__) +$:.unshift mydir + '/../../lib/' + +$VERBOSE = true + +require 'test/unit' +include Test::Unit + +class CodeRaySuite < TestCase + + def self.dir &block + @dir ||= File.dirname(__FILE__) + if block + Dir.chdir @dir, &block + end + @dir + end + + def dir &block + self.class.dir(&block) + end + + def test_ALL + dir do + for input in Dir["*.rb"] - %w(server.rb stream.rb suite.rb) + next if input[/^load_/] + puts "[ testing #{input}... ]" + name = File.basename(input, ".rb") + output = name + '.expected' + code = File.open(input, 'rb') { |f| break f.read } + + result = `ruby -wI../../lib #{input}` + + diff = output.sub '.expected', '.diff' + File.delete diff if File.exist? diff + computed = output.sub '.expected', '.actual' + if File.exist? output + expected = File.read output + ok = expected == result + unless ok + File.open(computed, 'w') { |f| f.write result } + `diff #{output} #{computed} > #{diff}` + puts "Test failed; output written to #{diff}." + end + assert(ok, "Output error: #{computed} != #{output}") + else + File.open(output, 'w') do |f| f.write result end + puts "New test: #{output}" + end + + end + end + end + +end + +require 'test/unit/testsuite' +$suite = TestSuite.new 'CodeRay Demos Test' +$suite << CodeRaySuite.suite + +def load_suite name + begin + require name + '/suite.rb' + rescue LoadError + $stderr.puts <<-ERR + +!! Folder #{File.split(__FILE__).first + '/' + name} not found + + ERR + false + end +end + +if subsuite = ARGV.find { |a| break $1 if a[/^([^-].*)/] } + load_suite(subsuite) or exit +else + Dir[mydir + '/*/'].each { |suite| load_suite suite } +end + +if ARGV.include? '-f' + require 'test/unit/ui/fox/testrunner' + UI::Fox::TestRunner.run $suite +else + require 'test/unit/ui/console/testrunner' + UI::Console::TestRunner.run $suite +end |