diff options
author | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2022-09-17 20:19:57 +1200 |
---|---|---|
committer | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2022-09-22 22:19:12 +1200 |
commit | 9434a7333c2a23c680a977331a60ca7c502c1ac0 (patch) | |
tree | a0715dd55cdab3816b7065a56815017d2d0139c6 /test/coverage/test_coverage.rb | |
parent | 4c37eaa979d89be14c2142659daba0588aa64912 (diff) |
Enable coverage for eval.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6396
Diffstat (limited to 'test/coverage/test_coverage.rb')
-rw-r--r-- | test/coverage/test_coverage.rb | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/test/coverage/test_coverage.rb b/test/coverage/test_coverage.rb index eefe7e7da6..1bb85b67b3 100644 --- a/test/coverage/test_coverage.rb +++ b/test/coverage/test_coverage.rb @@ -136,7 +136,7 @@ class TestCoverage < Test::Unit::TestCase f.puts 'REPEATS = 400' f.puts 'def add_method(target)' f.puts ' REPEATS.times do' - f.puts ' target.class_eval(<<~RUBY, __FILE__, __LINE__ + 1)' + f.puts ' target.class_eval(<<~RUBY)' f.puts ' def foo' f.puts ' #{"\n" * rand(REPEATS)}' f.puts ' end' @@ -157,6 +157,21 @@ class TestCoverage < Test::Unit::TestCase } end + def test_eval_coverage + assert_in_out_err(%w[-rcoverage], <<-"end;", ["[1, nil, 1, nil]"], []) + Coverage.start + + eval(<<-RUBY, TOPLEVEL_BINDING, "test.rb") + s = String.new + begin + s << "foo + bar".freeze; end + RUBY + + p Coverage.result["test.rb"] + end; + end + def test_nocoverage_optimized_line assert_ruby_status(%w[], "#{<<-"begin;"}\n#{<<-'end;'}") begin; |