summaryrefslogtreecommitdiff
path: root/t/lib-bitmap.sh
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2021-02-09 21:41:54 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-02-10 21:54:34 (GMT)
commitddfe900612119e4e8c21c812a0ced4a72e5d66b7 (patch)
tree36b14568ef5ddfb3ce11d2838a0d5a117c36376b /t/lib-bitmap.sh
parent3fca1fc651c025724c7ea36aa9a83182c8dfdb58 (diff)
downloadgit-ddfe900612119e4e8c21c812a0ced4a72e5d66b7.zip
git-ddfe900612119e4e8c21c812a0ced4a72e5d66b7.tar.gz
git-ddfe900612119e4e8c21c812a0ced4a72e5d66b7.tar.bz2
test-lib-functions: move function to lib-bitmap.sh
Move a function added to test-lib-functions.sh in ea047a8eb4f (t5310: factor out bitmap traversal comparison, 2020-02-14) into a new lib-bitmap.sh. The test-lib-functions.sh file should be for functions that are widely used across the test suite, if something's only used by a few tests it makes more sense to have it in a lib-*.sh file. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/lib-bitmap.sh')
-rw-r--r--t/lib-bitmap.sh26
1 files changed, 26 insertions, 0 deletions
diff --git a/t/lib-bitmap.sh b/t/lib-bitmap.sh
new file mode 100644
index 0000000..fe3f98b
--- /dev/null
+++ b/t/lib-bitmap.sh
@@ -0,0 +1,26 @@
+# Compare a file containing rev-list bitmap traversal output to its non-bitmap
+# counterpart. You can't just use test_cmp for this, because the two produce
+# subtly different output:
+#
+# - regular output is in traversal order, whereas bitmap is split by type,
+# with non-packed objects at the end
+#
+# - regular output has a space and the pathname appended to non-commit
+# objects; bitmap output omits this
+#
+# This function normalizes and compares the two. The second file should
+# always be the bitmap output.
+test_bitmap_traversal () {
+ if test "$1" = "--no-confirm-bitmaps"
+ then
+ shift
+ elif cmp "$1" "$2"
+ then
+ echo >&2 "identical raw outputs; are you sure bitmaps were used?"
+ return 1
+ fi &&
+ cut -d' ' -f1 "$1" | sort >"$1.normalized" &&
+ sort "$2" >"$2.normalized" &&
+ test_cmp "$1.normalized" "$2.normalized" &&
+ rm -f "$1.normalized" "$2.normalized"
+}