summaryrefslogtreecommitdiff
path: root/lib/test/unit.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/test/unit.rb')
-rw-r--r--lib/test/unit.rb219
1 files changed, 0 insertions, 219 deletions
diff --git a/lib/test/unit.rb b/lib/test/unit.rb
deleted file mode 100644
index 97d0da5ca5..0000000000
--- a/lib/test/unit.rb
+++ /dev/null
@@ -1,219 +0,0 @@
-# test/unit compatibility layer using minitest.
-
-require 'minitest/unit'
-require 'test/unit/assertions'
-require 'test/unit/testcase'
-require 'optparse'
-
-module Test
- module Unit
- TEST_UNIT_IMPLEMENTATION = 'test/unit compatibility layer using minitest'
-
- module RunCount
- @@run_count = 0
-
- def self.have_run?
- @@run_count.nonzero?
- end
-
- def run(*)
- @@run_count += 1
- super
- end
-
- def run_once
- return if have_run?
- return if $! # don't run if there was an exception
- yield
- end
- module_function :run_once
- end
-
- module Options
- def initialize(&block)
- @init_hook = block
- super(&nil)
- end
-
- def process_args(args = [])
- orig_args = args.dup
- options = {}
- OptionParser.new do |opts|
- setup_options(opts, options)
- opts.parse!(args)
- orig_args -= args
- end
- args = @init_hook.call(args, options) if @init_hook
- non_options(args, options)
- @help = orig_args.map { |s| s =~ /[\s|&<>$()]/ ? s.inspect : s }.join " "
- options
- end
-
- private
- def setup_options(opts, options)
- opts.banner = 'minitest options:'
- opts.version = MiniTest::Unit::VERSION
-
- opts.on '-h', '--help', 'Display this help.' do
- puts opts
- exit
- end
-
- opts.on '-s', '--seed SEED', Integer, "Sets random seed" do |m|
- options[:seed] = m.to_i
- end
-
- opts.on '-v', '--verbose', "Verbose. Show progress processing files." do
- options[:verbose] = true
- self.verbose = options[:verbose]
- end
-
- opts.on '-n', '--name PATTERN', "Filter test names on pattern." do |a|
- options[:filter] = a
- end
- end
-
- def non_options(files, options)
- end
- end
-
- module GlobOption
- include Options
-
- def setup_options(parser, options)
- super
- parser.on '-x', '--exclude PATTERN', 'Exclude test files on pattern.' do |pattern|
- (options[:reject] ||= []) << pattern
- end
- end
-
- def non_options(files, options)
- paths = [options.delete(:base_directory), nil].compact
- if reject = options.delete(:reject)
- reject_pat = Regexp.union(reject.map {|r| /#{r}/ })
- end
- files.map! {|f|
- f = f.tr(File::ALT_SEPARATOR, File::SEPARATOR) if File::ALT_SEPARATOR
- [*paths, nil].any? do |prefix|
- path = prefix ? "#{prefix}/#{f}" : f
- if !(match = Dir["#{path}/**/test_*.rb"]).empty?
- if reject
- match.reject! {|n|
- n[(prefix.length+1)..-1] if prefix
- reject_pat =~ n
- }
- end
- break match
- elsif !reject or reject_pat !~ f and File.exist? path
- break path
- end
- end or
- raise ArgumentError, "file not found: #{f}"
- }
- files.flatten!
- super(files, options)
- end
- end
-
- module LoadPathOption
- include Options
-
- def setup_options(parser, options)
- super
- parser.on '-Idirectory', 'Add library load path' do |dirs|
- dirs.split(':').each { |d| $LOAD_PATH.unshift d }
- end
- end
- end
-
- module GCStressOption
- def setup_options(parser, options)
- super
- parser.on '--[no-]gc-stress', 'Set GC.stress as true' do |flag|
- options[:gc_stress] = flag
- end
- end
-
- def non_options(files, options)
- if options.delete(:gc_stress)
- MiniTest::Unit::TestCase.class_eval do
- oldrun = instance_method(:run)
- define_method(:run) do |runner|
- begin
- gc_stress, GC.stress = GC.stress, true
- oldrun.bind(self).call(runner)
- ensure
- GC.stress = gc_stress
- end
- end
- end
- end
- super
- end
- end
-
- module RequireFiles
- def non_options(files, options)
- super
- files.each {|f|
- d = File.dirname(path = File.expand_path(f))
- unless $:.include? d
- $: << d
- end
- begin
- require path
- rescue LoadError
- puts "#{f}: #{$!}"
- end
- }
- end
- end
-
- def self.new(*args, &block)
- Mini.class_eval do
- include Test::Unit::RequireFiles
- end
- Mini.new(*args, &block)
- end
-
- class Mini < MiniTest::Unit
- include Test::Unit::GlobOption
- include Test::Unit::LoadPathOption
- include Test::Unit::GCStressOption
- include Test::Unit::RunCount
- include Test::Unit::Options
-
- class << self; undef autorun; end
- def self.autorun
- at_exit {
- Test::Unit::RunCount.run_once {
- exit(Test::Unit::Mini.new.run(ARGV) || true)
- }
- } unless @@installed_at_exit
- @@installed_at_exit = true
- end
-
- def _run_suites suites, type
- @interrupt = nil
- result = []
- suites.each {|suite|
- begin
- result << _run_suite(suite, type)
- rescue Interrupt => e
- @interrupt = e
- break
- end
- }
- result
- end
-
- def status(*args)
- result = super
- raise @interrupt if @interrupt
- result
- end
- end
- end
-end
-
-Test::Unit::Mini.autorun