summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-01-30 12:53:22 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-01-30 12:53:22 +0000
commitcae4321112270231e3a4aa8c53c07df194a67dc8 (patch)
tree4fe3fd4d3be0c86d44a08d7db3994d278dad7eca /test
parent4b8d9cffdd7d74b858d872840d615c8b82ceaa4f (diff)
merges r25494 from trunk into ruby_1_9_1.
adds a test case for the change -- * vm.c (invoke_block_from_c): return Qnil when its iseq is SPECIAL CONST. [ruby-core:26335] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@26506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_yield.rb22
1 files changed, 21 insertions, 1 deletions
diff --git a/test/ruby/test_yield.rb b/test/ruby/test_yield.rb
index 2a2c6ae80f..3c91ed14de 100644
--- a/test/ruby/test_yield.rb
+++ b/test/ruby/test_yield.rb
@@ -1,7 +1,7 @@
require 'test/unit'
+require_relative 'envutil'
class TestRubyYield < Test::Unit::TestCase
-
def test_ary_each
ary = [1]
ary.each {|a, b, c, d| assert_equal [1,nil,nil,nil], [a,b,c,d] }
@@ -83,6 +83,26 @@ class TestRubyYield < Test::Unit::TestCase
}
assert_equal([1,2,[3],4,5], r, "[ruby-core:19485]")
end
+
+ def test_through_a_method_defined_by_define_method
+ assert_normal_exit(<<-EOS, "[ruby-core:26335]")
+ class C
+ def meth
+ yield 1
+ end
+ end
+
+ class D < C
+ define_method(:meth) do
+ super()
+ end
+ end
+ begin
+ D.new.meth {}
+ rescue LocalJumpError
+ end
+ EOS
+ end
end
require_relative 'sentence'