diff options
Diffstat (limited to 'test/rubygems/test_gem_requirement.rb')
-rw-r--r-- | test/rubygems/test_gem_requirement.rb | 105 |
1 files changed, 60 insertions, 45 deletions
diff --git a/test/rubygems/test_gem_requirement.rb b/test/rubygems/test_gem_requirement.rb index b4367681d0..de0d11ec00 100644 --- a/test/rubygems/test_gem_requirement.rb +++ b/test/rubygems/test_gem_requirement.rb @@ -1,14 +1,23 @@ # frozen_string_literal: true -require_relative 'helper' + +require_relative "helper" require "rubygems/requirement" class TestGemRequirement < Gem::TestCase def test_concat - r = req '>= 1' + r = req ">= 1" + + r.concat ["< 2"] + + assert_equal [[">=", v(1)], ["<", v(2)]], r.requirements + end - r.concat ['< 2'] + def test_initialize_copy + r = req("= 1.2") + r2 = r.dup - assert_equal [['>=', v(1)], ['<', v(2)]], r.requirements + assert_equal r.requirements, r2.requirements + refute_same r.requirements, r2.requirements end def test_equals2 @@ -60,42 +69,42 @@ class TestGemRequirement < Gem::TestCase end def test_for_lockfile - assert_equal ' (~> 1.0)', req('~> 1.0').for_lockfile + assert_equal " (~> 1.0)", req("~> 1.0").for_lockfile - assert_equal ' (~> 1.0, >= 1.0.1)', req('>= 1.0.1', '~> 1.0').for_lockfile + assert_equal " (~> 1.0, >= 1.0.1)", req(">= 1.0.1", "~> 1.0").for_lockfile - duped = req '= 1.0' - duped.requirements << ['=', v('1.0')] + duped = req "= 1.0" + duped.requirements << ["=", v("1.0")] - assert_equal ' (= 1.0)', duped.for_lockfile + assert_equal " (= 1.0)", duped.for_lockfile assert_nil Gem::Requirement.default.for_lockfile end def test_parse - assert_equal ['=', Gem::Version.new(1)], Gem::Requirement.parse(' 1') - assert_equal ['=', Gem::Version.new(1)], Gem::Requirement.parse('= 1') - assert_equal ['>', Gem::Version.new(1)], Gem::Requirement.parse('> 1') - assert_equal ['=', Gem::Version.new(1)], Gem::Requirement.parse("=\n1") - assert_equal ['=', Gem::Version.new(1)], Gem::Requirement.parse('1.0') + assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse(" 1") + assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse("= 1") + assert_equal [">", Gem::Version.new(1)], Gem::Requirement.parse("> 1") + assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse("=\n1") + assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse("1.0") - assert_equal ['=', Gem::Version.new(2)], - Gem::Requirement.parse(Gem::Version.new('2')) + assert_equal ["=", Gem::Version.new(2)], + Gem::Requirement.parse(Gem::Version.new("2")) end - if RUBY_VERSION >= '2.5' && !(Gem.java_platform? && ENV["JRUBY_OPTS"] =~ /--debug/) + unless Gem.java_platform? && ENV["JRUBY_OPTS"].to_s.include?("--debug") def test_parse_deduplication - assert_same '~>', Gem::Requirement.parse('~> 1').first + assert_same "~>", Gem::Requirement.parse("~> 1").first end end def test_parse_bad [ nil, - '', - '! 1', - '= junk', - '1..2', + "", + "! 1", + "= junk", + "1..2", ].each do |bad| e = assert_raise Gem::Requirement::BadRequirementError do Gem::Requirement.parse bad @@ -108,28 +117,30 @@ class TestGemRequirement < Gem::TestCase end def test_prerelease_eh - r = req '= 1' + r = req "= 1" refute r.prerelease? - r = req '= 1.a' + r = req "= 1.a" assert r.prerelease? - r = req '> 1.a', '< 2' + r = req "> 1.a", "< 2" assert r.prerelease? end def test_satisfied_by_eh_bang_equal - r = req '!= 1.2' + r = req "!= 1.2" assert_satisfied_by "1.1", r refute_satisfied_by "1.2", r assert_satisfied_by "1.3", r assert_raise ArgumentError do - assert_satisfied_by nil, r + Gem::Deprecate.skip_during do + assert_satisfied_by nil, r + end end end @@ -141,7 +152,9 @@ class TestGemRequirement < Gem::TestCase refute_satisfied_by "1.3", r assert_raise ArgumentError do - assert_satisfied_by nil, r + Gem::Deprecate.skip_during do + assert_satisfied_by nil, r + end end end @@ -153,7 +166,9 @@ class TestGemRequirement < Gem::TestCase refute_satisfied_by "1.3", r assert_raise ArgumentError do - assert_satisfied_by nil, r + Gem::Deprecate.skip_during do + assert_satisfied_by nil, r + end end end @@ -280,7 +295,7 @@ class TestGemRequirement < Gem::TestCase end def test_illformed_requirements - [ ">>> 1.3.5", "> blah" ].each do |rq| + [">>> 1.3.5", "> blah"].each do |rq| assert_raise Gem::Requirement::BadRequirementError, "req [#{rq}] should fail" do Gem::Requirement.new rq end @@ -362,16 +377,16 @@ class TestGemRequirement < Gem::TestCase end def test_specific - refute req('> 1') .specific? - refute req('>= 1').specific? + refute req("> 1") .specific? + refute req(">= 1").specific? - assert req('!= 1').specific? - assert req('< 1') .specific? - assert req('<= 1').specific? - assert req('= 1') .specific? - assert req('~> 1').specific? + assert req("!= 1").specific? + assert req("< 1") .specific? + assert req("<= 1").specific? + assert req("= 1") .specific? + assert req("~> 1").specific? - assert req('> 1', '> 2').specific? # GIGO + assert req("> 1", "> 2").specific? # GIGO end def test_bad @@ -392,12 +407,12 @@ class TestGemRequirement < Gem::TestCase end def test_hash_with_multiple_versions - r1 = req('1.0', '2.0') - r2 = req('2.0', '1.0') + r1 = req("1.0", "2.0") + r2 = req("2.0", "1.0") assert_equal r1.hash, r2.hash - r1 = req('1.0', '2.0').tap {|r| r.concat(['3.0']) } - r2 = req('3.0', '1.0').tap {|r| r.concat(['2.0']) } + r1 = req("1.0", "2.0").tap {|r| r.concat(["3.0"]) } + r2 = req("3.0", "1.0").tap {|r| r.concat(["2.0"]) } assert_equal r1.hash, r2.hash end @@ -430,19 +445,19 @@ class TestGemRequirement < Gem::TestCase end def test_marshal_load_attack - wa = Net::WriteAdapter.allocate + wa = Gem::Net::WriteAdapter.allocate wa.instance_variable_set(:@socket, self.class) wa.instance_variable_set(:@method_id, :exploit) request_set = Gem::RequestSet.allocate request_set.instance_variable_set(:@git_set, "id") request_set.instance_variable_set(:@sets, wa) - wa = Net::WriteAdapter.allocate + wa = Gem::Net::WriteAdapter.allocate wa.instance_variable_set(:@socket, request_set) wa.instance_variable_set(:@method_id, :resolve) ent = Gem::Package::TarReader::Entry.allocate ent.instance_variable_set(:@read, 0) ent.instance_variable_set(:@header, "aaa") - io = Net::BufferedIO.allocate + io = Gem::Net::BufferedIO.allocate io.instance_variable_set(:@io, ent) io.instance_variable_set(:@debug_output, wa) reader = Gem::Package::TarReader.allocate |