summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-11-18 11:24:36 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-11-18 11:24:36 +0000
commit9f8d00ff9aa85d097def654494b16c2ce09d8e92 (patch)
tree0fcc61192c6ddd51daed139482b9761c4d4f69bc /test
parentbc090868b8e480ac4d179bc6b7d2ba65d4f82aef (diff)
merge revision(s) 48609: [Backport #10449] [Backport #11651]
* compile.c (iseq_compile_each): remove duplicated line event. [Bug #10449] * test/ruby/test_settracefunc.rb: add and fix tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@52640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_settracefunc.rb32
1 files changed, 24 insertions, 8 deletions
diff --git a/test/ruby/test_settracefunc.rb b/test/ruby/test_settracefunc.rb
index ba9e618ea9..2e9caa3e8c 100644
--- a/test/ruby/test_settracefunc.rb
+++ b/test/ruby/test_settracefunc.rb
@@ -509,7 +509,6 @@ class TestSetTraceFunc < Test::Unit::TestCase
[:return, 16, "xyzzy", xyzzy.class, :bar, xyzzy, :XYZZY_bar, xyzzy],
[:return, 12, "xyzzy", xyzzy.class, :foo, xyzzy, :XYZZY_foo, xyzzy],
[:line, 20, "xyzzy", TestSetTraceFunc, method, self, :outer, :nothing],
- [:line, 20, "xyzzy", TestSetTraceFunc, method, self, :outer, :nothing],
[:c_call, 20, "xyzzy", Kernel, :raise, self, :outer, :nothing],
[:c_call, 20, "xyzzy", Exception, :exception, RuntimeError, :outer, :nothing],
[:c_call, 20, "xyzzy", Exception, :initialize, raised_exc, :outer, :nothing],
@@ -565,14 +564,17 @@ class TestSetTraceFunc < Test::Unit::TestCase
def test_tracepoint
events1, answer_events = *trace_by_tracepoint(:line, :class, :end, :call, :return, :c_call, :c_return, :raise)
- mesg = events1.map{|e|
- if false
- p [:event, e[0]]
- p [:line_file, e[1], e[2]]
- p [:id, e[4]]
+ ms = [events1, answer_events].map{|evs|
+ evs.map{|e|
+ "#{e[0]} - #{e[2]}:#{e[1]} id; #{e[4]}"
+ }
+ }
+
+ mesg = ms[0].zip(ms[1]).map{|a, b|
+ if a != b
+ "#{a} <-> #{b}"
end
- "#{e[0]} - #{e[2]}:#{e[1]} id: #{e[4]}"
- }.join("\n")
+ }.compact.join("\n")
answer_events.zip(events1){|answer, event|
assert_equal answer, event, mesg
}
@@ -1417,6 +1419,20 @@ class TestSetTraceFunc < Test::Unit::TestCase
end
end
+ def test_no_duplicate_line_events
+ lines = []
+ dummy = []
+
+ TracePoint.new(:line){|tp|
+ next unless target_thread?
+ lines << tp.lineno
+ }.enable{
+ dummy << (1) + (2)
+ dummy << (1) + (2)
+ }
+ assert_equal [__LINE__ - 3, __LINE__ - 2], lines, 'Bug #10449'
+ end
+
class Bug10724
def initialize
loop{return}