Git fork
at reftables-rust 39 lines 929 B view raw
1#!/bin/sh 2 3test_description='pack should notice missing commit objects' 4 5. ./test-lib.sh 6 7test_expect_success setup ' 8 for i in 1 2 3 4 5 9 do 10 echo "$i" >"file$i" && 11 git add "file$i" && 12 test_tick && 13 git commit -m "$i" && 14 git tag "tag$i" || return 1 15 done && 16 obj=$(git rev-parse --verify tag3) && 17 fanout=$(expr "$obj" : "\(..\)") && 18 remainder=$(expr "$obj" : "..\(.*\)") && 19 rm -f ".git/objects/$fanout/$remainder" 20' 21 22test_expect_success 'check corruption' ' 23 test_must_fail git fsck 24' 25 26test_expect_success 'rev-list notices corruption (1)' ' 27 test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false rev-list HEAD 28' 29 30test_expect_success 'rev-list notices corruption (2)' ' 31 test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false rev-list --objects HEAD 32' 33 34test_expect_success 'pack-objects notices corruption' ' 35 echo HEAD | 36 test_must_fail git pack-objects --revs pack 37' 38 39test_done