Actions
Feature #13667
closedAdd Coverage.running? to quickly check if Coverage is enabled.
Feature #13667:
Add Coverage.running? to quickly check if Coverage is enabled.
Description
Since we can't RubyVM::InstructionSequence#to_binary
when Coverage
is running, it is useful to be able to ask ruby if coverage is active.
This is possible with Coverage.peek_result
, but not efficient, since it involves quite a bit of data copying.
I've used the private symbol rb_get_coverages
in bootsnap for now but this feels worth exposing publicly.
> Benchmark.realtime { 100.times{ Coverage.peek_result } }
=> 1.3659249999909662
> Benchmark.realtime { 100.times{ Bootsnap::CompileCache::Native.coverage_running? } }
=> 5.099998088553548e-05
Example usage:
class RubyVM::InstructionSequence
def load_iseq(path)
return nil if defined?(Coverage) && Coverage.running?
# ...
end
end
Files
Actions