From c6da9cadb346cc1d250c7ed6d8fd33c62a11030e Mon Sep 17 00:00:00 2001 From: hsbt Date: Fri, 18 May 2018 01:39:13 +0000 Subject: Merge RubyGems 2.7.7 see release details here: https://blog.rubygems.org/2018/05/18/2.7.7-released.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rubygems/test_gem.rb | 14 +++--- test/rubygems/test_gem_commands_setup_command.rb | 2 +- test/rubygems/test_gem_package.rb | 59 ++++++++++++++++++++++-- test/rubygems/test_gem_package_tar_header.rb | 2 +- test/rubygems/test_gem_remote_fetcher.rb | 2 +- test/rubygems/test_gem_security_policy.rb | 6 +-- test/rubygems/test_gem_server.rb | 16 +++---- test/rubygems/test_gem_specification.rb | 2 +- test/rubygems/test_gem_version.rb | 1 + 9 files changed, 77 insertions(+), 27 deletions(-) (limited to 'test') diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb index 183771f0f3..a6741e02c0 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb @@ -387,7 +387,7 @@ class TestGem < Gem::TestCase assert_equal %w[https://rubygems.org/], Gem.default_sources end - def test_self_detect_gemdeps + def test_self_use_gemdeps skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7" rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], '-' @@ -399,7 +399,7 @@ class TestGem < Gem::TestCase begin Dir.chdir 'detect/a/b' - assert_equal add_bundler_full_name([]), Gem.detect_gemdeps.map(&:full_name) + assert_equal add_bundler_full_name([]), Gem.use_gemdeps.map(&:full_name) ensure Dir.chdir @tempdir end @@ -1214,7 +1214,7 @@ class TestGem < Gem::TestCase input = "\x1F\x8B\b\0\xED\xA3\x1AQ\0\x03\xCBH" + "\xCD\xC9\xC9\a\0\x86\xA6\x106\x05\0\0\0" - output = Gem.gunzip input + output = Gem::Util.gunzip input assert_equal 'hello', output @@ -1226,7 +1226,7 @@ class TestGem < Gem::TestCase def test_self_gzip input = 'hello' - output = Gem.gzip input + output = Gem::Util.gzip input zipped = StringIO.new output @@ -1450,12 +1450,12 @@ class TestGem < Gem::TestCase ENV['RUBYGEMS_GEMDEPS'] = path - Gem.detect_gemdeps + Gem.use_gemdeps assert_equal add_bundler_full_name(%W(a-1 b-1 c-1)), loaded_spec_names end - def test_auto_activation_of_detected_gemdeps_file + def test_auto_activation_of_used_gemdeps_file skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7" util_clear_gems @@ -1476,7 +1476,7 @@ class TestGem < Gem::TestCase ENV['RUBYGEMS_GEMDEPS'] = "-" expected_specs = [a, b, (Gem::USE_BUNDLER_FOR_GEMDEPS || nil) && util_spec("bundler", Bundler::VERSION), c].compact - assert_equal expected_specs, Gem.detect_gemdeps.sort_by { |s| s.name } + assert_equal expected_specs, Gem.use_gemdeps.sort_by { |s| s.name } end LIB_PATH = File.expand_path "../../../lib".dup.untaint, __FILE__.dup.untaint diff --git a/test/rubygems/test_gem_commands_setup_command.rb b/test/rubygems/test_gem_commands_setup_command.rb index f2541a24c7..c4de8c53d5 100644 --- a/test/rubygems/test_gem_commands_setup_command.rb +++ b/test/rubygems/test_gem_commands_setup_command.rb @@ -10,7 +10,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase if File.exist?(bundler_gemspec) BUNDLER_VERS = File.read(bundler_gemspec).match(/VERSION = "(#{Gem::Version::VERSION_PATTERN})"/)[1] else - BUNDLER_VERS = "1.16.1" + BUNDLER_VERS = "1.16.2" end def setup diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb index d1664cf285..f8eb245f26 100644 --- a/test/rubygems/test_gem_package.rb +++ b/test/rubygems/test_gem_package.rb @@ -524,6 +524,21 @@ class TestGemPackage < Gem::Package::TarTestCase assert_path_exists extracted end + if Gem.win_platform? + def test_extract_tar_gz_case_insensitive + package = Gem::Package.new @gem + + tgz_io = util_tar_gz do |tar| + tar.add_file 'foo/file.rb', 0644 do |io| io.write 'hi' end + end + + package.extract_tar_gz tgz_io, @destination.upcase + + extracted = File.join @destination, 'foo/file.rb' + assert_path_exists extracted + end + end + def test_install_location package = Gem::Package.new @gem @@ -607,7 +622,7 @@ class TestGemPackage < Gem::Package::TarTestCase end def test_load_spec - entry = StringIO.new Gem.gzip @spec.to_yaml + entry = StringIO.new Gem::Util.gzip @spec.to_yaml def entry.full_name() 'metadata.gz' end package = Gem::Package.new 'nonexistent.gem' @@ -637,7 +652,7 @@ class TestGemPackage < Gem::Package::TarTestCase data_tgz = data_tgz.string gem = util_tar do |tar| - metadata_gz = Gem.gzip @spec.to_yaml + metadata_gz = Gem::Util.gzip @spec.to_yaml tar.add_file 'metadata.gz', 0444 do |io| io.write metadata_gz @@ -684,7 +699,7 @@ class TestGemPackage < Gem::Package::TarTestCase data_tgz = data_tgz.string gem = util_tar do |tar| - metadata_gz = Gem.gzip @spec.to_yaml + metadata_gz = Gem::Util.gzip @spec.to_yaml tar.add_file 'metadata.gz', 0444 do |io| io.write metadata_gz @@ -721,7 +736,7 @@ class TestGemPackage < Gem::Package::TarTestCase def test_verify_corrupt tf = Tempfile.open 'corrupt' do |io| - data = Gem.gzip 'a' * 10 + data = Gem::Util.gzip 'a' * 10 io.write \ tar_file_header('metadata.gz', "\000x", 0644, data.length, Time.now) io.write data @@ -845,7 +860,7 @@ class TestGemPackage < Gem::Package::TarTestCase build.add_contents gem # write bogus data.tar.gz to foil signature - bogus_data = Gem.gzip 'hello' + bogus_data = Gem::Util.gzip 'hello' fake_signer = Class.new do def digest_name; 'SHA512'; end def digest_algorithm; Digest(:SHA512); end @@ -903,6 +918,40 @@ class TestGemPackage < Gem::Package::TarTestCase end assert_equal "package is corrupt, exception while verifying: whatever (ArgumentError) in #{@gem}", e.message + + valid_metadata = ["metadata", "metadata.gz"] + valid_metadata.each do |vm| + $spec_loaded = false + $good_name = vm + + entry = Object.new + def entry.full_name() $good_name end + + package = Gem::Package.new(@gem) + package.instance_variable_set(:@files, []) + def package.load_spec(entry) $spec_loaded = true end + + package.verify_entry(entry) + + assert $spec_loaded + end + + invalid_metadata = ["metadataxgz", "foobar\nmetadata", "metadata\nfoobar"] + invalid_metadata.each do |vm| + $spec_loaded = false + $bad_name = vm + + entry = Object.new + def entry.full_name() $bad_name end + + package = Gem::Package.new(@gem) + package.instance_variable_set(:@files, []) + def package.load_spec(entry) $spec_loaded = true end + + package.verify_entry(entry) + + refute $spec_loaded + end end def test_spec diff --git a/test/rubygems/test_gem_package_tar_header.rb b/test/rubygems/test_gem_package_tar_header.rb index 43f508df45..f804b2d808 100644 --- a/test/rubygems/test_gem_package_tar_header.rb +++ b/test/rubygems/test_gem_package_tar_header.rb @@ -158,7 +158,7 @@ group\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 header_s[124, 12] = val io = TempIO.new header_s assert_raises ArgumentError do - new_header = Gem::Package::TarHeader.from io + Gem::Package::TarHeader.from io end io.close! if io.respond_to? :close! end diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb index 20e34e84e1..c48a5f538f 100644 --- a/test/rubygems/test_gem_remote_fetcher.rb +++ b/test/rubygems/test_gem_remote_fetcher.rb @@ -541,7 +541,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== @fetcher = fetcher def fetcher.fetch_http(uri, mtime, head = nil) - Gem.gzip 'foo' + Gem::Util.gzip 'foo' end assert_equal 'foo', fetcher.fetch_path(@uri + 'foo.gz') diff --git a/test/rubygems/test_gem_security_policy.rb b/test/rubygems/test_gem_security_policy.rb index 4108551dca..6cd032baf5 100644 --- a/test/rubygems/test_gem_security_policy.rb +++ b/test/rubygems/test_gem_security_policy.rb @@ -450,7 +450,7 @@ class TestGemSecurityPolicy < Gem::TestCase @spec.cert_chain = [PUBLIC_CERT.to_s] - metadata_gz = Gem.gzip @spec.to_yaml + metadata_gz = Gem::Util.gzip @spec.to_yaml package = Gem::Package.new 'nonexistent.gem' package.checksums[Gem::Security::DIGEST_NAME] = {} @@ -473,7 +473,7 @@ class TestGemSecurityPolicy < Gem::TestCase @spec.cert_chain = [PUBLIC_CERT.to_s] - metadata_gz = Gem.gzip @spec.to_yaml + metadata_gz = Gem::Util.gzip @spec.to_yaml package = Gem::Package.new 'nonexistent.gem' package.checksums[Gem::Security::DIGEST_NAME] = {} @@ -502,7 +502,7 @@ class TestGemSecurityPolicy < Gem::TestCase @spec.cert_chain = [PUBLIC_CERT.to_s] - metadata_gz = Gem.gzip @spec.to_yaml + metadata_gz = Gem::Util.gzip @spec.to_yaml package = Gem::Package.new 'nonexistent.gem' package.checksums[Gem::Security::DIGEST_NAME] = {} diff --git a/test/rubygems/test_gem_server.rb b/test/rubygems/test_gem_server.rb index d8dd0b4acb..8a3e6410ae 100644 --- a/test/rubygems/test_gem_server.rb +++ b/test/rubygems/test_gem_server.rb @@ -127,7 +127,7 @@ class TestGemServer < Gem::TestCase assert_match %r| \d\d:\d\d:\d\d |, @res['date'] assert_equal 'application/x-gzip', @res['content-type'] assert_equal [['a', Gem::Version.new(2), Gem::Platform::RUBY]], - Marshal.load(Gem.gunzip(@res.body)) + Marshal.load(Gem::Util.gunzip(@res.body)) end def test_listen @@ -177,7 +177,7 @@ class TestGemServer < Gem::TestCase assert_match %r| \d\d:\d\d:\d\d |, @res['date'] assert_equal 'application/x-gzip', @res['content-type'] assert_equal [['a', v('3.a'), Gem::Platform::RUBY]], - Marshal.load(Gem.gunzip(@res.body)) + Marshal.load(Gem::Util.gunzip(@res.body)) end def test_quick_gemdirs @@ -236,7 +236,7 @@ class TestGemServer < Gem::TestCase assert @res['date'] assert_equal 'application/x-deflate', @res['content-type'] - spec = Marshal.load Gem.inflate(@res.body) + spec = Marshal.load Gem::Util.inflate(@res.body) assert_equal 'a', spec.name assert_equal Gem::Version.new(1), spec.version end @@ -253,7 +253,7 @@ class TestGemServer < Gem::TestCase assert @res['date'] assert_equal 'application/x-deflate', @res['content-type'] - spec = Marshal.load Gem.inflate(@res.body) + spec = Marshal.load Gem::Util.inflate(@res.body) assert_equal 'a', spec.name assert_equal Gem::Version.new(1), spec.version assert_equal Gem::Platform.local, spec.platform @@ -269,7 +269,7 @@ class TestGemServer < Gem::TestCase assert @res['date'] assert_equal 'application/x-deflate', @res['content-type'] - spec = Marshal.load Gem.inflate(@res.body) + spec = Marshal.load Gem::Util.inflate(@res.body) assert_equal 'a', spec.name assert_equal v('3.a'), spec.version end @@ -286,7 +286,7 @@ class TestGemServer < Gem::TestCase assert @res['date'] assert_equal 'application/x-deflate', @res['content-type'] - spec = Marshal.load Gem.inflate(@res.body) + spec = Marshal.load Gem::Util.inflate(@res.body) assert_equal 'a-b', spec.name assert_equal v('3.a'), spec.version end @@ -303,7 +303,7 @@ class TestGemServer < Gem::TestCase assert @res['date'] assert_equal 'application/x-deflate', @res['content-type'] - spec = Marshal.load Gem.inflate(@res.body) + spec = Marshal.load Gem::Util.inflate(@res.body) assert_equal 'a-b-1', spec.name assert_equal v('3.a'), spec.version end @@ -571,7 +571,7 @@ class TestGemServer < Gem::TestCase assert_equal [['a', Gem::Version.new(1), Gem::Platform::RUBY], ['a', Gem::Version.new(2), Gem::Platform::RUBY], ['a', v('3.a'), Gem::Platform::RUBY]], - Marshal.load(Gem.gunzip(@res.body)) + Marshal.load(Gem::Util.gunzip(@res.body)) end def test_uri_encode diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb index badb297eee..8a488f87d9 100644 --- a/test/rubygems/test_gem_specification.rb +++ b/test/rubygems/test_gem_specification.rb @@ -1133,7 +1133,7 @@ dependencies: [] def test_handles_private_null_type path = File.join DATA_PATH, "null-type.gemspec.rz" - data = Marshal.load Gem.inflate(Gem.read_binary(path)) + data = Marshal.load Gem::Util.inflate(Gem.read_binary(path)) assert_equal nil, data.rubyforge_project end diff --git a/test/rubygems/test_gem_version.rb b/test/rubygems/test_gem_version.rb index 792ad5f084..bddae7fdc3 100644 --- a/test/rubygems/test_gem_version.rb +++ b/test/rubygems/test_gem_version.rb @@ -46,6 +46,7 @@ class TestGemVersion < Gem::TestCase def test_class_correct assert_equal true, Gem::Version.correct?("5.1") assert_equal false, Gem::Version.correct?("an incorrect version") + assert_equal false, Gem::Version.correct?(nil) end def test_class_new_subclass -- cgit v1.2.3