Bug #19279


Allow `Coverage.supported?` to recognize oneshot lines mode

Added by kevin-j-m (Kevin Murphy) 9 months ago. Updated 9 months ago.

Target version:
ruby -v:
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-darwin22]


Currently in Ruby 3.2.0, Coverage's new supported? method (introduced in does not recognize support for oneshot lines. Given that it is an available mode of coverage, I'm proposing that Coverage.supported? report that oneshot lines is supported.

Current behavior:

~|⇒ ruby -v
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-darwin22]
~|⇒ irb
irb(main):001:0> require "coverage"
=> true
irb(main):002:0> Coverage.supported?(:lines)
=> true
irb(main):003:0> Coverage.supported?(:oneshot_lines)
=> false

Updated by kevin-j-m (Kevin Murphy) 9 months ago

I have a commit to support this that I'd like to contribute as a PR, but am waiting on doing so until the process here plays out. Thanks!

Updated by ioquatix (Samuel Williams) 9 months ago

I basically agree with fixing this - can you link the PR?

The only feedback I have is that :lines and :oneshot_lines are basically the same from a compatibility POV. I wonder if the flags should actually be :lines | :oneshot. Because other forms of coverage might also want to be oneshot?

@mame (Yusuke Endoh) what do you think?

Updated by mame (Yusuke Endoh) 9 months ago

TBH, I don't fully understand the need for Coverage.supported?. (I thought RUBY_VERSION > "3.1" was good enough as I said in So I am not sure of the need for Coverage.supported?(:oneshot_lines) either. In any case, since it is already in place, I don't see a problem with introducing more Coverage.supported?(:oneshot_lines).

Updated by ioquatix (Samuel Williams) 9 months ago

Okay, I merged it. If you think this should be backported you need to ask @nagachika (Tomoyuki Chikanaga) :)

Actions #6

Updated by ioquatix (Samuel Williams) 9 months ago

  • Status changed from Open to Closed

Updated by Eregon (Benoit Daloze) 9 months ago

@mame (Yusuke Endoh) should be a good enough reason on its own IMHO.
And as we have seen with recent simplecov issues, it's always a bad idea to use a version check for checking if a feature is available.


Also available in: Atom PDF