Skip to content

Commit 64602f4

Browse files
committed
Raise error when Coverage.start called repeatedly
1 parent dbeeb8f commit 64602f4

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

lib/truffle/coverage.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ def self.supported?(mode)
1717
end
1818

1919
def self.start(modes = UNDEFINED)
20+
if Truffle::Coverage.enabled?
21+
raise 'coverage measurement is already setup'
22+
end
23+
2024
if modes == :all || modes == UNDEFINED
2125
options = {}
2226
else
@@ -46,6 +50,7 @@ def self.result(stop: true, clear: true)
4650
{ lines: lines_array.unshift(nil) }
4751
end
4852
end
53+
4954
result
5055
end
5156

spec/ruby/library/coverage/result_spec.rb

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,6 @@
7575
end
7676
end
7777

78-
ruby_version_is '3.1' do
79-
it 'second Coverage.start give exception' do
80-
Coverage.start
81-
-> {
82-
require @config_file.chomp('.rb')
83-
}.should raise_error(RuntimeError, 'coverage measurement is already setup')
84-
ensure
85-
Coverage.result
86-
end
87-
end
88-
8978
it 'does not include the file starting coverage since it is not tracked' do
9079
require @config_file.chomp('.rb')
9180
Coverage.result.should_not include(@config_file)
@@ -124,7 +113,7 @@
124113
}
125114
end
126115

127-
it 'returns the correct results when eval coverage is enabled' do
116+
it 'returns the correct results when eval coverage is disabled' do
128117
Coverage.supported?(:eval).should == true
129118

130119
Coverage.start(lines: true, eval: false)

spec/ruby/library/coverage/start_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,16 @@
1919
Coverage.start.should == nil
2020
end
2121

22+
ruby_version_is '3.1' do
23+
it 'raises error when repeated Coverage.start call happens' do
24+
Coverage.start
25+
26+
-> {
27+
Coverage.start
28+
}.should raise_error(RuntimeError, 'coverage measurement is already setup')
29+
end
30+
end
31+
2232
ruby_version_is '3.2' do
2333
it "accepts :all optional argument" do
2434
Coverage.start(:all)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
fails:Coverage.result second Coverage.start give exception
22
fails:Coverage.result indicates support for different features
33
fails:Coverage.result returns the correct results when eval coverage is enabled
4+
fails:Coverage.result returns the correct results when eval coverage is disabled

0 commit comments

Comments
 (0)