File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -608,6 +608,22 @@ test_expect_success 'fsck errors in packed objects' '
608608 ! grep corrupt out
609609'
610610
611+ test_expect_success ' fsck fails on corrupt packfile' '
612+ hsh=$(git commit-tree -m mycommit HEAD^{tree}) &&
613+ pack=$(echo $hsh | git pack-objects .git/objects/pack/pack) &&
614+
615+ # Corrupt the first byte of the first object. (It contains 3 type bits,
616+ # at least one of which is not zero, so setting the first byte to 0 is
617+ # sufficient.)
618+ chmod a+w .git/objects/pack/pack-$pack.pack &&
619+ printf ' \0 ' | dd of=.git/objects/pack/pack-$pack.pack bs=1 conv=notrunc seek=12 &&
620+
621+ test_when_finished "rm -f .git/objects/pack/pack-$pack.*" &&
622+ remove_object $hsh &&
623+ test_must_fail git fsck 2>out &&
624+ test_i18ngrep "checksum mismatch" out
625+ '
626+
611627test_expect_success ' fsck finds problems in duplicate loose objects' '
612628 rm -rf broken-duplicate &&
613629 git init broken-duplicate &&
You can’t perform that action at this time.
0 commit comments