Skip to content

Commit 7c01878

Browse files
ttaylorrgitster
authored andcommitted
t5332-multi-pack-reuse.sh: extract pack-objects helper functions
Most of the tests in t5332 perform some setup before repeating a common refrain that looks like: : >trace2.txt && GIT_TRACE2_EVENT="$PWD/trace2.txt" \ git pack-objects --stdout --revs --all >/dev/null && test_pack_reused $objects_nr <trace2.txt && test_packs_reused $packs_nr <trace2.txt The next commit will add more tests which repeat the above refrain. Avoid duplicating this invocation even further and prepare for the following commit by wrapping the above in a helper function called `test_pack_objects_reused_all()`. Introduce another similar function `test_pack_objects_reused`, which expects to read a list of revisions over stdin for tests which need more fine-grained control of the contents of the pack they generate. Signed-off-by: Taylor Blau <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 2a540e4 commit 7c01878

File tree

1 file changed

+29
-42
lines changed

1 file changed

+29
-42
lines changed

t/t5332-multi-pack-reuse.sh

Lines changed: 29 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,27 @@ pack_position () {
2323
grep "$1" objects | cut -d" " -f1
2424
}
2525

26+
# test_pack_objects_reused_all <pack-reused> <packs-reused>
27+
test_pack_objects_reused_all () {
28+
: >trace2.txt &&
29+
GIT_TRACE2_EVENT="$PWD/trace2.txt" \
30+
git pack-objects --stdout --revs --all --delta-base-offset \
31+
>/dev/null &&
32+
33+
test_pack_reused "$1" <trace2.txt &&
34+
test_packs_reused "$2" <trace2.txt
35+
}
36+
37+
# test_pack_objects_reused <pack-reused> <packs-reused>
38+
test_pack_objects_reused () {
39+
: >trace2.txt &&
40+
GIT_TRACE2_EVENT="$PWD/trace2.txt" \
41+
git pack-objects --stdout --revs >/dev/null &&
42+
43+
test_pack_reused "$1" <trace2.txt &&
44+
test_packs_reused "$2" <trace2.txt
45+
}
46+
2647
test_expect_success 'preferred pack is reused for single-pack reuse' '
2748
test_config pack.allowPackReuse single &&
2849
@@ -34,14 +55,10 @@ test_expect_success 'preferred pack is reused for single-pack reuse' '
3455
3556
git multi-pack-index write --bitmap &&
3657
37-
: >trace2.txt &&
38-
GIT_TRACE2_EVENT="$PWD/trace2.txt" \
39-
git pack-objects --stdout --revs --all >/dev/null &&
40-
41-
test_pack_reused 3 <trace2.txt &&
42-
test_packs_reused 1 <trace2.txt
58+
test_pack_objects_reused_all 3 1
4359
'
4460

61+
4562
test_expect_success 'enable multi-pack reuse' '
4663
git config pack.allowPackReuse multi
4764
'
@@ -57,21 +74,11 @@ test_expect_success 'reuse all objects from subset of bitmapped packs' '
5774
^$(git rev-parse A)
5875
EOF
5976
60-
: >trace2.txt &&
61-
GIT_TRACE2_EVENT="$PWD/trace2.txt" \
62-
git pack-objects --stdout --revs <in >/dev/null &&
63-
64-
test_pack_reused 6 <trace2.txt &&
65-
test_packs_reused 2 <trace2.txt
77+
test_pack_objects_reused 6 2 <in
6678
'
6779

6880
test_expect_success 'reuse all objects from all packs' '
69-
: >trace2.txt &&
70-
GIT_TRACE2_EVENT="$PWD/trace2.txt" \
71-
git pack-objects --stdout --revs --all >/dev/null &&
72-
73-
test_pack_reused 9 <trace2.txt &&
74-
test_packs_reused 3 <trace2.txt
81+
test_pack_objects_reused_all 9 3
7582
'
7683

7784
test_expect_success 'reuse objects from first pack with middle gap' '
@@ -104,12 +111,7 @@ test_expect_success 'reuse objects from first pack with middle gap' '
104111
^$(git rev-parse D)
105112
EOF
106113
107-
: >trace2.txt &&
108-
GIT_TRACE2_EVENT="$PWD/trace2.txt" \
109-
git pack-objects --stdout --delta-base-offset --revs <in >/dev/null &&
110-
111-
test_pack_reused 3 <trace2.txt &&
112-
test_packs_reused 1 <trace2.txt
114+
test_pack_objects_reused 3 1 <in
113115
'
114116

115117
test_expect_success 'reuse objects from middle pack with middle gap' '
@@ -125,12 +127,7 @@ test_expect_success 'reuse objects from middle pack with middle gap' '
125127
^$(git rev-parse D)
126128
EOF
127129
128-
: >trace2.txt &&
129-
GIT_TRACE2_EVENT="$PWD/trace2.txt" \
130-
git pack-objects --stdout --delta-base-offset --revs <in >/dev/null &&
131-
132-
test_pack_reused 3 <trace2.txt &&
133-
test_packs_reused 1 <trace2.txt
130+
test_pack_objects_reused 3 1 <in
134131
'
135132

136133
test_expect_success 'omit delta with uninteresting base (same pack)' '
@@ -160,10 +157,6 @@ test_expect_success 'omit delta with uninteresting base (same pack)' '
160157
^$base
161158
EOF
162159
163-
: >trace2.txt &&
164-
GIT_TRACE2_EVENT="$PWD/trace2.txt" \
165-
git pack-objects --stdout --delta-base-offset --revs <in >/dev/null &&
166-
167160
# We can only reuse the 3 objects corresponding to "other" from
168161
# the latest pack.
169162
#
@@ -175,8 +168,7 @@ test_expect_success 'omit delta with uninteresting base (same pack)' '
175168
# The remaining objects from the other pack are similarly not
176169
# reused because their objects are on the uninteresting side of
177170
# the query.
178-
test_pack_reused 3 <trace2.txt &&
179-
test_packs_reused 1 <trace2.txt
171+
test_pack_objects_reused 3 1 <in
180172
'
181173

182174
test_expect_success 'omit delta from uninteresting base (cross pack)' '
@@ -189,15 +181,10 @@ test_expect_success 'omit delta from uninteresting base (cross pack)' '
189181
190182
git multi-pack-index write --bitmap --preferred-pack="pack-$P.idx" &&
191183
192-
: >trace2.txt &&
193-
GIT_TRACE2_EVENT="$PWD/trace2.txt" \
194-
git pack-objects --stdout --delta-base-offset --all >/dev/null &&
195-
196184
packs_nr="$(find $packdir -type f -name "pack-*.pack" | wc -l)" &&
197185
objects_nr="$(git rev-list --count --all --objects)" &&
198186
199-
test_pack_reused $(($objects_nr - 1)) <trace2.txt &&
200-
test_packs_reused $packs_nr <trace2.txt
187+
test_pack_objects_reused_all $(($objects_nr - 1)) $packs_nr
201188
'
202189

203190
test_done

0 commit comments

Comments
 (0)