Re: [PATCH v6 12/21] commit-graph: verify parent list
From: Junio C Hamano <hidden>
Date: 2018-06-12 16:55:45
Derrick Stolee [off-list ref] writes:
quoted hunk
diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh index 2b9214bc83..9a3481c30f 100755 --- a/t/t5318-commit-graph.sh +++ b/t/t5318-commit-graph.sh@@ -269,6 +269,9 @@ GRAPH_BYTE_OID_LOOKUP_ORDER=$(($GRAPH_OID_LOOKUP_OFFSET + $HASH_LEN * 8)) GRAPH_BYTE_OID_LOOKUP_MISSING=$(($GRAPH_OID_LOOKUP_OFFSET + $HASH_LEN * 4 + 10)) GRAPH_COMMIT_DATA_OFFSET=$(($GRAPH_OID_LOOKUP_OFFSET + $HASH_LEN * $NUM_COMMITS)) GRAPH_BYTE_COMMIT_TREE=$GRAPH_COMMIT_DATA_OFFSET +GRAPH_BYTE_COMMIT_PARENT=$(($GRAPH_COMMIT_DATA_OFFSET + $HASH_LEN)) +GRAPH_BYTE_COMMIT_EXTRA_PARENT=$(($GRAPH_COMMIT_DATA_OFFSET + $HASH_LEN + 4)) +GRAPH_BYTE_COMMIT_WRONG_PARENT=$(($GRAPH_COMMIT_DATA_OFFSET + $HASH_LEN + 3))
There seems to depend on having GRAPH_COMMIT_DATA_OFFSET in this file, but I do not think 'next' or sb/object-store-alloc has one, and I do not think I saw an earlier patch in this series to add such a line. It appears that many messages in this series are sent in quoted-printable when they do not have to, which made me say fuzzy things like "I do not think I saw" in the previous paragraph, instead of being able to be definitive with a simple "grep" result. Please try to see if you can find a way to tell your MUA not to do unnecessary mail munging, if you can do so easily. The worst one was 07/21, which came in base64 and contained a patch to this file in MS-DOS line ending convention, which made it impossible to apply.
quoted hunk
# usage: corrupt_graph_and_verify <position> <data> <string> # Manipulates the commit-graph file at the position@@ -348,4 +351,19 @@ test_expect_success 'detect incorrect tree OID' ' "root tree OID for commit" ' +test_expect_success 'detect incorrect parent int-id' ' + corrupt_graph_and_verify $GRAPH_BYTE_COMMIT_PARENT "\01" \ + "invalid parent" +' + +test_expect_success 'detect extra parent int-id' ' + corrupt_graph_and_verify $GRAPH_BYTE_COMMIT_EXTRA_PARENT "\00" \ + "is too long" +' + +test_expect_success 'detect wrong parent' ' + corrupt_graph_and_verify $GRAPH_BYTE_COMMIT_WRONG_PARENT "\01" \ + "commit-graph parent for" +' + test_done