aboutsummaryrefslogtreecommitdiffstats
path: root/t/t0064-oid-array.sh
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-06-14 08:51:05 +0200
committerJunio C Hamano <gitster@pobox.com>2024-06-14 10:26:34 -0700
commit8e9a1d0dc2d543c05cb0c11a598fb7675d5deea8 (patch)
tree74164c1fc022fa458cfee4a384fea9f83df10b3f /t/t0064-oid-array.sh
parentfa9e009aa74a2393067eb417d9eab3490d295fc8 (diff)
downloadgit-8e9a1d0dc2d543c05cb0c11a598fb7675d5deea8.tar.gz
t/helper: fix segfault in "oid-array" command without repository
The "oid-array" test helper can supposedly work without a Git repository, but will in fact crash because `the_repository->hash_algo` is not initialized. This is because `oid_pos()`, which is used by `oid_array_lookup()`, depends on `the_hash_algo->rawsz`. Ideally, we'd adapt `oid_pos()` to not depend on `the_hash_algo` anymore. That is a bigger untertaking though, so instead we fall back to SHA1 when there is no repository. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t0064-oid-array.sh')
-rwxr-xr-xt/t0064-oid-array.sh18
1 files changed, 18 insertions, 0 deletions
diff --git a/t/t0064-oid-array.sh b/t/t0064-oid-array.sh
index 88c89e8f48..de74b692d0 100755
--- a/t/t0064-oid-array.sh
+++ b/t/t0064-oid-array.sh
@@ -15,6 +15,24 @@ echoid () {
done
}
+test_expect_success 'without repository' '
+ cat >expect <<-EOF &&
+ 4444444444444444444444444444444444444444
+ 5555555555555555555555555555555555555555
+ 8888888888888888888888888888888888888888
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ EOF
+ cat >input <<-EOF &&
+ append 4444444444444444444444444444444444444444
+ append 5555555555555555555555555555555555555555
+ append 8888888888888888888888888888888888888888
+ append aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ for_each_unique
+ EOF
+ nongit test-tool oid-array <input >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'ordered enumeration' '
echoid "" 44 55 88 aa >expect &&
{