Merge RubyGems-3.2.4

This commit is contained in:
Hiroshi SHIBATA 2021-01-14 13:37:23 +09:00 committed by NARUSE, Yui
parent d4f5827a6d
commit c721e36cec
18 changed files with 107 additions and 172 deletions

View file

@ -8,7 +8,7 @@
require 'rbconfig' require 'rbconfig'
module Gem module Gem
VERSION = "3.2.3".freeze VERSION = "3.2.4".freeze
end end
# Must be first since it unloads the prelude from 1.9.2 # Must be first since it unloads the prelude from 1.9.2

View file

@ -6,8 +6,8 @@ require 'rubygems/command'
# RubyGems checkout or tarball. # RubyGems checkout or tarball.
class Gem::Commands::SetupCommand < Gem::Command class Gem::Commands::SetupCommand < Gem::Command
HISTORY_HEADER = /^===\s*[\d.a-zA-Z]+\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze HISTORY_HEADER = /^#\s*[\d.a-zA-Z]+\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze
VERSION_MATCHER = /^===\s*([\d.a-zA-Z]+)\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze VERSION_MATCHER = /^#\s*([\d.a-zA-Z]+)\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze
ENV_PATHS = %w[/usr/bin/env /bin/env].freeze ENV_PATHS = %w[/usr/bin/env /bin/env].freeze
@ -167,19 +167,18 @@ By default, this RubyGems will install gem as:
extend MakeDirs extend MakeDirs
lib_dir, bin_dir = make_destination_dirs install_destdir lib_dir, bin_dir = make_destination_dirs install_destdir
man_dir = make_man_dir install_destdir man_dir = generate_default_man_dir install_destdir
install_lib lib_dir install_lib lib_dir
install_man man_dir
install_executables bin_dir install_executables bin_dir
remove_old_bin_files bin_dir remove_old_bin_files bin_dir
remove_old_lib_files lib_dir remove_old_lib_files lib_dir
remove_old_man_files man_dir # Can be removed one we drop support for bundler 2.2.3 (the last version installing man files to man_dir)
remove_old_man_files man_dir if man_dir && File.exist?(man_dir)
install_default_bundler_gem bin_dir install_default_bundler_gem bin_dir
@ -330,21 +329,6 @@ By default, this RubyGems will install gem as:
end end
end end
def install_man(man_dir)
mans = { 'Bundler' => 'bundler/man' }
mans.each do |tool, path|
say "Installing #{tool} manpages" if @verbose
bundler_man1_files = bundler_man1_files_in(path)
bundler_man5_files = bundler_man5_files_in(path)
Dir.chdir path do
install_file_list(bundler_man1_files, "#{man_dir}/man1")
install_file_list(bundler_man5_files, "#{man_dir}/man5")
end
end
end
def install_rdoc def install_rdoc
gem_doc_dir = File.join Gem.dir, 'doc' gem_doc_dir = File.join Gem.dir, 'doc'
rubygems_name = "rubygems-#{Gem::VERSION}" rubygems_name = "rubygems-#{Gem::VERSION}"
@ -392,7 +376,7 @@ By default, this RubyGems will install gem as:
mkdir_p specs_dir, :mode => 0755 mkdir_p specs_dir, :mode => 0755
bundler_spec = Gem::Specification.load("bundler/bundler.gemspec") bundler_spec = Gem::Specification.load("bundler/bundler.gemspec")
bundler_spec.files = Dir.chdir("bundler") { Dir["{*.md,{lib,exe,man}/**/*}"] } bundler_spec.files = Dir.chdir("bundler") { Dir["{*.md,{lib,exe}/**/*}"] }
bundler_spec.executables -= %w[bundler bundle_ruby] bundler_spec.executables -= %w[bundler bundle_ruby]
# Remove bundler-*.gemspec in default specification directory. # Remove bundler-*.gemspec in default specification directory.
@ -455,19 +439,12 @@ By default, this RubyGems will install gem as:
return lib_dir, bin_dir return lib_dir, bin_dir
end end
def make_man_dir(install_destdir)
man_dir = generate_default_man_dir(install_destdir)
mkdir_p man_dir, :mode => 0755
return man_dir
end
def generate_default_man_dir(install_destdir) def generate_default_man_dir(install_destdir)
prefix = options[:prefix] prefix = options[:prefix]
if prefix.empty? if prefix.empty?
man_dir = RbConfig::CONFIG['mandir'] man_dir = RbConfig::CONFIG['mandir']
return unless man_dir
else else
man_dir = File.join prefix, 'man' man_dir = File.join prefix, 'man'
end end
@ -518,20 +495,6 @@ By default, this RubyGems will install gem as:
end end
end end
# for installation of bundler as default gems
def bundler_man1_files_in(dir)
Dir.chdir dir do
Dir['bundle*.1']
end
end
# for installation of bundler as default gems
def bundler_man5_files_in(dir)
Dir.chdir dir do
Dir['gemfile.5']
end
end
def remove_old_bin_files(bin_dir) def remove_old_bin_files(bin_dir)
old_bin_files = { old_bin_files = {
'gem_mirror' => 'gem mirror', 'gem_mirror' => 'gem mirror',
@ -585,33 +548,26 @@ abort "#{deprecation_message}"
end end
end end
def remove_old_man_files(man_dir) def remove_old_man_files(old_man_dir)
man_dirs = { man_dir => "bundler/man" }
man_dirs.each do |old_man_dir, new_man_dir|
man1_files = bundler_man1_files_in(new_man_dir)
old_man1_dir = "#{old_man_dir}/man1" old_man1_dir = "#{old_man_dir}/man1"
old_man1_files = bundler_man1_files_in(old_man1_dir)
old_man1_files += Dir.chdir(old_man1_dir) { Dir["bundle*.1.{txt,ronn}"] }
man1_to_remove = old_man1_files - man1_files if File.exist?(old_man1_dir)
man1_to_remove = Dir.chdir(old_man1_dir) { Dir["bundle*.1{,.txt,.ronn}"] }
remove_file_list(man1_to_remove, old_man1_dir) remove_file_list(man1_to_remove, old_man1_dir)
end
man5_files = bundler_man5_files_in(new_man_dir)
old_man5_dir = "#{old_man_dir}/man5" old_man5_dir = "#{old_man_dir}/man5"
old_man5_files = bundler_man5_files_in(old_man5_dir)
old_man5_files += Dir.chdir(old_man5_dir) { Dir["gemfile.5.{txt,ronn}"] }
man5_to_remove = old_man5_files - man5_files if File.exist?(old_man5_dir)
man5_to_remove = Dir.chdir(old_man5_dir) { Dir["gemfile.5{,.txt,.ronn}"] }
remove_file_list(man5_to_remove, old_man5_dir) remove_file_list(man5_to_remove, old_man5_dir)
end end
end end
def show_release_notes def show_release_notes
release_notes = File.join Dir.pwd, 'History.txt' release_notes = File.join Dir.pwd, 'CHANGELOG.md'
release_notes = release_notes =
if File.exist? release_notes if File.exist? release_notes

View file

@ -29,7 +29,7 @@ class Gem::Ext::Builder
make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make' make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
end end
destdir = '"DESTDIR=%s"' % ENV['DESTDIR'] destdir = 'DESTDIR=%s' % ENV['DESTDIR']
['clean', '', 'install'].each do |target| ['clean', '', 'install'].each do |target|
# Pass DESTDIR via command line to override what's in MAKEFLAGS # Pass DESTDIR via command line to override what's in MAKEFLAGS
@ -37,7 +37,7 @@ class Gem::Ext::Builder
make_program, make_program,
destdir, destdir,
target, target,
].join(' ').rstrip ].reject(&:empty?)
begin begin
run(cmd, results, "make #{target}".rstrip, make_dir) run(cmd, results, "make #{target}".rstrip, make_dir)
rescue Gem::InstallError rescue Gem::InstallError
@ -56,7 +56,7 @@ class Gem::Ext::Builder
p(command) p(command)
end end
results << "current directory: #{dir}" results << "current directory: #{dir}"
results << (command.respond_to?(:shelljoin) ? command.shelljoin : command) results << command.shelljoin
require "open3" require "open3"
# Set $SOURCE_DATE_EPOCH for the subprocess. # Set $SOURCE_DATE_EPOCH for the subprocess.

