diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-12-13 15:01:20 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-12-13 15:01:20 +0000 |
commit | d62f56b04182f5b7b02944d5c169fe44513135b1 (patch) | |
tree | 73830445eb27610ab4a7a4bede497dea016f5153 /test | |
parent | 3dd1e6a91bdd1d743c6f47c910e94b707b7eb190 (diff) | |
download | ruby-d62f56b04182f5b7b02944d5c169fe44513135b1.tar.gz |
* parse.y (primary): point method name line. [ruby-core:40936]
[Bug #5614]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_parse.rb | 14 | ||||
-rw-r--r-- | test/ruby/test_settracefunc.rb | 16 |
2 files changed, 22 insertions, 8 deletions
diff --git a/test/ruby/test_parse.rb b/test/ruby/test_parse.rb index 14990be12c..f0f872013d 100644 --- a/test/ruby/test_parse.rb +++ b/test/ruby/test_parse.rb @@ -825,4 +825,18 @@ x = __ENCODING__ c.instance_eval { remove_class_variable(:@var) } end end + + def test_method_block_location + bug5614 = '[ruby-core:40936]' + expected = nil + e = assert_raise(NoMethodError) do + 1.times do + expected = __LINE__+1 + end.print do + # + end + end + actual = e.backtrace.first[/\A#{Regexp.quote(__FILE__)}:(\d+):/o, 1].to_i + assert_equal(expected, actual, bug5614) + end end diff --git a/test/ruby/test_settracefunc.rb b/test/ruby/test_settracefunc.rb index d6c6d06f38..f53b62f166 100644 --- a/test/ruby/test_settracefunc.rb +++ b/test/ruby/test_settracefunc.rb @@ -23,7 +23,7 @@ class TestSetTraceFunc < Test::Unit::TestCase 4: x = 1 + 1 5: set_trace_func(nil) EOF - assert_equal(["c-return", 3, :set_trace_func, Kernel], + assert_equal(["c-return", 1, :set_trace_func, Kernel], events.shift) assert_equal(["line", 4, __method__, self.class], events.shift) @@ -50,7 +50,7 @@ class TestSetTraceFunc < Test::Unit::TestCase 7: x = add(1, 1) 8: set_trace_func(nil) EOF - assert_equal(["c-return", 3, :set_trace_func, Kernel], + assert_equal(["c-return", 1, :set_trace_func, Kernel], events.shift) assert_equal(["line", 4, __method__, self.class], events.shift) @@ -90,7 +90,7 @@ class TestSetTraceFunc < Test::Unit::TestCase 8: x = Foo.new.bar 9: set_trace_func(nil) EOF - assert_equal(["c-return", 3, :set_trace_func, Kernel], + assert_equal(["c-return", 1, :set_trace_func, Kernel], events.shift) assert_equal(["line", 4, __method__, self.class], events.shift) @@ -143,7 +143,7 @@ class TestSetTraceFunc < Test::Unit::TestCase 9: foo(false) 10: set_trace_func(nil) EOF - assert_equal(["c-return", 3, :set_trace_func, Kernel], + assert_equal(["c-return", 1, :set_trace_func, Kernel], events.shift) assert_equal(["line", 4, __method__, self.class], events.shift) @@ -187,7 +187,7 @@ class TestSetTraceFunc < Test::Unit::TestCase 8: foo 9: set_trace_func(nil) EOF - assert_equal(["c-return", 3, :set_trace_func, Kernel], + assert_equal(["c-return", 1, :set_trace_func, Kernel], events.shift) assert_equal(["line", 4, __method__, self.class], events.shift) @@ -224,7 +224,7 @@ class TestSetTraceFunc < Test::Unit::TestCase 7: end 8: set_trace_func(nil) EOF - assert_equal(["c-return", 3, :set_trace_func, Kernel], + assert_equal(["c-return", 1, :set_trace_func, Kernel], events.shift) assert_equal(["line", 4, __method__, self.class], events.shift) @@ -273,7 +273,7 @@ class TestSetTraceFunc < Test::Unit::TestCase 8: set_trace_func(nil) EOF - [["c-return", 3, :set_trace_func, Kernel], + [["c-return", 1, :set_trace_func, Kernel], ["line", 4, __method__, self.class], ["c-call", 4, :any?, Enumerable], ["c-call", 4, :each, Array], @@ -367,7 +367,7 @@ class TestSetTraceFunc < Test::Unit::TestCase 7: set_trace_func(nil) EOF - [["c-return", 5, :set_trace_func, Kernel], + [["c-return", 3, :set_trace_func, Kernel], ["line", 6, __method__, self.class], ["call", 6, :foobar, FooBar], ["return", 6, :foobar, FooBar], |