diff options
-rw-r--r-- | spec/ruby/library/coverage/start_spec.rb | 8 | ||||
-rw-r--r-- | test/coverage/autostart.rb | 2 | ||||
-rw-r--r-- | test/coverage/main.rb | 1 | ||||
-rw-r--r-- | test/coverage/test_coverage.rb | 7 |
4 files changed, 17 insertions, 1 deletions
diff --git a/spec/ruby/library/coverage/start_spec.rb b/spec/ruby/library/coverage/start_spec.rb index ddfad8b47c..a993abbf4e 100644 --- a/spec/ruby/library/coverage/start_spec.rb +++ b/spec/ruby/library/coverage/start_spec.rb @@ -2,5 +2,11 @@ require_relative '../../spec_helper' require 'coverage' describe 'Coverage.start' do - it 'needs to be reviewed for spec completeness' + ruby_version_is '3.2' do + it "can measure coverage within eval" do + Coverage.start(lines: true, eval: true) + eval("Object.new\n"*3, binding, "test.rb", 1) + Coverage.result["test.rb"].should == {lines: [1, 1, 1]} + end + end end diff --git a/test/coverage/autostart.rb b/test/coverage/autostart.rb new file mode 100644 index 0000000000..067fe0a40d --- /dev/null +++ b/test/coverage/autostart.rb @@ -0,0 +1,2 @@ +require 'coverage' +Coverage.start(:all) diff --git a/test/coverage/main.rb b/test/coverage/main.rb new file mode 100644 index 0000000000..74f1e95fa3 --- /dev/null +++ b/test/coverage/main.rb @@ -0,0 +1 @@ +puts Coverage.peek_result[__FILE__][:lines] diff --git a/test/coverage/test_coverage.rb b/test/coverage/test_coverage.rb index 134b41ea6e..6afef8ce1b 100644 --- a/test/coverage/test_coverage.rb +++ b/test/coverage/test_coverage.rb @@ -26,6 +26,13 @@ class TestCoverage < Test::Unit::TestCase end; end + def test_coverage_in_main_script + autostart_path = File.expand_path("autostart.rb", __dir__) + main_path = File.expand_path("main.rb", __dir__) + + assert_in_out_err(['-r', autostart_path, main_path], "", ["1"], []) + end + def test_coverage_running? assert_in_out_err(%w[-rcoverage], <<-"end;", ["false", "true", "true", "false"], []) p Coverage.running? |