diff options
author | Jonathan Tan <jonathantanmy@google.com> | 2017-07-28 13:08:02 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-07-28 15:26:48 -0700 |
commit | a7c28a21617130ebaa709957bd038dab8ee9abdf (patch) | |
tree | 2bd31e61ee3c747085ae5d9a33c78772a79de581 /t | |
parent | 5800c63717ae35286a1441f14ffff753e01f7e2b (diff) | |
download | git-a7c28a21617130ebaa709957bd038dab8ee9abdf.tar.gz git-a7c28a21617130ebaa709957bd038dab8ee9abdf.tar.xz |
tests: ensure fsck fails on corrupt packfiles
t1450-fsck.sh does not have a test that checks fsck's behavior when a
packfile is invalid. It does have a test for when an object in a
packfile is invalid, but in that test, the packfile itself is valid.
Add such a test.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t1450-fsck.sh | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh index bb89e1a5d..4087150db 100755 --- a/t/t1450-fsck.sh +++ b/t/t1450-fsck.sh @@ -608,6 +608,22 @@ test_expect_success 'fsck errors in packed objects' ' ! grep corrupt out ' +test_expect_success 'fsck fails on corrupt packfile' ' + hsh=$(git commit-tree -m mycommit HEAD^{tree}) && + pack=$(echo $hsh | git pack-objects .git/objects/pack/pack) && + + # Corrupt the first byte of the first object. (It contains 3 type bits, + # at least one of which is not zero, so setting the first byte to 0 is + # sufficient.) + chmod a+w .git/objects/pack/pack-$pack.pack && + printf '\0' | dd of=.git/objects/pack/pack-$pack.pack bs=1 conv=notrunc seek=12 && + + test_when_finished "rm -f .git/objects/pack/pack-$pack.*" && + remove_object $hsh && + test_must_fail git fsck 2>out && + test_i18ngrep "checksum mismatch" out +' + test_expect_success 'fsck finds problems in duplicate loose objects' ' rm -rf broken-duplicate && git init broken-duplicate && |