diff options
-rw-r--r-- | lib/rubygems/package.rb | 7 | ||||
-rw-r--r-- | test/rubygems/test_gem_package.rb | 17 |
2 files changed, 17 insertions, 7 deletions
diff --git a/lib/rubygems/package.rb b/lib/rubygems/package.rb index 53ae696e97..9b53cd4a7b 100644 --- a/lib/rubygems/package.rb +++ b/lib/rubygems/package.rb @@ -669,10 +669,9 @@ EOM when 'data.tar.gz' then verify_gz entry end - rescue => e - message = "package is corrupt, exception while verifying: " + - "#{e.message} (#{e.class})" - raise Gem::Package::FormatError.new message, @gem + rescue + warn "Exception while verifying #{@gem.path}" + raise end ## diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb index 1a9ca15e8d..5e9c3b7b81 100644 --- a/test/rubygems/test_gem_package.rb +++ b/test/rubygems/test_gem_package.rb @@ -1065,11 +1065,22 @@ class TestGemPackage < Gem::Package::TarTestCase package = Gem::Package.new @gem - e = assert_raises Gem::Package::FormatError do - package.verify_entry entry + _, err = use_ui @ui do + e = nil + + out_err = capture_io do + e = assert_raises ArgumentError do + package.verify_entry entry + end + end + + assert_equal "whatever", e.message + assert_equal "full_name", e.backtrace_locations.first.label + + out_err end - assert_equal "package is corrupt, exception while verifying: whatever (ArgumentError) in #{@gem}", e.message + assert_equal "Exception while verifying #{@gem}\n", err valid_metadata = ["metadata", "metadata.gz"] valid_metadata.each do |vm| |