diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2020-07-12 22:18:01 +0200 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2020-07-31 21:07:19 +0900 |
commit | 3921ab8291925f2d177535d38d2aaaa020f5d546 (patch) | |
tree | be5d72847c4089f3f15b13f5352ed057bb36a74b /test/rubygems | |
parent | ebf008b9aea71fdf9be8dcc92faae1c024201bf9 (diff) |
[rubygems/rubygems] Let more exceptions flow
If any error happens while verifying a package entry, it doesn't mean
that the package is corrupt. It could be a bug in rubygems, for example.
This in fact happened in CI and the current error doesn't make it easy
to troubleshoot the root cause, since it doesn't provide a backtrace.
See
https://github.com/rubygems/rubygems/pull/3807/checks?check_run_id=862526615.
So I propose to let the exception happens. There was something useful
about the previous message, which is the file entry where the error
happened, so I'm keeping that information in a warning message.
https://github.com/rubygems/rubygems/commit/ece87d858f
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/3379
Diffstat (limited to 'test/rubygems')
-rw-r--r-- | test/rubygems/test_gem_package.rb | 17 |
1 files changed, 14 insertions, 3 deletions
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| |