aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/test/unit.rb3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 9b32bfddbf..560b3f9e23 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue May 8 13:35:10 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/test/unit.rb (MiniTest#run_test): remove exact trace and get rid
+ of IndexError, which could caused by modified $@ sometimes.
+
Tue May 8 11:21:27 2012 NAKAMURA Usaku <usa@ruby-lang.org>
* test/minitest/metametameta.rb (MetaMetaMetaTestCase#assert_report):
diff --git a/lib/test/unit.rb b/lib/test/unit.rb
index 85e6885fab..ed465e97a6 100644
--- a/lib/test/unit.rb
+++ b/lib/test/unit.rb
@@ -792,11 +792,12 @@ end
class MiniTest::Unit::TestCase
undef run_test
+ RUN_TEST_TRACE = "#{__FILE__}:#{__LINE__+3}:in `run_test'".freeze
def run_test(name)
progname, $0 = $0, "#{$0}: #{self.class}##{name}"
self.__send__(name)
ensure
- $@[-caller.size, 1] = [] if $@
+ $@.delete(RUN_TEST_TRACE) if $@
$0 = progname
end
end