diff options
Diffstat (limited to 'spec/ruby/library/coverage')
| -rw-r--r-- | spec/ruby/library/coverage/result_spec.rb | 116 | ||||
| -rw-r--r-- | spec/ruby/library/coverage/start_spec.rb | 120 | ||||
| -rw-r--r-- | spec/ruby/library/coverage/supported_spec.rb | 42 |
3 files changed, 128 insertions, 150 deletions
diff --git a/spec/ruby/library/coverage/result_spec.rb b/spec/ruby/library/coverage/result_spec.rb index bc999a5369..2e7d598bb8 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 @@ -82,7 +80,7 @@ describe 'Coverage.result' do Coverage.result -> { Coverage.result - }.should raise_error(RuntimeError, 'coverage measurement is not enabled') + }.should.raise(RuntimeError, 'coverage measurement is not enabled') end it 'second run should give same result' do @@ -110,51 +108,35 @@ describe 'Coverage.result' do it 'does not include the file starting coverage since it is not tracked' do require @config_file.chomp('.rb') - Coverage.result.should_not include(@config_file) + 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..11777347a2 100644 --- a/spec/ruby/library/coverage/start_spec.rb +++ b/spec/ruby/library/coverage/start_spec.rb @@ -24,66 +24,64 @@ describe 'Coverage.start' do -> { Coverage.start - }.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 + }.should.raise(RuntimeError, 'coverage measurement is already setup') + 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(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(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..fcf8a76d79 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(TypeError, "wrong argument type String (expected Symbol)") - -> { - Coverage.supported?([]) - }.should raise_error(TypeError, "wrong argument type Array (expected Symbol)") + -> { + Coverage.supported?([]) + }.should.raise(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(TypeError, "wrong argument type Integer (expected Symbol)") end end |
