diff options
author | Yusuke Endoh <[email protected]> | 2025-04-09 19:49:21 +0900 |
---|---|---|
committer | Yusuke Endoh <[email protected]> | 2025-04-09 23:45:54 +0900 |
commit | 0d6263bd416338a339651fb97fe4d62701704c4b (patch) | |
tree | 0d464288118cc14dad3cdc116401c2b486250ed7 /test/coverage | |
parent | ce0d5cc06952317e8b0810ad978d6424f7ed9f6d (diff) |
Fix coverage measurement for negative line numbers
Fixes [Bug #21220]
Co-Authored-By: Mike Bourgeous <[email protected]>
Co-Authored-By: Jean Boussier <[email protected]>
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/13089
Diffstat (limited to 'test/coverage')
-rw-r--r-- | test/coverage/test_coverage.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/coverage/test_coverage.rb b/test/coverage/test_coverage.rb index 9db1f8f253..80f8930472 100644 --- a/test/coverage/test_coverage.rb +++ b/test/coverage/test_coverage.rb @@ -192,6 +192,23 @@ class TestCoverage < Test::Unit::TestCase end; end + def test_eval_negative_lineno + assert_in_out_err(ARGV, <<-"end;", ["[1, 1, 1]"], []) + Coverage.start(eval: true, lines: true) + + eval(<<-RUBY, TOPLEVEL_BINDING, "test.rb", -2) + p # -2 # Not subject to measurement + p # -1 # Not subject to measurement + p # 0 # Not subject to measurement + p # 1 # Subject to measurement + p # 2 # Subject to measurement + p # 3 # Subject to measurement + RUBY + + p Coverage.result["test.rb"][:lines] + end; + end + def test_coverage_supported assert Coverage.supported?(:lines) assert Coverage.supported?(:oneshot_lines) |