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>
Patrick Steinhardt committed
Apr 9, 2024 at 11:57 UTC
2f960dd5fe484679486cfdd42a3f0015d97fa822
1 file changed
+30
-27
t/t0610-reftable-basics.sh
+30
-27
@@ -96,23 +96,46 @@ test_expect_perms () {
96
esac
97
}
98
99
-for umask in 002 022
100
-do
101
- test_expect_success POSIXPERM 'init: honors core.sharedRepository' '
99
+test_expect_reftable_perms () {
100
+ local umask="$1"
101
+ local shared="$2"
102
+ local expect="$3"
103
+
104
+ test_expect_success POSIXPERM "init: honors --shared=$shared with umask $umask" '
105
test_when_finished "rm -rf repo" &&
106
(
107
umask $umask &&
105
- git init --shared=true repo &&
108
+ git init --shared=$shared repo &&
109
test 1 = "$(git -C repo config core.sharedrepository)"
110
) &&
108
- test_expect_perms "-rw-rw-r--" repo/.git/reftable/tables.list &&
111
+ test_expect_perms "$expect" repo/.git/reftable/tables.list &&
112
for table in repo/.git/reftable/*.ref
113
do
111
- test_expect_perms "-rw-rw-r--" "$table" ||
114
+ test_expect_perms "$expect" "$table" ||
115
return 1
116
done
117
'
115
-done
118
+
119
+ test_expect_success POSIXPERM "pack-refs: honors --shared=$shared with umask $umask" '
120
+ test_when_finished "rm -rf repo" &&
121
+ (
122
+ umask $umask &&
123
+ git init --shared=$shared repo &&
124
+ test_commit -C repo A &&
125
+ test_line_count = 3 repo/.git/reftable/tables.list
126
+ ) &&
127
+ git -C repo pack-refs &&
128
+ test_expect_perms "$expect" repo/.git/reftable/tables.list &&
129
+ for table in repo/.git/reftable/*.ref
130
+ do
131
+ test_expect_perms "$expect" "$table" ||
132
+ return 1
133
+ done
134
+ '
135
+}
136
+
137
+test_expect_reftable_perms 002 true "-rw-rw-r--"
138
+test_expect_reftable_perms 022 true "-rw-rw-r--"
139
140
test_expect_success 'clone: can clone reftable repository' '
141
test_when_finished "rm -rf repo clone" &&
@@ -359,26 +382,6 @@ test_expect_success 'pack-refs: does not prune non-table files' '
382
test_path_is_file repo/.git/reftable/garbage
383
'
384
362
-for umask in 002 022
363
-do
364
- test_expect_success POSIXPERM 'pack-refs: honors core.sharedRepository' '
365
- test_when_finished "rm -rf repo" &&
366
- (
367
- umask $umask &&
368
- git init --shared=true repo &&
369
- test_commit -C repo A &&
370
- test_line_count = 3 repo/.git/reftable/tables.list
371
- ) &&
372
- git -C repo pack-refs &&
373
- test_expect_perms "-rw-rw-r--" repo/.git/reftable/tables.list &&
374
- for table in repo/.git/reftable/*.ref
375
- do
376
- test_expect_perms "-rw-rw-r--" "$table" ||
377
- return 1
378
- done
379
- '
380
-done
381
-
385
test_expect_success 'packed-refs: writes are synced' '
386
test_when_finished "rm -rf repo" &&
387
git init repo &&