diff options
author | Andrew Konchin <[email protected]> | 2025-05-07 13:08:11 +0300 |
---|---|---|
committer | Benoit Daloze <[email protected]> | 2025-05-09 23:22:15 +0200 |
commit | 269ad29de95e41cc8a4eede84b98a81a6ff4f7b6 (patch) | |
tree | 150acf5f6d6c2d401dd46b84b942af26b3699cc9 /spec/ruby/library/coverage | |
parent | 3135eddb4e8c6975b6fa5345f15fdaa55257851a (diff) |
Update to ruby/spec@d8bacef
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/13265
Diffstat (limited to 'spec/ruby/library/coverage')
-rw-r--r-- | spec/ruby/library/coverage/result_spec.rb | 112 | ||||
-rw-r--r-- | spec/ruby/library/coverage/start_spec.rb | 114 | ||||
-rw-r--r-- | spec/ruby/library/coverage/supported_spec.rb | 42 |
3 files changed, 123 insertions, 145 deletions
diff --git a/spec/ruby/library/coverage/result_spec.rb b/spec/ruby/library/coverage/result_spec.rb index bc999a5369..0101eb6a64 100644 --- a/spec/ruby/library/coverage/result_spec.rb +++ b/spec/ruby/library/coverage/result_spec.rb @@ -34,39 +34,37 @@ describe 'Coverage.result' do } end - ruby_version_is "3.2" do - it 'returns results for each mode separately when enabled :all modes' do - Coverage.start(:all) - require @class_file.chomp('.rb') - result = Coverage.result - - result.should == { - @class_file => { + it 'returns results for each mode separately when enabled :all modes' do + Coverage.start(:all) + require @class_file.chomp('.rb') + result = Coverage.result + + result.should == { + @class_file => { + lines: [ + nil, nil, 1, nil, nil, 1, nil, nil, 0, nil, nil, nil, nil, nil, nil, nil + ], + branches: {}, + methods: { + [SomeClass, :some_method, 6, 2, 11, 5] => 0 + } + } + } + end + + it 'returns results for each mode separately when enabled any mode explicitly' do + Coverage.start(lines: true) + require @class_file.chomp('.rb') + result = Coverage.result + + result.should == { + @class_file => + { lines: [ nil, nil, 1, nil, nil, 1, nil, nil, 0, nil, nil, nil, nil, nil, nil, nil - ], - branches: {}, - methods: { - [SomeClass, :some_method, 6, 2, 11, 5] => 0 - } + ] } - } - end - - it 'returns results for each mode separately when enabled any mode explicitly' do - Coverage.start(lines: true) - require @class_file.chomp('.rb') - result = Coverage.result - - result.should == { - @class_file => - { - lines: [ - nil, nil, 1, nil, nil, 1, nil, nil, 0, nil, nil, nil, nil, nil, nil, nil - ] - } - } - end + } end it 'no requires/loads should give empty hash' do @@ -113,48 +111,32 @@ describe 'Coverage.result' do Coverage.result.should_not include(@config_file) end - ruby_version_is '3.1'...'3.2' do - it 'returns the correct results when eval is used' do - Coverage.start - require @eval_code_file.chomp('.rb') - result = Coverage.result - - result.should == { - @eval_code_file => [ - 1, nil, 1, nil, 1, nil, nil, nil, nil, nil, 1 - ] - } - end - end + it 'returns the correct results when eval coverage is enabled' do + Coverage.supported?(:eval).should == true - ruby_version_is '3.2' do - it 'returns the correct results when eval coverage is enabled' do - Coverage.supported?(:eval).should == true - - Coverage.start(lines: true, eval: true) - require @eval_code_file.chomp('.rb') - result = Coverage.result + Coverage.start(lines: true, eval: true) + require @eval_code_file.chomp('.rb') + result = Coverage.result - result.should == { - @eval_code_file => { - lines: [1, nil, 1, nil, 1, 1, nil, nil, nil, nil, 1] - } + result.should == { + @eval_code_file => { + lines: [1, nil, 1, nil, 1, 1, nil, nil, nil, nil, 1] } - end + } + end - it 'returns the correct results when eval coverage is disabled' do - Coverage.supported?(:eval).should == true + it 'returns the correct results when eval coverage is disabled' do + Coverage.supported?(:eval).should == true - Coverage.start(lines: true, eval: false) - require @eval_code_file.chomp('.rb') - result = Coverage.result + Coverage.start(lines: true, eval: false) + require @eval_code_file.chomp('.rb') + result = Coverage.result - result.should == { - @eval_code_file => { - lines: [1, nil, 1, nil, 1, nil, nil, nil, nil, nil, 1] - } + result.should == { + @eval_code_file => { + lines: [1, nil, 1, nil, 1, nil, nil, nil, nil, nil, 1] } - end + } end it "disables coverage measurement when stop option is not specified" do diff --git a/spec/ruby/library/coverage/start_spec.rb b/spec/ruby/library/coverage/start_spec.rb index 757837a462..c921b85401 100644 --- a/spec/ruby/library/coverage/start_spec.rb +++ b/spec/ruby/library/coverage/start_spec.rb @@ -27,63 +27,61 @@ describe 'Coverage.start' do }.should raise_error(RuntimeError, 'coverage measurement is already setup') end - ruby_version_is '3.2' do - it "accepts :all optional argument" do - Coverage.start(:all) - Coverage.should.running? - end - - it "accepts lines: optional keyword argument" do - Coverage.start(lines: true) - Coverage.should.running? - end - - it "accepts branches: optional keyword argument" do - Coverage.start(branches: true) - Coverage.should.running? - end - - it "accepts methods: optional keyword argument" do - Coverage.start(methods: true) - Coverage.should.running? - end - - it "accepts eval: optional keyword argument" do - Coverage.start(eval: true) - Coverage.should.running? - end - - it "accepts oneshot_lines: optional keyword argument" do - Coverage.start(oneshot_lines: true) - Coverage.should.running? - end - - it "ignores unknown keyword arguments" do - Coverage.start(foo: true) - Coverage.should.running? - end - - it "expects a Hash if not passed :all" do - -> { - Coverage.start(42) - }.should raise_error(TypeError, "no implicit conversion of Integer into Hash") - end - - it "does not accept both lines: and oneshot_lines: keyword arguments" do - -> { - Coverage.start(lines: true, oneshot_lines: true) - }.should raise_error(RuntimeError, "cannot enable lines and oneshot_lines simultaneously") - end - - it "enables the coverage measurement if passed options with `false` value" do - Coverage.start(lines: false, branches: false, methods: false, eval: false, oneshot_lines: false) - Coverage.should.running? - end - - it "measures 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 + it "accepts :all optional argument" do + Coverage.start(:all) + Coverage.should.running? + end + + it "accepts lines: optional keyword argument" do + Coverage.start(lines: true) + Coverage.should.running? + end + + it "accepts branches: optional keyword argument" do + Coverage.start(branches: true) + Coverage.should.running? + end + + it "accepts methods: optional keyword argument" do + Coverage.start(methods: true) + Coverage.should.running? + end + + it "accepts eval: optional keyword argument" do + Coverage.start(eval: true) + Coverage.should.running? + end + + it "accepts oneshot_lines: optional keyword argument" do + Coverage.start(oneshot_lines: true) + Coverage.should.running? + end + + it "ignores unknown keyword arguments" do + Coverage.start(foo: true) + Coverage.should.running? + end + + it "expects a Hash if not passed :all" do + -> { + Coverage.start(42) + }.should raise_error(TypeError, "no implicit conversion of Integer into Hash") + end + + it "does not accept both lines: and oneshot_lines: keyword arguments" do + -> { + Coverage.start(lines: true, oneshot_lines: true) + }.should raise_error(RuntimeError, "cannot enable lines and oneshot_lines simultaneously") + end + + it "enables the coverage measurement if passed options with `false` value" do + Coverage.start(lines: false, branches: false, methods: false, eval: false, oneshot_lines: false) + Coverage.should.running? + end + + it "measures 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 diff --git a/spec/ruby/library/coverage/supported_spec.rb b/spec/ruby/library/coverage/supported_spec.rb index 78b3784ee0..9226548c1f 100644 --- a/spec/ruby/library/coverage/supported_spec.rb +++ b/spec/ruby/library/coverage/supported_spec.rb @@ -2,31 +2,29 @@ require_relative '../../spec_helper' require 'coverage' describe "Coverage.supported?" do - ruby_version_is "3.2" do - it "returns true or false if coverage measurement is supported for the given mode" do - [true, false].should.include?(Coverage.supported?(:lines)) - [true, false].should.include?(Coverage.supported?(:branches)) - [true, false].should.include?(Coverage.supported?(:methods)) - [true, false].should.include?(Coverage.supported?(:eval)) - end + it "returns true or false if coverage measurement is supported for the given mode" do + [true, false].should.include?(Coverage.supported?(:lines)) + [true, false].should.include?(Coverage.supported?(:branches)) + [true, false].should.include?(Coverage.supported?(:methods)) + [true, false].should.include?(Coverage.supported?(:eval)) + end - it "returns false for not existing modes" do - Coverage.supported?(:foo).should == false - Coverage.supported?(:bar).should == false - end + it "returns false for not existing modes" do + Coverage.supported?(:foo).should == false + Coverage.supported?(:bar).should == false + end - it "raise TypeError if argument is not Symbol" do - -> { - Coverage.supported?("lines") - }.should raise_error(TypeError, "wrong argument type String (expected Symbol)") + it "raise TypeError if argument is not Symbol" do + -> { + Coverage.supported?("lines") + }.should raise_error(TypeError, "wrong argument type String (expected Symbol)") - -> { - Coverage.supported?([]) - }.should raise_error(TypeError, "wrong argument type Array (expected Symbol)") + -> { + Coverage.supported?([]) + }.should raise_error(TypeError, "wrong argument type Array (expected Symbol)") - -> { - Coverage.supported?(1) - }.should raise_error(TypeError, "wrong argument type Integer (expected Symbol)") - end + -> { + Coverage.supported?(1) + }.should raise_error(TypeError, "wrong argument type Integer (expected Symbol)") end end |