diff options
author | murphy <murphy@rubychan.de> | 2006-07-11 05:45:00 +0000 |
---|---|---|
committer | murphy <murphy@rubychan.de> | 2006-07-11 05:45:00 +0000 |
commit | f52bf8ab02dfe021e415adb17fb01ea9b1d388f1 (patch) | |
tree | f69ef9b8323175f8fbb0b0d11d8f8d3fea53ea4c /test/suite.rb | |
parent | 7bb2aef0553091a10c197e302475c9f14de8a860 (diff) | |
download | coderay-f52bf8ab02dfe021e415adb17fb01ea9b1d388f1.tar.gz |
Totally revamped test system. Nitro will be fixed soon.
A bunch of new tests. Delphi and XML are now tested, too.
bench/example.dump deleted (depends on Ruby version, OS, whatever. Nothing for the repo.)
Diffstat (limited to 'test/suite.rb')
-rw-r--r-- | test/suite.rb | 113 |
1 files changed, 2 insertions, 111 deletions
diff --git a/test/suite.rb b/test/suite.rb index b7afa79..dbc49e1 100644 --- a/test/suite.rb +++ b/test/suite.rb @@ -1,112 +1,3 @@ -$mydir = File.dirname(__FILE__)
-$:.unshift $mydir + '/../lib/'
+require 'test/coderay_suite'
-$VERBOSE = true
-
-require 'coderay'
-CodeRay::Encoders[:tokens]
-CodeRay::Encoders[:html]
-
-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 extension
- 'in.' + self.class::EXTENSION
- end
-
- def lang
- self.class::LANG
- end
-
- def test_ALL
- puts
- puts " >> Running #{self.class.name} <<"
- puts
- scanner = CodeRay::Scanners[lang].new
- tokenizer = CodeRay::Encoders[:debug].new
- highlighter = CodeRay::Encoders[:html].new(
- :tab_width => 2,
- :line_numbers => :table,
- :wrap => :page,
- :hint => :debug,
- :css => :class
- )
-
- dir do
- for input in Dir["*.#{extension}"]
- puts "testing #{input}..."
- name = File.basename(input, ".#{extension}")
- output = name + '.out.' + tokenizer.file_extension
- code = File.open(input, 'rb') { |f| break f.read }
-
- scanner.string = code
- tokens = scanner.tokens
- result = tokenizer.encode_tokens tokens
- highlighted = highlighter.encode_tokens tokens
-
- File.open(name + '.html', 'w') do |f| f.write highlighted end
-
- if File.exist? output
- expected = File.read output
- ok = expected == result
- computed = output.sub('.out.', '.computed.')
- unless ok
- File.open(computed, 'w') { |f| f.write result }
- print `gvimdiff #{output} #{computed}` if ENV['diff']
- end
- assert(ok, "Scan error: #{computed} != #{output}") unless ENV['diff']
- 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
-
-def load_suite name
- begin
- suite = File.join($mydir, name, 'suite.rb')
- require suite
- rescue LoadError
- $stderr.puts <<-ERR
-
-!! Suite #{suite} not found
-
- ERR
- false
- end
-end
-
-if subsuite = ARGV.find { |a| break $1 if a[/^([^-].*)/] } || ENV['scannerlang']
- load_suite(subsuite) or exit
-else
- Dir[File.join($mydir, '*', '')].each { |suite| load_suite File.basename(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
+CodeRay::TestSuite.run
|