summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroshi SHIBATA <[email protected]>2021-01-04 10:09:05 +0900
committerHiroshi SHIBATA <[email protected]>2021-01-04 13:14:43 +0900
commit5537adf719a37a30b17d39111cc03700f353aa2d ()
tree7523de9950b8a0118143f4ee0029aee17d043e04
parent35c3a24c8cbcccff1108079360e2063fc354b4bd (diff)
Track RubyGems master(3.3.0.dev) branch at 55634a8af18a52df86c4275d70fa1179118bcc20
Notes: Merged: https://.com/ruby/ruby/pull/4021
-rw-r--r--lib/rubygems.rb2
-rw-r--r--lib/rubygems/command_manager.rb2
-rw-r--r--lib/rubygems/commands/install_command.rb7
-rw-r--r--lib/rubygems/commands/setup_command.rb78
-rw-r--r--lib/rubygems/commands/update_command.rb13
-rw-r--r--lib/rubygems/exceptions.rb25
-rw-r--r--lib/rubygems/ext/builder.rb14
-rw-r--r--lib/rubygems/ext/cmake_builder.rb3
-rw-r--r--lib/rubygems/ext/configure_builder.rb3
-rw-r--r--lib/rubygems/install_update_options.rb13
-rw-r--r--lib/rubygems/remote_fetcher.rb4
-rw-r--r--lib/rubygems/resolver/best_set.rb2
-rw-r--r--lib/rubygems/resolver/index_specification.rb5
-rw-r--r--lib/rubygems/source.rb4
-rw-r--r--lib/rubygems/test_case.rb22
-rw-r--r--lib/rubygems/text.rb41
-rw-r--r--lib/rubygems/unknown_command_spell_checker.rb21
-rw-r--r--test/rubygems/data/null-required-rubygems-version.gemspec.rzbin0 -> 421 bytes
-rw-r--r--test/rubygems/test_config.rb4
-rw-r--r--test/rubygems/test_gem_command_manager.rb18
-rw-r--r--test/rubygems/test_gem_commands_setup_command.rb58
-rw-r--r--test/rubygems/test_gem_commands_update_command.rb4
-rw-r--r--test/rubygems/test_gem_dependency_installer.rb74
-rw-r--r--test/rubygems/test_gem_ext_builder.rb12
-rw-r--r--test/rubygems/test_gem_ext_cmake_builder.rb6
-rw-r--r--test/rubygems/test_gem_ext_configure_builder.rb4
-rw-r--r--test/rubygems/test_gem_remote_fetcher.rb2
-rw-r--r--test/rubygems/test_gem_requirement.rb1
-rw-r--r--test/rubygems/test_gem_resolver_best_set.rb23
-rw-r--r--test/rubygems/test_gem_specification.rb4
-rw-r--r--test/rubygems/test_gem_text.rb6
31 files changed, 258 insertions, 217 deletions
@@ -8,7 +8,7 @@
require 'rbconfig'
module Gem
- VERSION = "3.2.3".freeze
end
# Must be first since it unloads the prelude from 1.9.2
@@ -188,7 +188,7 @@ class Gem::CommandManager
raise Gem::CommandLineError,
"Ambiguous command #{cmd_name} matches [#{possibilities.join(', ')}]"
elsif possibilities.empty?
- raise Gem::CommandLineError, "Unknown command #{cmd_name}"
end
self[possibilities.first]
@@ -27,6 +27,8 @@ class Gem::Commands::InstallCommand < Gem::Command
:without_groups => [],
})
super 'install', 'Install a gem into the local repository', defaults
add_install_update_options
@@ -43,8 +45,9 @@ class Gem::Commands::InstallCommand < Gem::Command
end
def defaults_str # :nodoc:
- "--both --version '#{Gem::Requirement.default}' --document --no-force\n" +
- "--install-dir #{Gem.dir} --lock"
end
def description # :nodoc:
@@ -6,8 +6,8 @@ require 'rubygems/command'
# RubyGems checkout or tarball.
class Gem::Commands::SetupCommand < Gem::Command
- 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
ENV_PATHS = %w[/usr/bin/env /bin/env].freeze
@@ -167,19 +167,18 @@ By default, this RubyGems will install gem as:
extend MakeDirs
lib_dir, bin_dir = make_destination_dirs install_destdir
- man_dir = make_man_dir install_destdir
install_lib lib_dir
- install_man man_dir
-
install_executables bin_dir
remove_old_bin_files bin_dir
remove_old_lib_files lib_dir
- remove_old_man_files man_dir
install_default_bundler_gem bin_dir
@@ -330,21 +329,6 @@ By default, this RubyGems will install gem as:
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
gem_doc_dir = File.join Gem.dir, 'doc'
rubygems_name = "rubygems-#{Gem::VERSION}"
@@ -391,9 +375,7 @@ By default, this RubyGems will install gem as:
specs_dir = File.join(options[:destdir], specs_dir) unless Gem.win_platform?
mkdir_p specs_dir, :mode => 0755
- bundler_spec = Gem::Specification.load("bundler/bundler.gemspec")
- bundler_spec.files = Dir.chdir("bundler") { Dir["{*.md,{lib,exe,man}/**/*}"] }
- bundler_spec.executables -= %w[bundler bundle_ruby]
# Remove bundler-*.gemspec in default specification directory.
Dir.entries(specs_dir).
@@ -455,19 +437,12 @@ By default, this RubyGems will install gem as:
return lib_dir, bin_dir
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)
prefix = options[:prefix]
if prefix.empty?
man_dir = RbConfig::CONFIG['mandir']
else
man_dir = File.join prefix, 'man'
end
@@ -518,20 +493,6 @@ By default, this RubyGems will install gem as:
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)
old_bin_files = {
'gem_mirror' => 'gem mirror',
@@ -585,33 +546,26 @@ abort "#{deprecation_message}"
end
end
- def remove_old_man_files(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_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
remove_file_list(man1_to_remove, old_man1_dir)
- man5_files = bundler_man5_files_in(new_man_dir)
-
- 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
remove_file_list(man5_to_remove, old_man5_dir)
end
end
def show_release_notes
- release_notes = File.join Dir.pwd, 'History.txt'
release_notes =
if File.exist? release_notes
@@ -19,9 +19,13 @@ class Gem::Commands::UpdateCommand < Gem::Command
attr_reader :updated # :nodoc:
def initialize
- super 'update', 'Update installed gems to the latest version',
- :document => %w[rdoc ri],
- :force => false
add_install_update_options
@@ -51,7 +55,8 @@ class Gem::Commands::UpdateCommand < Gem::Command
end
def defaults_str # :nodoc:
- "--document --no-force --install-dir #{Gem.dir}"
end
def description # :nodoc:
@@ -1,6 +1,7 @@
# frozen_string_literal: true
require 'rubygems/deprecate'
##
# Base exception class for RubyGems. All exception raised by RubyGems are a
@@ -9,6 +10,30 @@ class Gem::Exception < RuntimeError; end
class Gem::CommandLineError < Gem::Exception; end
class Gem::DependencyError < Gem::Exception; end
class Gem::DependencyRemovalException < Gem::Exception; end
@@ -29,7 +29,7 @@ class Gem::Ext::Builder
make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
end
- destdir = '"DESTDIR=%s"' % ENV['DESTDIR']
['clean', '', 'install'].each do |target|
# Pass DESTDIR via command line to override what's in MAKEFLAGS
@@ -37,7 +37,7 @@ class Gem::Ext::Builder
make_program,
destdir,
target,
- ].join(' ').rstrip
begin
run(cmd, results, "make #{target}".rstrip, make_dir)
rescue Gem::InstallError
@@ -56,19 +56,21 @@ class Gem::Ext::Builder
p(command)
end
results << "current directory: #{dir}"
- results << (command.respond_to?(:shelljoin) ? command.shelljoin : command)
require "open3"
# Set $SOURCE_DATE_EPOCH for the subprocess.
env = {'SOURCE_DATE_EPOCH' => Gem.source_date_epoch_string}
- output, status = Open3.capture2e(env, *command, :chdir => dir)
if verbose
puts output
else
results << output
end
- rescue => error
- raise Gem::InstallError, "#{command_name || class_name} failed#{error.message}"
ensure
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
end
@@ -4,8 +4,7 @@ require_relative '../command'
class Gem::Ext::CmakeBuilder < Gem::Ext::Builder
def self.build(extension, dest_path, results, args=[], lib_dir=nil, cmake_dir=Dir.pwd)
unless File.exist?(File.join(cmake_dir, 'Makefile'))
- cmd = "cmake . -DCMAKE_INSTALL_PREFIX=#{dest_path}"
- cmd << " #{Gem::Command.build_args.join ' '}" unless Gem::Command.build_args.empty?
run cmd, results, class_name, cmake_dir
end
@@ -8,8 +8,7 @@
class Gem::Ext::ConfigureBuilder < Gem::Ext::Builder
def self.build(extension, dest_path, results, args=[], lib_dir=nil, configure_dir=Dir.pwd)
unless File.exist?(File.join(configure_dir, 'Makefile'))
- cmd = "sh ./configure --prefix=#{dest_path}"
- cmd << " #{args.join ' '}" unless args.empty?
run cmd, results, class_name, configure_dir
end
@@ -181,10 +181,19 @@ module Gem::InstallUpdateOptions
end
##
- # Default options for the gem install command.
def install_update_defaults_str
- '--document=rdoc,ri --wrappers'
end
end
@@ -26,13 +26,15 @@ class Gem::RemoteFetcher
##
# The URI which was being accessed when the exception happened.
- attr_accessor :uri
def initialize(message, uri)
super message
uri = parse_uri(uri)
uri.password = 'REDACTED' if uri.respond_to?(:password) && uri.password
@uri = uri.to_s
@@ -58,7 +58,7 @@ class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet
# The calling method must retry the exception to repeat the lookup.
def replace_failed_api_set(error) # :nodoc:
- uri = error.uri
uri = URI uri unless URI === uri
uri = uri + "."
@@ -43,9 +43,12 @@ class Gem::Resolver::IndexSpecification < Gem::Resolver::Specification
##
# The required_rubygems_version constraint for this specification
#
def required_rubygems_version
- spec.required_rubygems_version
end
def ==(other)
@@ -35,6 +35,7 @@ class Gem::Source
end
@uri = uri
end
##
@@ -118,7 +119,8 @@ class Gem::Source
# Returns true when it is possible and safe to update the cache directory.
def update_cache?
- @update_cache ||=
begin
File.stat(Gem.user_home).uid == Process.uid
rescue Errno::ENOENT
@@ -26,7 +26,20 @@ begin
rescue LoadError
end
-require 'bundler'
require 'minitest/autorun'
@@ -250,16 +263,16 @@ class Gem::TestCase < Minitest::Test
def assert_contains_make_command(target, output, msg = nil)
if output.match(/\n/)
msg = message(msg) do
- 'Expected output containing make command "%s": %s' % [
('%s %s' % [make_command, target]).rstrip,
- output.inspect,
]
end
else
msg = message(msg) do
'Expected make command "%s": %s' % [
('%s %s' % [make_command, target]).rstrip,
- output.inspect,
]
end
end
@@ -298,6 +311,7 @@ class Gem::TestCase < Minitest::Test
ENV['XDG_CONFIG_HOME'] = nil
ENV['XDG_DATA_HOME'] = nil
ENV['SOURCE_DATE_EPOCH'] = nil
ENV["TMPDIR"] = @tmp
@current_dir = Dir.pwd
@@ -49,37 +49,38 @@ module Gem::Text
end
end
- # This code is based directly on the Text gem implementation
# Returns a value representing the "cost" of transforming str1 into str2
def levenshtein_distance(str1, str2)
- s = str1
- t = str2
- n = s.length
- m = t.length
-
- return m if (0 == n)
- return n if (0 == m)
d = (0..m).to_a
x = nil
- str1.each_char.each_with_index do |char1,i|
- e = i + 1
- str2.each_char.each_with_index do |char2,j|
- cost = (char1 == char2) ? 0 : 1
x = min3(
- d[j + 1] + 1, # insertion
- e + 1, # deletion
- d[j] + cost # substitution
- )
- d[j] = e
- e = x
end
-
d[m] = x
end
- return x
end
end
@@ -0,0 +1,21 @@
Binary files differ
@@ -12,14 +12,14 @@ class TestConfig < Gem::TestCase
end
def test_good_rake_path_is_escaped
- path = Gem::TestCase.class_eval('@@good_rake')
ruby, rake = path.shellsplit
assert_equal(Gem.ruby, ruby)
assert_match(/\/good_rake.rb\z/, rake)
end
def test_bad_rake_path_is_escaped
- path = Gem::TestCase.class_eval('@@bad_rake')
ruby, rake = path.shellsplit
assert_equal(Gem.ruby, ruby)
assert_match(/\/bad_rake.rb\z/, rake)
@@ -50,13 +50,27 @@ class TestGemCommandManager < Gem::TestCase
end
def test_find_command_unknown
- e = assert_raises Gem::CommandLineError do
@command_manager.find_command 'xyz'
end
assert_equal 'Unknown command xyz', e.message
end
def test_run_interrupt
old_load_path = $:.dup
$: << File.expand_path("test/rubygems", PROJECT_DIR)
@@ -265,7 +279,7 @@ class TestGemCommandManager < Gem::TestCase
#check defaults
@command_manager.process_args %w[update]
- assert_includes check_options[:document], 'rdoc'
#check settings
check_options = nil
@@ -24,14 +24,15 @@ class TestGemCommandsSetupCommand < Gem::TestCase
lib/rubygems/test_case.rb
lib/rubygems/ssl_certs/rubygems.org/foo.pem
bundler/exe/bundle
bundler/lib/bundler.rb
bundler/lib/bundler/b.rb
bundler/lib/bundler/man/bundle-b.1.ronn
bundler/lib/bundler/man/gemfile.5.ronn
bundler/lib/bundler/templates/.circleci/config.yml
bundler/lib/bundler/templates/.travis.yml
- bundler/man/bundle-b.1
- bundler/man/gemfile.5
]
create_dummy_files(filelist)
@@ -41,7 +42,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
gemspec.name = "bundler"
gemspec.version = BUNDLER_VERS
gemspec.bindir = "exe"
- gemspec.executables = ["bundle"]
File.open 'bundler/bundler.gemspec', 'w' do |io|
io.puts gemspec.to_ruby
@@ -135,6 +136,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
exec_line = out.shift until exec_line == "RubyGems installed the following executables:"
assert_equal "\t#{default_gem_bin_path}", out.shift
assert_equal "\t#{default_bundle_bin_path}", out.shift
end
def test_env_shebang_flag
@@ -152,6 +154,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
bin_env = win_platform? ? "" : %w[/usr/bin/env /bin/env].find {|f| File.executable?(f) } + " "
assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(default_gem_bin_path)
assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(default_bundle_bin_path)
assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(gem_bin_path)
end
@@ -160,16 +163,6 @@ class TestGemCommandsSetupCommand < Gem::TestCase
@cmd.files_in('lib').sort
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
@cmd.extend FileUtils
@@ -187,19 +180,6 @@ class TestGemCommandsSetupCommand < Gem::TestCase
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
@cmd.extend FileUtils
@@ -308,8 +288,8 @@ class TestGemCommandsSetupCommand < Gem::TestCase
gemfile_5_ronn = File.join man, 'man5', 'gemfile.5.ronn'
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_stay = [ruby_1, bundle_b_1, gemfile_5]
create_dummy_files(files_that_go + files_that_stay)
@@ -326,22 +306,22 @@ class TestGemCommandsSetupCommand < Gem::TestCase
@cmd.options[:previous_version] = Gem::Version.new '2.0.2'
- File.open 'History.txt', 'w' do |io|
io.puts <<-HISTORY_TXT
-=== #{Gem::VERSION} / 2013-03-26
-* Bug fixes:
* Fixed release note display for LANG=C when installing rubygems
* π is tasty
-=== 2.0.2 / 2013-03-06
-* Bug fixes:
* Other bugs fixed
-=== 2.0.1 / 2013-03-05
-* Bug fixes:
* Yet more bugs fixed
HISTORY_TXT
end
@@ -351,9 +331,9 @@ class TestGemCommandsSetupCommand < Gem::TestCase
end
expected = <<-EXPECTED
-=== #{Gem::VERSION} / 2013-03-26
-* Bug fixes:
* Fixed release note display for LANG=C when installing rubygems
* π is tasty
@@ -410,4 +390,8 @@ class TestGemCommandsSetupCommand < Gem::TestCase
def default_bundle_bin_path
File.join @install_dir, 'bin', 'bundle'
end
end unless Gem.java_platform?
@@ -552,7 +552,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
expected = {
:args => [],
- :document => %w[rdoc ri],
:force => false,
:system => true,
}
@@ -571,7 +571,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
expected = {
:args => [],
- :document => %w[rdoc ri],
:force => false,
:system => "1.3.7",
}
@@ -946,6 +946,31 @@ class TestGemDependencyInstaller < Gem::TestCase
assert_equal %w[d-2], inst.installed_gems.map {|s| s.full_name }
end
def test_find_gems_gems_with_sources
util_setup_gems
@@ -1102,21 +1127,6 @@ class TestGemDependencyInstaller < Gem::TestCase
assert_equal %w[a-1], requests
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
@d1, @d1_gem = util_gem 'd', '1'
@d2, @d2_gem = util_gem 'd', '2'
@@ -1124,43 +1134,13 @@ class TestGemDependencyInstaller < Gem::TestCase
util_reset_gems
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
@a1 ||= nil
@b1 ||= nil
@a1_pre ||= nil
- @c1_pre ||= nil
@d1 ||= 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,
- @d1, @d2, @x1_m, @x1_o, @w1, @y1,
- @y1_1_p, @z1].compact)
end
end
@@ -47,9 +47,9 @@ install:
results = results.join("\n").b
- assert_match %r{"DESTDIR=#{ENV['DESTDIR']}" clean$}, results
- assert_match %r{"DESTDIR=#{ENV['DESTDIR']}"$}, results
- assert_match %r{"DESTDIR=#{ENV['DESTDIR']}" install$}, results
if /nmake/ !~ results
assert_match %r{^clean: destination$}, results
@@ -76,9 +76,9 @@ install:
results = results.join("\n").b
- assert_match %r{"DESTDIR=#{ENV['DESTDIR']}" clean$}, results
- assert_match %r{"DESTDIR=#{ENV['DESTDIR']}"$}, results
- assert_match %r{"DESTDIR=#{ENV['DESTDIR']}" install$}, results
end
def test_build_extensions
@@ -40,8 +40,7 @@ install (FILES test.txt DESTINATION bin)
output = output.join "\n"
- assert_match \
- %r{^cmake \. -DCMAKE_INSTALL_PREFIX=#{Regexp.escape @dest_path}}, output
assert_match %r{#{Regexp.escape @ext}}, output
assert_contains_make_command '', output
assert_contains_make_command 'install', output
@@ -58,11 +57,10 @@ install (FILES test.txt DESTINATION bin)
output = output.join "\n"
shell_error_msg = %r{(CMake Error: .*)}
- sh_prefix_cmake = "cmake . -DCMAKE_INSTALL_PREFIX="
assert_match 'cmake failed', error.message
- assert_match %r{^#{sh_prefix_cmake}#{Regexp.escape @dest_path}}, output
assert_match %r{#{shell_error_msg}}, output
end
@@ -28,7 +28,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output, [], nil, @ext
assert_match(/^current directory:/, output.shift)
- assert_equal "sh ./configure --prefix=#{@dest_path}", output.shift
assert_equal "", output.shift
assert_match(/^current directory:/, output.shift)
assert_contains_make_command 'clean', output.shift
@@ -50,7 +50,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
end
shell_error_msg = %r{(\./configure: .*)|((?:[Cc]an't|cannot) open '?\./configure'?(?:: No such file or directory)?)}
- sh_prefix_configure = "sh ./configure --prefix="
assert_match 'configure failed', error.message
@@ -205,7 +205,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
@test_data
end
- raise Gem::RemoteFetcher::FetchError.new("haha!", nil)
end
end
@@ -253,7 +253,6 @@ class TestGemRequirement < Gem::TestCase
assert_satisfied_by "1.0.0.0", "= 1.0"
assert_satisfied_by "10.3.2", "!= 9.3.4"
assert_satisfied_by "10.3.2", "> 9.3.2"
- assert_satisfied_by "10.3.2", "> 9.3.2"
assert_satisfied_by " 9.3.2", ">= 9.3.2"
assert_satisfied_by "9.3.2 ", ">= 9.3.2"
assert_satisfied_by "", "= 0"
@@ -132,4 +132,27 @@ class TestGemResolverBestSet < Gem::TestCase
assert_equal error, e
end
end
@@ -1200,10 +1200,8 @@ dependencies: []
Gem.platforms = orig_platform
end
- DATA_PATH = File.expand_path "../data", __FILE__
-
def test_handles_private_null_type
- path = File.join DATA_PATH, "null-type.gemspec.rz"
data = Marshal.load Gem::Util.inflate(Gem.read_binary(path))
@@ -83,6 +83,12 @@ Without the wrapping, the text might not look good in the RSS feed.
assert_equal 7, levenshtein_distance("zentest", "xxxxxxx")
end
def test_truncate_text
assert_equal "abc", truncate_text("abc", "desc")
assert_equal "Truncating desc to 2 characters:\nab", truncate_text("abc", "desc", 2)