File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -608,6 +608,22 @@ test_expect_success 'fsck errors in packed objects' '
608
608
! grep corrupt out
609
609
'
610
610
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
+
611
627
test_expect_success ' fsck finds problems in duplicate loose objects' '
612
628
rm -rf broken-duplicate &&
613
629
git init broken-duplicate &&
You can’t perform that action at this time.
0 commit comments