Project

General

Profile

Actions

Bug #19279

closed

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

Added by kevin-j-m (Kevin Murphy) over 1 year ago. Updated over 1 year ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-darwin22]
[ruby-core:111485]

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) over 1 year 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) over 1 year 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) over 1 year 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) over 1 year 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) over 1 year ago

  • Status changed from Open to Closed

Updated by Eregon (Benoit Daloze) over 1 year 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.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like1Like0Like0