View file

@ -4,8 +4,7 @@ require_relative '../command'
class Gem::Ext::CmakeBuilder < Gem::Ext::Builder class Gem::Ext::CmakeBuilder < Gem::Ext::Builder
def self.build(extension, dest_path, results, args=[], lib_dir=nil, cmake_dir=Dir.pwd) def self.build(extension, dest_path, results, args=[], lib_dir=nil, cmake_dir=Dir.pwd)
unless File.exist?(File.join(cmake_dir, 'Makefile')) unless File.exist?(File.join(cmake_dir, 'Makefile'))
cmd = "cmake . -DCMAKE_INSTALL_PREFIX=#{dest_path}" cmd = ["cmake", ".", "-DCMAKE_INSTALL_PREFIX=#{dest_path}", *Gem::Command.build_args]
cmd << " #{Gem::Command.build_args.join ' '}" unless Gem::Command.build_args.empty?
run cmd, results, class_name, cmake_dir run cmd, results, class_name, cmake_dir
end end

View file

@ -8,8 +8,7 @@
class Gem::Ext::ConfigureBuilder < Gem::Ext::Builder class Gem::Ext::ConfigureBuilder < Gem::Ext::Builder
def self.build(extension, dest_path, results, args=[], lib_dir=nil, configure_dir=Dir.pwd) def self.build(extension, dest_path, results, args=[], lib_dir=nil, configure_dir=Dir.pwd)
unless File.exist?(File.join(configure_dir, 'Makefile')) unless File.exist?(File.join(configure_dir, 'Makefile'))
cmd = "sh ./configure --prefix=#{dest_path}" cmd = ["sh", "./configure", "--prefix=#{dest_path}", *args]
cmd << " #{args.join ' '}" unless args.empty?
run cmd, results, class_name, configure_dir run cmd, results, class_name, configure_dir
end end

