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
This commit is contained in:
hsbt 2018-05-18 01:39:13 +00:00
parent ecedebab2c
commit c6da9cadb3
29 changed files with 161 additions and 60 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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')

View file

@ -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] = {}

View file

@ -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

View file

@ -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

View file

@ -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