mirror of
https://github.com/git/git
synced 2024-08-24 02:11:08 +00:00
t5324: harmonize sha1/sha256 graph chain corruption
In t5324.20, we corrupt a hex character 60 bytes into the graph chain file. Since the file consists of two hash identifiers, one per line, the corruption differs between sha1 and sha256. In a sha1 repository, the corruption is on the second line, and in a sha256 repository, it is on the first. We should of course detect the problem with either line. But as the next few patches will show (and fix), that is not the case (in fact, we currently do not exit non-zero for either line!). And while at the end of our series we'll catch all errors, our intermediate states will have differing behavior between the two hashes. Let's make sure we test corruption of both the first and second lines, and do so consistently with either hash by choosing offsets which are always in the first hash (30 bytes) or in the second (70). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
8298b54317
commit
2d45710c5d
|
@ -312,15 +312,30 @@ test_expect_success 'warn on base graph chunk incorrect' '
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'verify after commit-graph-chain corruption' '
|
test_expect_success 'verify after commit-graph-chain corruption (base)' '
|
||||||
git clone --no-hardlinks . verify-chain &&
|
git clone --no-hardlinks . verify-chain-base &&
|
||||||
(
|
(
|
||||||
cd verify-chain &&
|
cd verify-chain-base &&
|
||||||
corrupt_file "$graphdir/commit-graph-chain" 60 "G" &&
|
corrupt_file "$graphdir/commit-graph-chain" 30 "G" &&
|
||||||
git commit-graph verify 2>test_err &&
|
git commit-graph verify 2>test_err &&
|
||||||
grep -v "^+" test_err >err &&
|
grep -v "^+" test_err >err &&
|
||||||
test_i18ngrep "invalid commit-graph chain" err &&
|
test_i18ngrep "invalid commit-graph chain" err &&
|
||||||
corrupt_file "$graphdir/commit-graph-chain" 60 "A" &&
|
corrupt_file "$graphdir/commit-graph-chain" 30 "A" &&
|
||||||
|
git commit-graph verify 2>test_err &&
|
||||||
|
grep -v "^+" test_err >err &&
|
||||||
|
test_i18ngrep "unable to find all commit-graph files" err
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'verify after commit-graph-chain corruption (tip)' '
|
||||||
|
git clone --no-hardlinks . verify-chain-tip &&
|
||||||
|
(
|
||||||
|
cd verify-chain-tip &&
|
||||||
|
corrupt_file "$graphdir/commit-graph-chain" 70 "G" &&
|
||||||
|
git commit-graph verify 2>test_err &&
|
||||||
|
grep -v "^+" test_err >err &&
|
||||||
|
test_i18ngrep "invalid commit-graph chain" err &&
|
||||||
|
corrupt_file "$graphdir/commit-graph-chain" 70 "A" &&
|
||||||
git commit-graph verify 2>test_err &&
|
git commit-graph verify 2>test_err &&
|
||||||
grep -v "^+" test_err >err &&
|
grep -v "^+" test_err >err &&
|
||||||
test_i18ngrep "unable to find all commit-graph files" err
|
test_i18ngrep "unable to find all commit-graph files" err
|
||||||
|
|
Loading…
Reference in a new issue