summaryrefslogtreecommitdiff
path: root/test/rubygems
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2021-01-21 14:35:56 +0900
committerGitHub <noreply@github.com>2021-01-21 14:35:56 +0900
commit151e469a6259837246d88b3abbb4d9e46ff38b9d (patch)
treec071c3e89e5d9ce493f754ce0536499373eab286 /test/rubygems
parent41d0c708122d0f6389410d503b7f4e6342bf56a0 (diff)
Merge RubyGems 3.2.6 and Bundler 2.2.6 (#4103)
Diffstat (limited to 'test/rubygems')
-rw-r--r--test/rubygems/test_gem.rb5
-rw-r--r--test/rubygems/test_gem_ext_builder.rb24
-rw-r--r--test/rubygems/test_gem_platform.rb8
-rw-r--r--test/rubygems/test_gem_requirement.rb34
4 files changed, 71 insertions, 0 deletions
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index 344b03be9b..68e3eccdaf 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -692,6 +692,11 @@ class TestGem < Gem::TestCase
ensure
FileUtils.chmod 0600, parent
end
+
+ def test_self_ensure_gem_directories_non_existent_paths
+ Gem.ensure_gem_subdirectories '/proc/0123456789/bogus' # should not raise
+ Gem.ensure_gem_subdirectories 'classpath:/bogus/x' # JRuby embed scenario
+ end
end
def test_self_extension_dir_shared
diff --git a/test/rubygems/test_gem_ext_builder.rb b/test/rubygems/test_gem_ext_builder.rb
index 0fe650b8a5..6bebfa7a03 100644
--- a/test/rubygems/test_gem_ext_builder.rb
+++ b/test/rubygems/test_gem_ext_builder.rb
@@ -14,6 +14,7 @@ class TestGemExtBuilder < Gem::TestCase
FileUtils.mkdir_p @dest_path
@orig_DESTDIR = ENV['DESTDIR']
+ @orig_make = ENV['make']
@spec = util_spec 'a'
@@ -22,6 +23,7 @@ class TestGemExtBuilder < Gem::TestCase
def teardown
ENV['DESTDIR'] = @orig_DESTDIR
+ ENV['make'] = @orig_make
super
end
@@ -81,6 +83,28 @@ install:
assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} install$}, results
end
+ def test_custom_make_with_options
+ ENV['make'] = 'make V=1'
+ results = []
+ File.open File.join(@ext, 'Makefile'), 'w' do |io|
+ io.puts <<-MAKEFILE
+all:
+\t@#{Gem.ruby} -e "puts 'all: OK'"
+
+clean:
+\t@#{Gem.ruby} -e "puts 'clean: OK'"
+
+install:
+\t@#{Gem.ruby} -e "puts 'install: OK'"
+ MAKEFILE
+ end
+ Gem::Ext::Builder.make @dest_path, results, @ext
+ results = results.join("\n").b
+ assert_match %r{clean: OK}, results
+ assert_match %r{all: OK}, results
+ assert_match %r{install: OK}, results
+ end
+
def test_build_extensions
@spec.extensions << 'ext/extconf.rb'
diff --git a/test/rubygems/test_gem_platform.rb b/test/rubygems/test_gem_platform.rb
index 83a6f24de4..84754402ad 100644
--- a/test/rubygems/test_gem_platform.rb
+++ b/test/rubygems/test_gem_platform.rb
@@ -356,6 +356,14 @@ class TestGemPlatform < Gem::TestCase
assert_local_match 'sparc-solaris2.8-mq5.3'
end
+ def test_inspect
+ result = Gem::Platform.new("universal-java11").inspect
+
+ assert_equal 1, result.scan(/@cpu=/).size
+ assert_equal 1, result.scan(/@os=/).size
+ assert_equal 1, result.scan(/@version=/).size
+ end
+
def assert_local_match(name)
assert_match Gem::Platform.local, name
end
diff --git a/test/rubygems/test_gem_requirement.rb b/test/rubygems/test_gem_requirement.rb
index 20127a1e15..837f60fbb2 100644
--- a/test/rubygems/test_gem_requirement.rb
+++ b/test/rubygems/test_gem_requirement.rb
@@ -402,6 +402,27 @@ class TestGemRequirement < Gem::TestCase
assert_equal r1.hash, r2.hash
end
+ def test_hash_returns_equal_hashes_for_equivalent_requirements
+ refute_requirement_hash_equal "= 1.2", "= 1.3"
+ refute_requirement_hash_equal "= 1.3", "= 1.2"
+
+ refute_requirement_hash_equal "~> 1.3", "~> 1.3.0"
+ refute_requirement_hash_equal "~> 1.3.0", "~> 1.3"
+
+ assert_requirement_hash_equal ["> 2", "~> 1.3", "~> 1.3.1"], ["~> 1.3.1", "~> 1.3", "> 2"]
+
+ assert_requirement_hash_equal ["> 2", "~> 1.3"], ["> 2.0", "~> 1.3"]
+ assert_requirement_hash_equal ["> 2.0", "~> 1.3"], ["> 2", "~> 1.3"]
+
+ assert_requirement_hash_equal "= 1.0", "= 1.0.0"
+ assert_requirement_hash_equal "= 1.1", "= 1.1.0"
+ assert_requirement_hash_equal "= 1", "= 1.0.0"
+
+ assert_requirement_hash_equal "1.0", "1.0.0"
+ assert_requirement_hash_equal "1.1", "1.1.0"
+ assert_requirement_hash_equal "1", "1.0.0"
+ end
+
# Assert that two requirements are equal. Handles Gem::Requirements,
# strings, arrays, numbers, and versions.
@@ -416,6 +437,13 @@ class TestGemRequirement < Gem::TestCase
"#{requirement} is satisfied by #{version}"
end
+ # Assert that two requirement hashes are equal. Handles Gem::Requirements,
+ # strings, arrays, numbers, and versions.
+
+ def assert_requirement_hash_equal(expected, actual)
+ assert_equal req(expected).hash, req(actual).hash
+ end
+
# Refute the assumption that two requirements are equal.
def refute_requirement_equal(unexpected, actual)
@@ -428,4 +456,10 @@ class TestGemRequirement < Gem::TestCase
refute req(requirement).satisfied_by?(v(version)),
"#{requirement} is not satisfied by #{version}"
end
+
+ # Refute the assumption that two requirements hashes are equal.
+
+ def refute_requirement_hash_equal(unexpected, actual)
+ refute_equal req(unexpected).hash, req(actual).hash
+ end
end