]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t0610: make `--shared=` tests reusable
authorPatrick Steinhardt <ps@pks.im>
Tue, 9 Apr 2024 09:57:27 +0000 (11:57 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 9 Apr 2024 21:14:00 +0000 (14:14 -0700)
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>
t/t0610-reftable-basics.sh

index 6a131e40b8157dc3fefea53704ad2377b7ce5c3a..aefa625cee292a45f0d567f1fb323797b6e96808 100755 (executable)
@@ -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 &&