@@ -404,4 +404,38 @@ test_expect_success 'Bloom generation backfills empty commits' '
)
'
+get_bdat_offset () {
+ perl -0777 -ne \
+ 'print unpack("N", "$1") if /BDAT\0\0\0\0(....)/ or exit 1' \
+ .git/objects/info/commit-graph
+}
+
+get_first_changed_path_filter () {
+ BDAT_OFFSET=$(get_bdat_offset) &&
+ perl -0777 -ne \
+ 'print unpack("H*", substr($_, '$BDAT_OFFSET' + 12, 2))' \
+ .git/objects/info/commit-graph
+}
+
+# chosen to be the same under all Unicode normalization forms
+CENT=$(printf "\xc2\xa2")
+
+test_expect_success 'set up repo with high bit path, version 1 changed-path' '
+ git init highbit1 &&
+ test_commit -C highbit1 c1 "$CENT" &&
+ git -C highbit1 commit-graph write --reachable --changed-paths
+'
+
+test_expect_success 'check value of version 1 changed-path' '
+ (cd highbit1 &&
+ printf "52a9" >expect &&
+ get_first_changed_path_filter >actual &&
+ test_cmp expect actual)
+'
+
+test_expect_success 'version 1 changed-path used when version 1 requested' '
+ (cd highbit1 &&
+ test_bloom_filters_used "-- $CENT")
+'
+
test_done
Subsequent commits will teach Git another version of changed path filter that has different behavior with paths that contain at least one character with its high bit set, so test the existing behavior as a baseline. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> --- t/t4216-log-bloom.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)