summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-02 02:20:42 +0000
committerntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-02 02:20:42 +0000
commit18ef8f10782e202f1605ff2d3d59241f62989b67 (patch)
treec7f409e15a07e445cdb5ee22335735eb1e75c229
parent8caf81f1eafc07c14ec8ed006e07c362965ed32f (diff)
* lib/test/unit/assertions.rb: should not capture an
AssertionFailedError unless explicitly requested. * test/testunit/test_assertions.rb: ditto. * test/testunit/collector/test_objectspace.rb: fixed a test failure caused by methods being returned in different orders on different platforms by moving test sorting from TestSuite into the locations where suites are constructed. [ruby-talk:83156] * lib/test/unit/testcase.rb: ditto. * lib/test/unit/testsuite.rb: ditto. * lib/test/unit/collector/objectspace.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog20
-rw-r--r--lib/test/unit/assertions.rb8
-rw-r--r--lib/test/unit/collector/objectspace.rb2
-rw-r--r--lib/test/unit/testcase.rb6
-rw-r--r--lib/test/unit/testsuite.rb2
-rw-r--r--test/testunit/collector/test_objectspace.rb14
-rw-r--r--test/testunit/test_assertions.rb5
7 files changed, 40 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index c375c80a35..5e2f892624 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+Thu Oct 2 11:17:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+
+ * lib/test/unit/assertions.rb: should not capture an
+ AssertionFailedError unless explicitly requested.
+
+ * test/testunit/test_assertions.rb: ditto.
+
+ * test/testunit/collector/test_objectspace.rb: fixed a test failure
+ caused by methods being returned in different orders on different
+ platforms by moving test sorting from TestSuite into the locations
+ where suites are constructed. [ruby-talk:83156]
+
+ * lib/test/unit/testcase.rb: ditto.
+
+ * lib/test/unit/testsuite.rb: ditto.
+
+ * lib/test/unit/collector/objectspace.rb: ditto.
+
Thu Oct 2 03:25:01 2003 NAKAMURA Usaku <usa@ruby-lang.org>
* eval.c (rb_thread_raise): prototype; avoid VC++ warning.
@@ -1554,7 +1572,7 @@ For the changes before 1.8.0, see doc/ChangeLog-1.8.0
Local variables:
add-log-time-format: (lambda ()
(let* ((time (current-time))
- (diff (+ (cadr time) 32400))
+ (diff (+ (cadr time) 32400))
(lo (% diff 65536))
(hi (+ (car time) (/ diff 65536))))
(format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))
diff --git a/lib/test/unit/assertions.rb b/lib/test/unit/assertions.rb
index b0df0ea2db..2833eba10d 100644
--- a/lib/test/unit/assertions.rb
+++ b/lib/test/unit/assertions.rb
@@ -182,15 +182,15 @@ module Test # :nodoc:
end
begin
yield
- rescue Exception => thrown_exception
- if (args.empty? || args.include?(thrown_exception.class))
- full_message = build_message(message, thrown_exception) do |arg1|
+ rescue Exception => e
+ if ((args.empty? && !e.instance_of?(AssertionFailedError)) || args.include?(e.class))
+ full_message = build_message(message, e) do |arg1|
"Exception raised:\n" +
arg1
end
flunk(full_message)
else
- raise thrown_exception.class, thrown_exception.message, thrown_exception.backtrace
+ raise e.class, e.message, e.backtrace
end
end
nil
diff --git a/lib/test/unit/collector/objectspace.rb b/lib/test/unit/collector/objectspace.rb
index 32b6332689..162f1ec4f5 100644
--- a/lib/test/unit/collector/objectspace.rb
+++ b/lib/test/unit/collector/objectspace.rb
@@ -18,7 +18,7 @@ module Test
@source.each_object(Class) do |klass|
tests.concat(klass.suite.tests) if(Test::Unit::TestCase > klass)
end
- tests.each{|test| suite << test if(include(test))}
+ tests.sort_by{|t| t.name}.each{|test| suite << test if(include(test))}
suite
end
diff --git a/lib/test/unit/testcase.rb b/lib/test/unit/testcase.rb
index 369c944349..c831b764a5 100644
--- a/lib/test/unit/testcase.rb
+++ b/lib/test/unit/testcase.rb
@@ -29,7 +29,7 @@ module Test
# Creates a new instance of the fixture for running the
# test represented by test_method_name.
def initialize(test_method_name)
- if ((!respond_to?(test_method_name)) || (method(test_method_name).arity != 0))
+ unless(respond_to?(test_method_name) && method(test_method_name).arity == 0)
throw :invalid_test
end
@method_name = test_method_name
@@ -41,9 +41,9 @@ module Test
# each method.
def self.suite
method_names = public_instance_methods(true)
- tests = method_names.delete_if { |method_name| method_name !~ /^test.+/ }
+ tests = method_names.delete_if {|method_name| method_name !~ /^test./}
suite = TestSuite.new(name)
- tests.each do
+ tests.sort.each do
|test|
catch(:invalid_test) do
suite << new(test)
diff --git a/lib/test/unit/testsuite.rb b/lib/test/unit/testsuite.rb
index 589ad7151e..4ece3257ca 100644
--- a/lib/test/unit/testsuite.rb
+++ b/lib/test/unit/testsuite.rb
@@ -30,7 +30,7 @@ module Test
# TestSuite.
def run(result, &progress_block)
yield(STARTED, name)
- @tests.sort { |test1, test2| test1.name <=> test2.name }.each do |test|
+ @tests.each do |test|
test.run(result, &progress_block)
end
yield(FINISHED, name)
diff --git a/test/testunit/collector/test_objectspace.rb b/test/testunit/collector/test_objectspace.rb
index d596e1d311..9e102536a5 100644
--- a/test/testunit/collector/test_objectspace.rb
+++ b/test/testunit/collector/test_objectspace.rb
@@ -17,7 +17,7 @@ module Test
end
@tc2 = Class.new(TestCase) do
- def test_3
+ def test_0
end
end
@@ -34,9 +34,9 @@ module Test
def test_basic_collection
expected = TestSuite.new("name")
+ expected << @tc2.new('test_0')
expected << @tc1.new('test_1')
expected << @tc1.new('test_2')
- expected << @tc2.new('test_3')
assert_equal(expected, ObjectSpace.new(@object_space).collect("name"))
end
@@ -47,25 +47,25 @@ module Test
assert_equal(expected, collector.collect)
expected = TestSuite.new(ObjectSpace::NAME)
+ expected << @tc2.new('test_0')
expected << @tc1.new('test_1')
expected << @tc1.new('test_2')
- expected << @tc2.new('test_3')
collector = ObjectSpace.new(@object_space)
collector.filter = proc{|test| true}
assert_equal(expected, collector.collect)
expected = TestSuite.new(ObjectSpace::NAME)
+ expected << @tc2.new('test_0')
expected << @tc1.new('test_1')
- expected << @tc2.new('test_3')
collector = ObjectSpace.new(@object_space)
- collector.filter = proc{|test| ['test_1', 'test_3'].include?(test.method_name)}
+ collector.filter = proc{|test| ['test_1', 'test_0'].include?(test.method_name)}
assert_equal(expected, collector.collect)
expected = TestSuite.new(ObjectSpace::NAME)
+ expected << @tc2.new('test_0')
expected << @tc1.new('test_1')
- expected << @tc2.new('test_3')
collector = ObjectSpace.new(@object_space)
- collector.filter = [proc{|test| test.method_name == 'test_1'}, proc{|test| test.method_name == 'test_3'}]
+ collector.filter = [proc{|test| test.method_name == 'test_1'}, proc{|test| test.method_name == 'test_0'}]
assert_equal(expected, collector.collect)
end
end
diff --git a/test/testunit/test_assertions.rb b/test/testunit/test_assertions.rb
index ee52a503a6..ec4b2c0c13 100644
--- a/test/testunit/test_assertions.rb
+++ b/test/testunit/test_assertions.rb
@@ -283,6 +283,11 @@ module Test
raise "Error"
}
}
+ check_fails("Failure") do
+ assert_nothing_raised do
+ flunk("Failure")
+ end
+ end
end
def test_flunk