summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-09-09 05:14:40 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-09-09 05:14:40 +0000
commitb869c9abf0911d3e35b25805b206614baf02f6d6 (patch)
tree409a44affa0f759fe6fc5a96815384d15dcbf3df
parent7260c8c414c9f39ef3521a1183a1172e9698cd81 (diff)
downloadruby-b869c9abf0911d3e35b25805b206614baf02f6d6.tar.gz
ruby-b869c9abf0911d3e35b25805b206614baf02f6d6.tar.xz
ruby-b869c9abf0911d3e35b25805b206614baf02f6d6.zip
Rescue Exception in Test::Unit::TestCase#run. [ruby-core:08783]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@10897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--lib/test/unit/testcase.rb12
2 files changed, 15 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 9c1e56aaf..fd8cc505e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Sep 9 14:08:38 2006 Eric Hodel <drbrain@segment7.net>
+
+ * lib/test/unit/testcase.rb (Test::Unit::TestCase#run): Rescue
+ Exception in Test::Unit::TestCase#run. [ruby-core:08783]
+
Sat Sep 9 04:55:59 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/pstore.rb: open all in binary mode, and get rid of the quirk of
diff --git a/lib/test/unit/testcase.rb b/lib/test/unit/testcase.rb
index 7524de999..017cd15b8 100644
--- a/lib/test/unit/testcase.rb
+++ b/lib/test/unit/testcase.rb
@@ -28,6 +28,12 @@ module Test
STARTED = name + "::STARTED"
FINISHED = name + "::FINISHED"
+ ##
+ # These exceptions are not caught by #run.
+
+ PASSTHROUGH_EXCEPTIONS = [NoMemoryError, SignalException, Interrupt,
+ SystemExit]
+
# Creates a new instance of the fixture for running the
# test represented by test_method_name.
def initialize(test_method_name)
@@ -70,14 +76,16 @@ module Test
__send__(@method_name)
rescue AssertionFailedError => e
add_failure(e.message, e.backtrace)
- rescue StandardError, ScriptError
+ rescue Exception
+ raise if PASSTHROUGH_EXCEPTIONS.include? $!.class
add_error($!)
ensure
begin
teardown
rescue AssertionFailedError => e
add_failure(e.message, e.backtrace)
- rescue StandardError, ScriptError
+ rescue Exception
+ raise if PASSTHROUGH_EXCEPTIONS.include? $!.class
add_error($!)
end
end