class Rubinius::Coverage
Constants
- VERSION
Public Instance Methods
coverage(code)
click to toggle source
# File lib/rubinius/coverage.rb, line 148 def coverage(code) call_sites = code.call_sites return unless call_sites.any? { |cs| cs.invokes + cs.hits + cs.misses > 0 } cfg = CFG.new code, call_sites cfg.graph counts = {} total = code.lines.size i = 1 while i < total counts[code.lines[i]] = 0 i += 2 end cfg.basic_blocks.values.each do |bb| bb.lines.each { |l| counts[l] = bb.count } end counts end
result()
click to toggle source
# File lib/rubinius/coverage.rb, line 172 def result code_coverage = Hash.new { |h, k| h[k] = [] } ObjectSpace.each_object(Rubinius::CompiledCode) do |code| lines = code_coverage[code.file.to_s] counts = coverage code next unless counts counts.each { |line, count| lines[line] = count } end code_coverage.delete_if { |k, v| v.empty? } code_coverage end
start()
click to toggle source
Coverage
methods
# File lib/rubinius/coverage.rb, line 142 def start ObjectSpace.each_object(Rubinius::CallSite) { |cs| cs.reset } nil end