summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spec/ruby/library/coverage/start_spec.rb8
-rw-r--r--test/coverage/autostart.rb2
-rw-r--r--test/coverage/main.rb1
-rw-r--r--test/coverage/test_coverage.rb7
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?