1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-12 16:26:08 +02:00

t0610: make `--shared=` tests reusable

We have two kinds of `--shared=` tests, one for git-init(1) and one for
git-pack-refs(1). Merge them into a reusable function such that we can
easily add additional testcases with different umasks and flags for the
`--shared=` switch.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt 2024-04-09 11:57:27 +02:00 committed by Junio C Hamano
parent 8a0bebdeae
commit 2f960dd5fe

View File

@ -96,23 +96,46 @@ test_expect_perms () {
esac
}
for umask in 002 022
do
test_expect_success POSIXPERM 'init: honors core.sharedRepository' '
test_expect_reftable_perms () {
local umask="$1"
local shared="$2"
local expect="$3"
test_expect_success POSIXPERM "init: honors --shared=$shared with umask $umask" '
test_when_finished "rm -rf repo" &&
(
umask $umask &&
git init --shared=true repo &&
git init --shared=$shared repo &&
test 1 = "$(git -C repo config core.sharedrepository)"
) &&
test_expect_perms "-rw-rw-r--" repo/.git/reftable/tables.list &&
test_expect_perms "$expect" repo/.git/reftable/tables.list &&
for table in repo/.git/reftable/*.ref
do
test_expect_perms "-rw-rw-r--" "$table" ||
test_expect_perms "$expect" "$table" ||
return 1
done
'
done
test_expect_success POSIXPERM "pack-refs: honors --shared=$shared with umask $umask" '
test_when_finished "rm -rf repo" &&
(
umask $umask &&
git init --shared=$shared repo &&
test_commit -C repo A &&
test_line_count = 3 repo/.git/reftable/tables.list
) &&
git -C repo pack-refs &&
test_expect_perms "$expect" repo/.git/reftable/tables.list &&
for table in repo/.git/reftable/*.ref
do
test_expect_perms "$expect" "$table" ||
return 1
done
'
}
test_expect_reftable_perms 002 true "-rw-rw-r--"
test_expect_reftable_perms 022 true "-rw-rw-r--"
test_expect_success 'clone: can clone reftable repository' '
test_when_finished "rm -rf repo clone" &&
@ -359,26 +382,6 @@ test_expect_success 'pack-refs: does not prune non-table files' '
test_path_is_file repo/.git/reftable/garbage
'
for umask in 002 022
do
test_expect_success POSIXPERM 'pack-refs: honors core.sharedRepository' '
test_when_finished "rm -rf repo" &&
(
umask $umask &&
git init --shared=true repo &&
test_commit -C repo A &&
test_line_count = 3 repo/.git/reftable/tables.list
) &&
git -C repo pack-refs &&
test_expect_perms "-rw-rw-r--" repo/.git/reftable/tables.list &&
for table in repo/.git/reftable/*.ref
do
test_expect_perms "-rw-rw-r--" "$table" ||
return 1
done
'
done
test_expect_success 'packed-refs: writes are synced' '
test_when_finished "rm -rf repo" &&
git init repo &&