aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2022-08-02 10:27:42 +0200
committergit <svn-admin@ruby-lang.org>2022-08-04 13:36:45 +0900
commit542040fb8375ffd74096ae0615a33bbc90524cb3 (patch)
tree2cea6b5f9c8275e766f95f9a2137fe78e4ee09cc /test
parent0591780a74f9893038d5d794a958621189953e8a (diff)
downloadruby-542040fb8375ffd74096ae0615a33bbc90524cb3.tar.gz
[rubygems/rubygems] Warn dangling symlinks
https://github.com/rubygems/rubygems/commit/425b78637f
Diffstat (limited to 'test')
-rw-r--r--test/rubygems/test_gem_installer.rb5
-rw-r--r--test/rubygems/test_gem_package.rb22
2 files changed, 26 insertions, 1 deletions
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb
index d269644ade..55f0a074b8 100644
--- a/test/rubygems/test_gem_installer.rb
+++ b/test/rubygems/test_gem_installer.rb
@@ -756,7 +756,10 @@ gem 'other', version
end
end
- assert_match %r{bin/ascii_binder` is dangling symlink pointing to `bin/asciibinder`}, @ui.error
+ errors = @ui.error.split("\n")
+ assert_equal "WARNING: ascii_binder-0.1.10.1 ships with a dangling symlink named bin/ascii_binder pointing to missing bin/asciibinder file. Ignoring", errors.shift
+ assert_empty errors
+
assert_empty @ui.output
end
diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb
index 9e18dacba1..9295f42dba 100644
--- a/test/rubygems/test_gem_package.rb
+++ b/test/rubygems/test_gem_package.rb
@@ -529,6 +529,7 @@ class TestGemPackage < Gem::Package::TarTestCase
def test_extract_tar_gz_symlink_relative_path
package = Gem::Package.new @gem
+ package.verify
tgz_io = util_tar_gz do |tar|
tar.add_file "relative.rb", 0644 do |io|
@@ -557,6 +558,27 @@ class TestGemPackage < Gem::Package::TarTestCase
File.read(extracted)
end
+ def test_extract_tar_gz_symlink_broken_relative_path
+ package = Gem::Package.new @gem
+ package.verify
+
+ tgz_io = util_tar_gz do |tar|
+ tar.mkdir "lib", 0755
+ tar.add_symlink "lib/foo.rb", "../broken.rb", 0644
+ end
+
+ ui = Gem::MockGemUi.new
+
+ use_ui ui do
+ package.extract_tar_gz tgz_io, @destination
+ end
+
+ assert_equal "WARNING: a-2 ships with a dangling symlink named lib/foo.rb pointing to missing ../broken.rb file. Ignoring\n", ui.error
+
+ extracted = File.join @destination, "lib/foo.rb"
+ assert_path_not_exist extracted
+ end
+
def test_extract_symlink_parent
package = Gem::Package.new @gem