Merge pull request #20390 from Homebrew/show-rejected-hash

download_queue: display hash of rejected download
This commit is contained in:
Mike McQuaid 2025-08-07 08:09:38 +00:00 committed by GitHub
commit 9f52a57e58
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 5 additions and 3 deletions

View File

@ -82,7 +82,9 @@ module Homebrew
if future.rejected? if future.rejected?
if exception.is_a?(ChecksumMismatchError) if exception.is_a?(ChecksumMismatchError)
actual = Digest::SHA256.file(downloadable.cached_download).hexdigest
opoo "#{downloadable.download_queue_type} reports different checksum: #{exception.expected}" opoo "#{downloadable.download_queue_type} reports different checksum: #{exception.expected}"
puts (" " * downloadable.download_queue_type.size) + " SHA-256 checksum of downloaded file: #{actual}"
Homebrew.failed = true if downloadable.is_a?(Resource::Patch) Homebrew.failed = true if downloadable.is_a?(Resource::Patch)
next 2 next 2
else else

View File

@ -735,7 +735,7 @@ class ChecksumMismatchError < RuntimeError
@expected = expected @expected = expected
super <<~EOS super <<~EOS
SHA256 mismatch SHA-256 mismatch
Expected: #{Formatter.success(expected.to_s)} Expected: #{Formatter.success(expected.to_s)}
Actual: #{Formatter.error(actual.to_s)} Actual: #{Formatter.error(actual.to_s)}
File: #{path} File: #{path}

View File

@ -70,7 +70,7 @@ module Homebrew
unless quiet unless quiet
puts "Downloaded to: #{download}" unless already_downloaded puts "Downloaded to: #{download}" unless already_downloaded
puts "SHA256: #{download.sha256}" puts "SHA-256: #{download.sha256}"
end end
json_download = downloadable.is_a?(API::JSONDownload) json_download = downloadable.is_a?(API::JSONDownload)

View File

@ -217,7 +217,7 @@ RSpec.describe "Exception" do
let(:expected_checksum) { instance_double(Checksum, to_s: "deadbeef") } let(:expected_checksum) { instance_double(Checksum, to_s: "deadbeef") }
let(:actual_checksum) { instance_double(Checksum, to_s: "deadcafe") } let(:actual_checksum) { instance_double(Checksum, to_s: "deadcafe") }
it(:to_s) { expect(error.to_s).to match(/SHA256 mismatch/) } it(:to_s) { expect(error.to_s).to match(/SHA-256 mismatch/) }
end end
describe ResourceMissingError do describe ResourceMissingError do