diff options
Diffstat (limited to 'ext/coverage/lib')
| -rw-r--r-- | ext/coverage/lib/coverage.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/ext/coverage/lib/coverage.rb b/ext/coverage/lib/coverage.rb new file mode 100644 index 0000000000..4bd20e22cb --- /dev/null +++ b/ext/coverage/lib/coverage.rb @@ -0,0 +1,19 @@ +require "coverage.so" + +module Coverage + # call-seq: + # line_stub(file) -> array + # + # A simple helper function that creates the "stub" of line coverage + # from a given source code. + 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 |