View file

@ -26,13 +26,15 @@ class Gem::RemoteFetcher
## ##
# The URI which was being accessed when the exception happened. # The URI which was being accessed when the exception happened.
attr_accessor :uri attr_accessor :uri, :original_uri
def initialize(message, uri) def initialize(message, uri)
super message super message
uri = parse_uri(uri) uri = parse_uri(uri)
@original_uri = uri.dup
uri.password = 'REDACTED' if uri.respond_to?(:password) && uri.password uri.password = 'REDACTED' if uri.respond_to?(:password) && uri.password
@uri = uri.to_s @uri = uri.to_s

View file

@ -58,7 +58,7 @@ class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet
# The calling method must retry the exception to repeat the lookup. # The calling method must retry the exception to repeat the lookup.
def replace_failed_api_set(error) # :nodoc: def replace_failed_api_set(error) # :nodoc:
uri = error.uri uri = error.original_uri
uri = URI uri unless URI === uri uri = URI uri unless URI === uri
uri = uri + "." uri = uri + "."

View file

@ -43,9 +43,12 @@ class Gem::Resolver::IndexSpecification < Gem::Resolver::Specification
## ##
# The required_rubygems_version constraint for this specification # The required_rubygems_version constraint for this specification
# #
# A fallback is included because the original version of the specification
# API didn't include that field, so some marshalled specs in the index have it
# set to +nil+.
def required_rubygems_version def required_rubygems_version
spec.required_rubygems_version spec.required_rubygems_version || Gem::Requirement.default
end end
def ==(other) def ==(other)

View file

@ -250,16 +250,16 @@ class Gem::TestCase < Minitest::Test
def assert_contains_make_command(target, output, msg = nil) def assert_contains_make_command(target, output, msg = nil)
if output.match(/\n/) if output.match(/\n/)
msg = message(msg) do msg = message(msg) do
'Expected output containing make command "%s": %s' % [ "Expected output containing make command \"%s\", but was \n\nBEGIN_OF_OUTPUT\n%sEND_OF_OUTPUT" % [
('%s %s' % [make_command, target]).rstrip, ('%s %s' % [make_command, target]).rstrip,
output.inspect, output,
] ]
end end
else else
msg = message(msg) do msg = message(msg) do
'Expected make command "%s": %s' % [ 'Expected make command "%s": %s' % [
('%s %s' % [make_command, target]).rstrip, ('%s %s' % [make_command, target]).rstrip,
output.inspect, output,
] ]
end end
end end

View file

