mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
ab2da43ce4
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
14 lines
368 B
Ruby
14 lines
368 B
Ruby
require "coverage.so"
|
|
|
|
module Coverage
|
|
def self.line_stub(file)
|
|
lines = File.foreach(file).map { nil }
|
|
iseqs = [RubyVM::InstructionSequence.compile_file(file)]
|
|
until iseqs.empty?
|
|
iseq = iseqs.pop
|
|
iseq.trace_points.each {|n, type| lines[n - 1] = 0 if type == :line }
|
|
iseq.each_child {|child| iseqs << child }
|
|
end
|
|
lines
|
|
end
|
|
end
|