diff options
author | ktsj <ktsj@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-08-12 03:04:42 +0000 |
---|---|---|
committer | ktsj <ktsj@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-08-12 03:04:42 +0000 |
commit | 9564e9bd235c2c0b2bccda1849bba9c40b508c3e (patch) | |
tree | 054f6ccdd592b55a9161c1897e095eabf2de5047 /test/-ext- | |
parent | 00468f21099d329de7a6665928f293f80632400f (diff) | |
download | ruby-9564e9bd235c2c0b2bccda1849bba9c40b508c3e.tar.gz |
* vm.c (invoke_block_from_c): fix unintentional block passing.
[ruby-dev:45071] [Bug #5832]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/-ext-')
-rw-r--r-- | test/-ext-/test_bug-5832.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/-ext-/test_bug-5832.rb b/test/-ext-/test_bug-5832.rb new file mode 100644 index 0000000000..11f8a52a95 --- /dev/null +++ b/test/-ext-/test_bug-5832.rb @@ -0,0 +1,21 @@ +require '-test-/bug-5832/bug' + +class Test_BUG_5832 < Test::Unit::TestCase + def test_block_passing + bug5832 = '[ruby-dev:45071]' + + c = Class.new do + define_method(:call_invoke_block_from_c) do + Bug.funcall_callback(self) + end + + def callback + yield if block_given? + end + end + + assert_nothing_raised(RuntimeError, bug5832) do + c.new.call_invoke_block_from_c { raise 'unreachable' } + end + end +end |