@ -26,12 +26,12 @@ class TestGemCommandsSetupCommand < Gem::TestCase
bundler/exe/bundle bundler/exe/bundle
bundler/lib/bundler.rb bundler/lib/bundler.rb
bundler/lib/bundler/b.rb bundler/lib/bundler/b.rb
bundler/bin/bundler/man/bundle-b.1
bundler/lib/bundler/man/bundle-b.1.ronn bundler/lib/bundler/man/bundle-b.1.ronn
bundler/lib/bundler/man/gemfile.5
bundler/lib/bundler/man/gemfile.5.ronn bundler/lib/bundler/man/gemfile.5.ronn
bundler/lib/bundler/templates/.circleci/config.yml bundler/lib/bundler/templates/.circleci/config.yml
bundler/lib/bundler/templates/.travis.yml bundler/lib/bundler/templates/.travis.yml
bundler/man/bundle-b.1
bundler/man/gemfile.5
] ]
create_dummy_files(filelist) create_dummy_files(filelist)
@ -160,16 +160,6 @@ class TestGemCommandsSetupCommand < Gem::TestCase
@cmd.files_in('lib').sort @cmd.files_in('lib').sort
end end
def test_bundler_man1_files_in
assert_equal %w[bundle-b.1],
@cmd.bundler_man1_files_in('bundler/man').sort
end
def test_bundler_man5_files_in
assert_equal %w[gemfile.5],
@cmd.bundler_man5_files_in('bundler/man').sort
end
def test_install_lib def test_install_lib
@cmd.extend FileUtils @cmd.extend FileUtils
@ -187,19 +177,6 @@ class TestGemCommandsSetupCommand < Gem::TestCase
end end
end end
def test_install_man
@cmd.extend FileUtils
Dir.mktmpdir 'man' do |dir|
@cmd.install_man dir
assert_path_exists File.join("#{dir}/man1", 'bundle-b.1')
refute_path_exists File.join("#{dir}/man1", 'bundle-b.1.ronn')
assert_path_exists File.join("#{dir}/man5", 'gemfile.5')
refute_path_exists File.join("#{dir}/man5", 'gemfile.5.ronn')
end
end
def test_install_default_bundler_gem def test_install_default_bundler_gem
@cmd.extend FileUtils @cmd.extend FileUtils
@ -308,8 +285,8 @@ class TestGemCommandsSetupCommand < Gem::TestCase
gemfile_5_ronn = File.join man, 'man5', 'gemfile.5.ronn' gemfile_5_ronn = File.join man, 'man5', 'gemfile.5.ronn'
gemfile_5_txt = File.join man, 'man5', 'gemfile.5.txt' gemfile_5_txt = File.join man, 'man5', 'gemfile.5.txt'
files_that_go = [bundle_b_1_txt, bundle_b_1_ronn, gemfile_5_txt, gemfile_5_ronn] files_that_go = [bundle_b_1, bundle_b_1_txt, bundle_b_1_ronn, gemfile_5, gemfile_5_txt, gemfile_5_ronn]
files_that_stay = [ruby_1, bundle_b_1, gemfile_5] files_that_stay = [ruby_1]
create_dummy_files(files_that_go + files_that_stay) create_dummy_files(files_that_go + files_that_stay)
@ -326,22 +303,22 @@ class TestGemCommandsSetupCommand < Gem::TestCase
@cmd.options[:previous_version] = Gem::Version.new '2.0.2' @cmd.options[:previous_version] = Gem::Version.new '2.0.2'
File.open 'History.txt', 'w' do |io| File.open 'CHANGELOG.md', 'w' do |io|
io.puts <<-HISTORY_TXT io.puts <<-HISTORY_TXT
=== #{Gem::VERSION} / 2013-03-26 # #{Gem::VERSION} / 2013-03-26
* Bug fixes: ## Bug fixes:
* Fixed release note display for LANG=C when installing rubygems * Fixed release note display for LANG=C when installing rubygems
* π is tasty * π is tasty
=== 2.0.2 / 2013-03-06 # 2.0.2 / 2013-03-06
* Bug fixes: ## Bug fixes:
* Other bugs fixed * Other bugs fixed
=== 2.0.1 / 2013-03-05 # 2.0.1 / 2013-03-05
* Bug fixes: ## Bug fixes:
* Yet more bugs fixed * Yet more bugs fixed
HISTORY_TXT HISTORY_TXT
end end
@ -351,9 +328,9 @@ class TestGemCommandsSetupCommand < Gem::TestCase
end end
expected = <<-EXPECTED expected = <<-EXPECTED
=== #{Gem::VERSION} / 2013-03-26 # #{Gem::VERSION} / 2013-03-26
* Bug fixes: ## Bug fixes:
* Fixed release note display for LANG=C when installing rubygems * Fixed release note display for LANG=C when installing rubygems
* π is tasty * π is tasty

View file

