summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/-ext-/test_bug-5832.rb21
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