summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-04-10 08:29:30 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-04-10 08:29:30 +0000
commit93df5a0a906587244feff91e2bc1eecb11e31d28 (patch)
tree8dbd35dbd1dedfce694f8d3da38cfb0cf6c28913 /test
parent9a968078bc028c40159a9ee8b4683d9112e5d9b2 (diff)
* vm.c (vm_exec): check other events when RETURN is thrown.
[Bug #10724] * test/ruby/test_settracefunc.rb: add a test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_settracefunc.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/ruby/test_settracefunc.rb b/test/ruby/test_settracefunc.rb
index 58e927c217..1dcd2ccbee 100644
--- a/test/ruby/test_settracefunc.rb
+++ b/test/ruby/test_settracefunc.rb
@@ -1332,4 +1332,24 @@ class TestSetTraceFunc < Test::Unit::TestCase
}
assert_equal [__LINE__ - 3, __LINE__ - 2], lines, 'Bug #10449'
end
+
+ class Bug10724
+ def initialize
+ loop{return}
+ end
+ end
+
+ def test_throwing_return_with_finish_frame
+ target_th = Thread.current
+ evs = []
+
+ TracePoint.new(:call, :return){|tp|
+ return if Thread.current != target_th
+ evs << tp.event
+ }.enable{
+ a = Bug10724.new
+ }
+
+ assert_equal([:call, :return], evs)
+ end
end