summaryrefslogtreecommitdiff
path: root/tool/lib/test/unit/testcase.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/lib/test/unit/testcase.rb')
-rw-r--r--tool/lib/test/unit/testcase.rb78
1 files changed, 15 insertions, 63 deletions
diff --git a/tool/lib/test/unit/testcase.rb b/tool/lib/test/unit/testcase.rb
index 241421d6d9..51ffff37eb 100644
--- a/tool/lib/test/unit/testcase.rb
+++ b/tool/lib/test/unit/testcase.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'test/unit/assertions'
+require_relative 'assertions'
require_relative '../../core_assertions'
module Test
@@ -137,6 +137,9 @@ module Test
attr_reader :__name__ # :nodoc:
+ # Method name of this test.
+ alias method_name __name__
+
PASSTHROUGH_EXCEPTIONS = [NoMemoryError, SignalException,
Interrupt, SystemExit] # :nodoc:
@@ -144,8 +147,7 @@ module Test
# Runs the tests reporting the status to +runner+
def run runner
- @options = runner.options
-
+ @__runner_options__ = runner.options
trap "INFO" do
runner.report.each_with_index do |msg, i|
warn "\n%3d) %s" % [i + 1, msg]
@@ -159,10 +161,9 @@ module Test
start_time = Time.now
result = ""
- srand(runner.options[:seed])
begin
- @passed = nil
+ @__passed__ = nil
self.before_setup
self.setup
self.after_setup
@@ -170,11 +171,11 @@ module Test
result = "." unless io?
time = Time.now - start_time
runner.record self.class, self.__name__, self._assertions, time, nil
- @passed = true
+ @__passed__ = true
rescue *PASSTHROUGH_EXCEPTIONS
raise
rescue Exception => e
- @passed = Test::Unit::PendedError === e
+ @__passed__ = Test::Unit::PendedError === e
time = Time.now - start_time
runner.record self.class, self.__name__, self._assertions, time, e
result = runner.puke self.class, self.__name__, e
@@ -185,7 +186,7 @@ module Test
rescue *PASSTHROUGH_EXCEPTIONS
raise
rescue Exception => e
- @passed = false
+ @__passed__ = false
runner.record self.class, self.__name__, self._assertions, time, e
result = runner.puke self.class, self.__name__, e
end
@@ -207,12 +208,12 @@ module Test
def initialize name # :nodoc:
@__name__ = name
@__io__ = nil
- @passed = nil
- @@current = self # FIX: make thread local
+ @__passed__ = nil
+ @@__current__ = self # FIX: make thread local
end
def self.current # :nodoc:
- @@current # FIX: make thread local
+ @@__current__ # FIX: make thread local
end
##
@@ -237,20 +238,6 @@ module Test
reset
- ##
- # Make diffs for this TestCase use #pretty_inspect so that diff
- # in assert_equal can be more details. NOTE: this is much slower
- # than the regular inspect but much more usable for complex
- # objects.
-
- def self.make_my_diffs_pretty!
- require 'pp'
-
- define_method :mu_pp do |o|
- o.pretty_inspect
- end
- end
-
def self.inherited klass # :nodoc:
@@test_suites[klass] = true
super
@@ -267,53 +254,18 @@ module Test
end
def self.test_suites # :nodoc:
- suites = @@test_suites.keys
-
- case self.test_order
- when :random
- # shuffle test suites based on CRC32 of their names
- salt = "\n" + rand(1 << 32).to_s
- crc_tbl = (0..255).map do |i|
- (0..7).inject(i) {|c,| (c & 1 == 1) ? (0xEDB88320 ^ (c >> 1)) : (c >> 1) }
- end
- suites = suites.sort_by do |suite|
- crc32 = 0xffffffff
- "#{suite.name}#{salt}".each_byte do |data|
- crc32 = crc_tbl[(crc32 ^ data) & 0xff] ^ (crc32 >> 8)
- end
- crc32 ^ 0xffffffff
- end
- when :nosort
- suites
- else
- suites.sort_by { |ts| ts.name.to_s }
- end
+ @@test_suites.keys
end
def self.test_methods # :nodoc:
- methods = public_instance_methods(true).grep(/^test/).map { |m| m.to_s }
-
- case self.test_order
- when :parallel
- max = methods.size
- ParallelEach.new methods.sort.sort_by { rand max }
- when :random then
- max = methods.size
- methods.sort.sort_by { rand max }
- when :alpha, :sorted then
- methods.sort
- when :nosort
- methods
- else
- raise "Unknown test_order: #{self.test_order.inspect}"
- end
+ public_instance_methods(true).grep(/^test/)
end
##
# Returns true if the test passed.
def passed?
- @passed
+ @__passed__
end
##