@ -946,6 +946,31 @@ class TestGemDependencyInstaller < Gem::TestCase
assert_equal %w[d-2], inst.installed_gems.map {|s| s.full_name } assert_equal %w[d-2], inst.installed_gems.map {|s| s.full_name }
end end
def test_install_legacy_spec_with_nil_required_rubygems_version
path = File.expand_path "../data/null-required-rubygems-version.gemspec.rz", __FILE__
spec = Marshal.load Gem.read_binary(path)
def spec.validate(*args); end
util_build_gem spec
cache_file = File.join @tempdir, 'gems', "#{spec.original_name}.gem"
FileUtils.mkdir_p File.dirname cache_file
FileUtils.mv spec.cache_file, cache_file
util_setup_spec_fetcher spec
data = Gem.read_binary(cache_file)
@fetcher.data['http://gems.example.com/gems/activesupport-1.0.0.gem'] = data
dep = Gem::Dependency.new 'activesupport'
inst = Gem::DependencyInstaller.new
inst.install dep
assert_equal %w[activesupport-1.0.0], Gem::Specification.map(&:full_name)
end
def test_find_gems_gems_with_sources def test_find_gems_gems_with_sources
util_setup_gems util_setup_gems
@ -1102,21 +1127,6 @@ class TestGemDependencyInstaller < Gem::TestCase
assert_equal %w[a-1], requests assert_equal %w[a-1], requests
end end
def util_write_a1_bin
write_file File.join('gems', 'a-1', 'bin', 'a_bin') do |fp|
fp.puts "#!/usr/bin/ruby"
end
end
def util_setup_c1_pre
@c1_pre, @c1_pre_gem = util_spec 'c', '1.a' do |s|
s.add_dependency 'a', '1.a'
s.add_dependency 'b', '1'
end
util_reset_gems
end
def util_setup_d def util_setup_d
@d1, @d1_gem = util_gem 'd', '1' @d1, @d1_gem = util_gem 'd', '1'
@d2, @d2_gem = util_gem 'd', '2' @d2, @d2_gem = util_gem 'd', '2'
@ -1124,43 +1134,13 @@ class TestGemDependencyInstaller < Gem::TestCase
util_reset_gems util_reset_gems
end end
def util_setup_wxyz
@x1_m, @x1_m_gem = util_spec 'x', '1' do |s|
s.platform = Gem::Platform.new %w[cpu my_platform 1]
end
@x1_o, @x1_o_gem = util_spec 'x', '1' do |s|
s.platform = Gem::Platform.new %w[cpu other_platform 1]
end
@w1, @w1_gem = util_spec 'w', '1', 'x' => nil
@y1, @y1_gem = util_spec 'y', '1'
@y1_1_p, @y1_1_p_gem = util_spec 'y', '1.1' do |s|
s.platform = Gem::Platform.new %w[cpu my_platform 1]
end
@z1, @z1_gem = util_spec 'z', '1', 'y' => nil
util_reset_gems
end
def util_reset_gems def util_reset_gems
@a1 ||= nil @a1 ||= nil
@b1 ||= nil @b1 ||= nil
@a1_pre ||= nil @a1_pre ||= nil
@c1_pre ||= nil
@d1 ||= nil @d1 ||= nil
@d2 ||= nil @d2 ||= nil
@w1 ||= nil
@x1_m ||= nil
@x1_o ||= nil
@y1 ||= nil
@y1_1_p ||= nil
@z1 ||= nil
util_setup_spec_fetcher(*[@a1, @a1_pre, @b1, @c1_pre, util_setup_spec_fetcher(*[@a1, @a1_pre, @b1, @d1, @d2].compact)
@d1, @d2, @x1_m, @x1_o, @w1, @y1,
@y1_1_p, @z1].compact)
end end
end end

View file

@ -47,9 +47,9 @@ install:
results = results.join("\n").b results = results.join("\n").b
assert_match %r{"DESTDIR=#{ENV['DESTDIR']}" clean$}, results assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} clean$}, results
assert_match %r{"DESTDIR=#{ENV['DESTDIR']}"$}, results assert_match %r{DESTDIR\\=#{ENV['DESTDIR']}$}, results
assert_match %r{"DESTDIR=#{ENV['DESTDIR']}" install$}, results assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} install$}, results
if /nmake/ !~ results if /nmake/ !~ results
assert_match %r{^clean: destination$}, results assert_match %r{^clean: destination$}, results
@ -76,9 +76,9 @@ install:
results = results.join("\n").b results = results.join("\n").b
assert_match %r{"DESTDIR=#{ENV['DESTDIR']}" clean$}, results assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} clean$}, results
assert_match %r{"DESTDIR=#{ENV['DESTDIR']}"$}, results assert_match %r{DESTDIR\\=#{ENV['DESTDIR']}$}, results
assert_match %r{"DESTDIR=#{ENV['DESTDIR']}" install$}, results assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} install$}, results
end end
def test_build_extensions def test_build_extensions

