Skip to content

Commit ce7629a

Browse files
ttaylorrgitster
authored andcommitted
t/t5318-commit-graph.sh: test generation zero transitions during fsck
The second test called "detect incorrect generation number" asserts that we correctly warn during an fsck when we see a non-zero generation number after seeing a zero beforehand. The other transition (going from non-zero to zero) was previously untested. Test both directions, and rename the existing test to make clear which direction it is exercising. Signed-off-by: Taylor Blau <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent cc9c9a0 commit ce7629a

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

t/t5318-commit-graph.sh

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -450,14 +450,15 @@ GRAPH_BYTE_FANOUT2=$(($GRAPH_FANOUT_OFFSET + 4 * 255))
450450
GRAPH_OID_LOOKUP_OFFSET=$(($GRAPH_FANOUT_OFFSET + 4 * 256))
451451
GRAPH_BYTE_OID_LOOKUP_ORDER=$(($GRAPH_OID_LOOKUP_OFFSET + $HASH_LEN * 8))
452452
GRAPH_BYTE_OID_LOOKUP_MISSING=$(($GRAPH_OID_LOOKUP_OFFSET + $HASH_LEN * 4 + 10))
453+
GRAPH_COMMIT_DATA_WIDTH=$(($HASH_LEN + 16))
453454
GRAPH_COMMIT_DATA_OFFSET=$(($GRAPH_OID_LOOKUP_OFFSET + $HASH_LEN * $NUM_COMMITS))
454455
GRAPH_BYTE_COMMIT_TREE=$GRAPH_COMMIT_DATA_OFFSET
455456
GRAPH_BYTE_COMMIT_PARENT=$(($GRAPH_COMMIT_DATA_OFFSET + $HASH_LEN))
456457
GRAPH_BYTE_COMMIT_EXTRA_PARENT=$(($GRAPH_COMMIT_DATA_OFFSET + $HASH_LEN + 4))
457458
GRAPH_BYTE_COMMIT_WRONG_PARENT=$(($GRAPH_COMMIT_DATA_OFFSET + $HASH_LEN + 3))
458459
GRAPH_BYTE_COMMIT_GENERATION=$(($GRAPH_COMMIT_DATA_OFFSET + $HASH_LEN + 11))
460+
GRAPH_BYTE_COMMIT_GENERATION_LAST=$(($GRAPH_BYTE_COMMIT_GENERATION + $(($NUM_COMMITS - 1)) * $GRAPH_COMMIT_DATA_WIDTH))
459461
GRAPH_BYTE_COMMIT_DATE=$(($GRAPH_COMMIT_DATA_OFFSET + $HASH_LEN + 12))
460-
GRAPH_COMMIT_DATA_WIDTH=$(($HASH_LEN + 16))
461462
GRAPH_OCTOPUS_DATA_OFFSET=$(($GRAPH_COMMIT_DATA_OFFSET + \
462463
$GRAPH_COMMIT_DATA_WIDTH * $NUM_COMMITS))
463464
GRAPH_BYTE_OCTOPUS=$(($GRAPH_OCTOPUS_DATA_OFFSET + 4))
@@ -596,11 +597,6 @@ test_expect_success 'detect incorrect generation number' '
596597
"generation for commit"
597598
'
598599

599-
test_expect_success 'detect incorrect generation number' '
600-
corrupt_graph_and_verify $GRAPH_BYTE_COMMIT_GENERATION "\01" \
601-
"but zero elsewhere"
602-
'
603-
604600
test_expect_success 'detect incorrect commit date' '
605601
corrupt_graph_and_verify $GRAPH_BYTE_COMMIT_DATE "\01" \
606602
"commit date"
@@ -622,6 +618,16 @@ test_expect_success 'detect incorrect chunk count' '
622618
$GRAPH_CHUNK_LOOKUP_OFFSET
623619
'
624620

621+
test_expect_success 'detect mixed generation numbers (non-zero to zero)' '
622+
corrupt_graph_and_verify $GRAPH_BYTE_COMMIT_GENERATION_LAST "\0\0\0\0" \
623+
"but non-zero elsewhere"
624+
'
625+
626+
test_expect_success 'detect mixed generation numbers (zero to non-zero)' '
627+
corrupt_graph_and_verify $GRAPH_BYTE_COMMIT_GENERATION "\0\0\0\0" \
628+
"but zero elsewhere"
629+
'
630+
625631
test_expect_success 'git fsck (checks commit-graph when config set to true)' '
626632
git -C full fsck &&
627633
corrupt_graph_and_verify $GRAPH_BYTE_FOOTER "\00" \

0 commit comments

Comments
 (0)