diff --git a/lib/bundler/gem_helper.rb b/lib/bundler/gem_helper.rb index 034f2e5960..4b09d20073 100644 --- a/lib/bundler/gem_helper.rb +++ b/lib/bundler/gem_helper.rb @@ -107,7 +107,7 @@ module Bundler SharedHelpers.filesystem_access(File.join(base, "checksums")) {|p| FileUtils.mkdir_p(p) } file_name = "#{File.basename(built_gem_path)}.sha512" require "digest/sha2" - checksum = ::Digest::SHA512.new.hexdigest(built_gem_path.to_s) + checksum = ::Digest::SHA512.file(built_gem_path).hexdigest target = File.join(base, "checksums", file_name) File.write(target, checksum) Bundler.ui.confirm "#{name} #{version} checksum written to checksums/#{file_name}." diff --git a/spec/bundler/bundler/gem_helper_spec.rb b/spec/bundler/bundler/gem_helper_spec.rb index 2c43719aa1..f1bb9861cf 100644 --- a/spec/bundler/bundler/gem_helper_spec.rb +++ b/spec/bundler/bundler/gem_helper_spec.rb @@ -169,6 +169,12 @@ RSpec.describe Bundler::GemHelper do end describe "#build_checksum" do + it "calculates SHA512 of the content" do + subject.build_checksum(Pathname(IO::NULL)) + sha_path = app_path.join("checksums", "#{File.basename(IO::NULL)}.sha512") + expect(File.read(sha_path)).to eql(Digest::SHA512.hexdigest("")) + end + context "when build was successful" do it "creates .sha512 file" do mock_build_message app_name, app_version