View file

@ -40,8 +40,7 @@ install (FILES test.txt DESTINATION bin)
output = output.join "\n" output = output.join "\n"
assert_match \ assert_match %r{^cmake \. -DCMAKE_INSTALL_PREFIX\\=#{Regexp.escape @dest_path}}, output
%r{^cmake \. -DCMAKE_INSTALL_PREFIX=#{Regexp.escape @dest_path}}, output
assert_match %r{#{Regexp.escape @ext}}, output assert_match %r{#{Regexp.escape @ext}}, output
assert_contains_make_command '', output assert_contains_make_command '', output
assert_contains_make_command 'install', output assert_contains_make_command 'install', output
@ -58,11 +57,10 @@ install (FILES test.txt DESTINATION bin)
output = output.join "\n" output = output.join "\n"
shell_error_msg = %r{(CMake Error: .*)} shell_error_msg = %r{(CMake Error: .*)}
sh_prefix_cmake = "cmake . -DCMAKE_INSTALL_PREFIX="
assert_match 'cmake failed', error.message assert_match 'cmake failed', error.message
assert_match %r{^#{sh_prefix_cmake}#{Regexp.escape @dest_path}}, output assert_match %r{^cmake . -DCMAKE_INSTALL_PREFIX\\=#{Regexp.escape @dest_path}}, output
assert_match %r{#{shell_error_msg}}, output assert_match %r{#{shell_error_msg}}, output
end end

View file

@ -28,7 +28,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output, [], nil, @ext Gem::Ext::ConfigureBuilder.build nil, @dest_path, output, [], nil, @ext
assert_match(/^current directory:/, output.shift) assert_match(/^current directory:/, output.shift)
assert_equal "sh ./configure --prefix=#{@dest_path}", output.shift assert_equal "sh ./configure --prefix\\=#{@dest_path}", output.shift
assert_equal "", output.shift assert_equal "", output.shift
assert_match(/^current directory:/, output.shift) assert_match(/^current directory:/, output.shift)
assert_contains_make_command 'clean', output.shift assert_contains_make_command 'clean', output.shift
@ -50,7 +50,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
end end
shell_error_msg = %r{(\./configure: .*)|((?:[Cc]an't|cannot) open '?\./configure'?(?:: No such file or directory)?)} shell_error_msg = %r{(\./configure: .*)|((?:[Cc]an't|cannot) open '?\./configure'?(?:: No such file or directory)?)}
sh_prefix_configure = "sh ./configure --prefix=" sh_prefix_configure = "sh ./configure --prefix\\="
assert_match 'configure failed', error.message assert_match 'configure failed', error.message

View file

@ -205,7 +205,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
@test_data @test_data
end end
raise Gem::RemoteFetcher::FetchError.new("haha!", nil) raise Gem::RemoteFetcher::FetchError.new("haha!", '')
end end
end end

View file

@ -132,4 +132,27 @@ class TestGemResolverBestSet < Gem::TestCase
assert_equal error, e assert_equal error, e
end end
def test_replace_failed_api_set_uri_with_credentials
set = @DR::BestSet.new
api_uri = URI(@gem_repo) + './info/'
api_uri.user = 'user'
api_uri.password = 'pass'
api_set = Gem::Resolver::APISet.new api_uri
set.sets << api_set
error_uri = api_uri + 'a'
error = Gem::RemoteFetcher::FetchError.new 'bogus', error_uri
set.replace_failed_api_set error
assert_equal 1, set.sets.size
refute_includes set.sets, api_set
assert_kind_of Gem::Resolver::IndexSet, set.sets.first
end
end end

View file

@ -1200,10 +1200,8 @@ dependencies: []
Gem.platforms = orig_platform Gem.platforms = orig_platform
end end
DATA_PATH = File.expand_path "../data", __FILE__
def test_handles_private_null_type def test_handles_private_null_type
path = File.join DATA_PATH, "null-type.gemspec.rz" path = File.expand_path "../data/null-type.gemspec.rz", __FILE__
data = Marshal.load Gem::Util.inflate(Gem.read_binary(path)) data = Marshal.load Gem::Util.inflate(Gem.read_binary(path))