1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

ext/coverage/lib/coverage.rb (Coverage.line_stub): use only line events

It wrongly used all linenos of ISeq#trace_points which includes not only
line events but also call, return, and other events.  So, the result
included some linenos that can not be covered at all by line coverage.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
mame 2018-12-20 10:17:37 +00:00
parent 1d13610d8a
commit ab2da43ce4
2 changed files with 2 additions and 2 deletions

View file

@ -6,7 +6,7 @@ module Coverage
iseqs = [RubyVM::InstructionSequence.compile_file(file)]
until iseqs.empty?
iseq = iseqs.pop
iseq.trace_points.each {|n, _| lines[n - 1] = 0 }
iseq.trace_points.each {|n, type| lines[n - 1] = 0 if type == :line }
iseq.each_child {|child| iseqs << child }
end
lines

View file

@ -671,7 +671,7 @@ class TestCoverage < Test::Unit::TestCase
f.puts "end"
end
assert_equal([0, 0, 0, nil, 0, nil, 0], Coverage.line_stub("test.rb"))
assert_equal([0, 0, 0, nil, 0, nil, nil], Coverage.line_stub("test.rb"))
}
}
end