Bug #19279
closedAllow `Coverage.supported?` to recognize oneshot lines mode
Description
Currently in Ruby 3.2.0, Coverage's new supported?
method (introduced in https://bugs.ruby-lang.org/issues/19026) 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) almost 2 years 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) almost 2 years 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 kevin-j-m (Kevin Murphy) almost 2 years ago
I just created the PR here: https://github.com/ruby/ruby/pull/7040
Updated by mame (Yusuke Endoh) almost 2 years 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 https://bugs.ruby-lang.org/issues/19026#note-6.) 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) almost 2 years ago
Okay, I merged it. If you think this should be backported you need to ask @nagachika (Tomoyuki Chikanaga) :)
Updated by ioquatix (Samuel Williams) almost 2 years ago
- Status changed from Open to Closed
Updated by Eregon (Benoit Daloze) almost 2 years ago
@mame (Yusuke Endoh) https://bugs.ruby-lang.org/issues/19026#note-7 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.