Skip to content

Commit 936ac64

Browse files
neerajsi-msftdscho
authored andcommitted
test-lib-functions: add parsing helpers for ls-files and ls-tree
Several tests use awk to parse OIDs from the output of 'git ls-files --stage' and 'git ls-tree'. Introduce helpers to centralize these uses of awk. Update t5317-pack-objects-filter-objects.sh to use the new ls-files helper so that it has some usages to review. Other updates are left for the future. Signed-off-by: Neeraj Singh <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 014403c commit 936ac64

File tree

2 files changed

+54
-47
lines changed

2 files changed

+54
-47
lines changed

t/t5317-pack-objects-filter-objects.sh

Lines changed: 44 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
1010
# Test blob:none filter.
1111

1212
test_expect_success 'setup r1' '
13-
echo "{print \$1}" >print_1.awk &&
14-
echo "{print \$2}" >print_2.awk &&
15-
1613
git init r1 &&
1714
for n in 1 2 3 4 5
1815
do
@@ -22,10 +19,13 @@ test_expect_success 'setup r1' '
2219
done
2320
'
2421

22+
parse_verify_pack_blob_oid () {
23+
awk '{print $1}' -
24+
}
25+
2526
test_expect_success 'verify blob count in normal packfile' '
26-
git -C r1 ls-files -s file.1 file.2 file.3 file.4 file.5 \
27-
>ls_files_result &&
28-
awk -f print_2.awk ls_files_result |
27+
git -C r1 ls-files -s file.1 file.2 file.3 file.4 file.5 |
28+
test_parse_ls_files_stage_oids |
2929
sort >expected &&
3030
3131
git -C r1 pack-objects --revs --stdout >all.pack <<-EOF &&
@@ -35,7 +35,7 @@ test_expect_success 'verify blob count in normal packfile' '
3535
3636
git -C r1 verify-pack -v ../all.pack >verify_result &&
3737
grep blob verify_result |
38-
awk -f print_1.awk |
38+
parse_verify_pack_blob_oid |
3939
sort >observed &&
4040
4141
test_cmp expected observed
@@ -54,12 +54,12 @@ test_expect_success 'verify blob:none packfile has no blobs' '
5454
test_expect_success 'verify normal and blob:none packfiles have same commits/trees' '
5555
git -C r1 verify-pack -v ../all.pack >verify_result &&
5656
grep -E "commit|tree" verify_result |
57-
awk -f print_1.awk |
57+
parse_verify_pack_blob_oid |
5858
sort >expected &&
5959
6060
git -C r1 verify-pack -v ../filter.pack >verify_result &&
6161
grep -E "commit|tree" verify_result |
62-
awk -f print_1.awk |
62+
parse_verify_pack_blob_oid |
6363
sort >observed &&
6464
6565
test_cmp expected observed
@@ -123,8 +123,8 @@ test_expect_success 'setup r2' '
123123
'
124124

125125
test_expect_success 'verify blob count in normal packfile' '
126-
git -C r2 ls-files -s large.1000 large.10000 >ls_files_result &&
127-
awk -f print_2.awk ls_files_result |
126+
git -C r2 ls-files -s large.1000 large.10000 |
127+
test_parse_ls_files_stage_oids |
128128
sort >expected &&
129129
130130
git -C r2 pack-objects --revs --stdout >all.pack <<-EOF &&
@@ -134,7 +134,7 @@ test_expect_success 'verify blob count in normal packfile' '
134134
135135
git -C r2 verify-pack -v ../all.pack >verify_result &&
136136
grep blob verify_result |
137-
awk -f print_1.awk |
137+
parse_verify_pack_blob_oid |
138138
sort >observed &&
139139
140140
test_cmp expected observed
@@ -161,8 +161,8 @@ test_expect_success 'verify blob:limit=1000' '
161161
'
162162

163163
test_expect_success 'verify blob:limit=1001' '
164-
git -C r2 ls-files -s large.1000 >ls_files_result &&
165-
awk -f print_2.awk ls_files_result |
164+
git -C r2 ls-files -s large.1000 |
165+
test_parse_ls_files_stage_oids |
166166
sort >expected &&
167167
168168
git -C r2 pack-objects --revs --stdout --filter=blob:limit=1001 >filter.pack <<-EOF &&
@@ -172,15 +172,15 @@ test_expect_success 'verify blob:limit=1001' '
172172
173173
git -C r2 verify-pack -v ../filter.pack >verify_result &&
174174
grep blob verify_result |
175-
awk -f print_1.awk |
175+
parse_verify_pack_blob_oid |
176176
sort >observed &&
177177
178178
test_cmp expected observed
179179
'
180180

181181
test_expect_success 'verify blob:limit=10001' '
182-
git -C r2 ls-files -s large.1000 large.10000 >ls_files_result &&
183-
awk -f print_2.awk ls_files_result |
182+
git -C r2 ls-files -s large.1000 large.10000 |
183+
test_parse_ls_files_stage_oids |
184184
sort >expected &&
185185
186186
git -C r2 pack-objects --revs --stdout --filter=blob:limit=10001 >filter.pack <<-EOF &&
@@ -190,15 +190,15 @@ test_expect_success 'verify blob:limit=10001' '
190190
191191
git -C r2 verify-pack -v ../filter.pack >verify_result &&
192192
grep blob verify_result |
193-
awk -f print_1.awk |
193+
parse_verify_pack_blob_oid |
194194
sort >observed &&
195195
196196
test_cmp expected observed
197197
'
198198

199199
test_expect_success 'verify blob:limit=1k' '
200-
git -C r2 ls-files -s large.1000 >ls_files_result &&
201-
awk -f print_2.awk ls_files_result |
200+
git -C r2 ls-files -s large.1000 |
201+
test_parse_ls_files_stage_oids |
202202
sort >expected &&
203203
204204
git -C r2 pack-objects --revs --stdout --filter=blob:limit=1k >filter.pack <<-EOF &&
@@ -208,15 +208,15 @@ test_expect_success 'verify blob:limit=1k' '
208208
209209
git -C r2 verify-pack -v ../filter.pack >verify_result &&
210210
grep blob verify_result |
211-
awk -f print_1.awk |
211+
parse_verify_pack_blob_oid |
212212
sort >observed &&
213213
214214
test_cmp expected observed
215215
'
216216

217217
test_expect_success 'verify explicitly specifying oversized blob in input' '
218-
git -C r2 ls-files -s large.1000 large.10000 >ls_files_result &&
219-
awk -f print_2.awk ls_files_result |
218+
git -C r2 ls-files -s large.1000 large.10000 |
219+
test_parse_ls_files_stage_oids |
220220
sort >expected &&
221221
222222
echo HEAD >objects &&
@@ -226,15 +226,15 @@ test_expect_success 'verify explicitly specifying oversized blob in input' '
226226
227227
git -C r2 verify-pack -v ../filter.pack >verify_result &&
228228
grep blob verify_result |
229-
awk -f print_1.awk |
229+
parse_verify_pack_blob_oid |
230230
sort >observed &&
231231
232232
test_cmp expected observed
233233
'
234234

235235
test_expect_success 'verify blob:limit=1m' '
236-
git -C r2 ls-files -s large.1000 large.10000 >ls_files_result &&
237-
awk -f print_2.awk ls_files_result |
236+
git -C r2 ls-files -s large.1000 large.10000 |
237+
test_parse_ls_files_stage_oids |
238238
sort >expected &&
239239
240240
git -C r2 pack-objects --revs --stdout --filter=blob:limit=1m >filter.pack <<-EOF &&
@@ -244,7 +244,7 @@ test_expect_success 'verify blob:limit=1m' '
244244
245245
git -C r2 verify-pack -v ../filter.pack >verify_result &&
246246
grep blob verify_result |
247-
awk -f print_1.awk |
247+
parse_verify_pack_blob_oid |
248248
sort >observed &&
249249
250250
test_cmp expected observed
@@ -253,12 +253,12 @@ test_expect_success 'verify blob:limit=1m' '
253253
test_expect_success 'verify normal and blob:limit packfiles have same commits/trees' '
254254
git -C r2 verify-pack -v ../all.pack >verify_result &&
255255
grep -E "commit|tree" verify_result |
256-
awk -f print_1.awk |
256+
parse_verify_pack_blob_oid |
257257
sort >expected &&
258258
259259
git -C r2 verify-pack -v ../filter.pack >verify_result &&
260260
grep -E "commit|tree" verify_result |
261-
awk -f print_1.awk |
261+
parse_verify_pack_blob_oid |
262262
sort >observed &&
263263
264264
test_cmp expected observed
@@ -289,9 +289,8 @@ test_expect_success 'setup r3' '
289289
'
290290

291291
test_expect_success 'verify blob count in normal packfile' '
292-
git -C r3 ls-files -s sparse1 sparse2 dir1/sparse1 dir1/sparse2 \
293-
>ls_files_result &&
294-
awk -f print_2.awk ls_files_result |
292+
git -C r3 ls-files -s sparse1 sparse2 dir1/sparse1 dir1/sparse2 |
293+
test_parse_ls_files_stage_oids |
295294
sort >expected &&
296295
297296
git -C r3 pack-objects --revs --stdout >all.pack <<-EOF &&
@@ -301,7 +300,7 @@ test_expect_success 'verify blob count in normal packfile' '
301300
302301
git -C r3 verify-pack -v ../all.pack >verify_result &&
303302
grep blob verify_result |
304-
awk -f print_1.awk |
303+
parse_verify_pack_blob_oid |
305304
sort >observed &&
306305
307306
test_cmp expected observed
@@ -342,9 +341,8 @@ test_expect_success 'setup r4' '
342341
'
343342

344343
test_expect_success 'verify blob count in normal packfile' '
345-
git -C r4 ls-files -s pattern sparse1 sparse2 dir1/sparse1 dir1/sparse2 \
346-
>ls_files_result &&
347-
awk -f print_2.awk ls_files_result |
344+
git -C r4 ls-files -s pattern sparse1 sparse2 dir1/sparse1 dir1/sparse2 |
345+
test_parse_ls_files_stage_oids |
348346
sort >expected &&
349347
350348
git -C r4 pack-objects --revs --stdout >all.pack <<-EOF &&
@@ -354,35 +352,35 @@ test_expect_success 'verify blob count in normal packfile' '
354352
355353
git -C r4 verify-pack -v ../all.pack >verify_result &&
356354
grep blob verify_result |
357-
awk -f print_1.awk |
355+
parse_verify_pack_blob_oid |
358356
sort >observed &&
359357
360358
test_cmp expected observed
361359
'
362360

363361
test_expect_success 'verify sparse:oid=OID' '
364-
git -C r4 ls-files -s dir1/sparse1 dir1/sparse2 >ls_files_result &&
365-
awk -f print_2.awk ls_files_result |
362+
git -C r4 ls-files -s dir1/sparse1 dir1/sparse2 |
363+
test_parse_ls_files_stage_oids |
366364
sort >expected &&
367365
368366
git -C r4 ls-files -s pattern >staged &&
369-
oid=$(awk -f print_2.awk staged) &&
367+
oid=$(test_parse_ls_files_stage_oids <staged) &&
370368
git -C r4 pack-objects --revs --stdout --filter=sparse:oid=$oid >filter.pack <<-EOF &&
371369
HEAD
372370
EOF
373371
git -C r4 index-pack ../filter.pack &&
374372
375373
git -C r4 verify-pack -v ../filter.pack >verify_result &&
376374
grep blob verify_result |
377-
awk -f print_1.awk |
375+
parse_verify_pack_blob_oid |
378376
sort >observed &&
379377
380378
test_cmp expected observed
381379
'
382380

383381
test_expect_success 'verify sparse:oid=oid-ish' '
384-
git -C r4 ls-files -s dir1/sparse1 dir1/sparse2 >ls_files_result &&
385-
awk -f print_2.awk ls_files_result |
382+
git -C r4 ls-files -s dir1/sparse1 dir1/sparse2 |
383+
test_parse_ls_files_stage_oids |
386384
sort >expected &&
387385
388386
git -C r4 pack-objects --revs --stdout --filter=sparse:oid=main:pattern >filter.pack <<-EOF &&
@@ -392,7 +390,7 @@ test_expect_success 'verify sparse:oid=oid-ish' '
392390
393391
git -C r4 verify-pack -v ../filter.pack >verify_result &&
394392
grep blob verify_result |
395-
awk -f print_1.awk |
393+
parse_verify_pack_blob_oid |
396394
sort >observed &&
397395
398396
test_cmp expected observed
@@ -402,9 +400,8 @@ test_expect_success 'verify sparse:oid=oid-ish' '
402400
# This models previously omitted objects that we did not receive.
403401

404402
test_expect_success 'setup r1 - delete loose blobs' '
405-
git -C r1 ls-files -s file.1 file.2 file.3 file.4 file.5 \
406-
>ls_files_result &&
407-
awk -f print_2.awk ls_files_result |
403+
git -C r1 ls-files -s file.1 file.2 file.3 file.4 file.5 |
404+
test_parse_ls_files_stage_oids |
408405
sort >expected &&
409406
410407
for id in `cat expected | sed "s|..|&/|"`

t/test-lib-functions.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1782,6 +1782,16 @@ test_oid_to_path () {
17821782
echo "${1%$basename}/$basename"
17831783
}
17841784

1785+
# Parse oids from git ls-files --staged output
1786+
test_parse_ls_files_stage_oids () {
1787+
awk '{print $2}' -
1788+
}
1789+
1790+
# Parse oids from git ls-tree output
1791+
test_parse_ls_tree_oids () {
1792+
awk '{print $3}' -
1793+
}
1794+
17851795
# Choose a port number based on the test script's number and store it in
17861796
# the given variable name, unless that variable already contains a number.
17871797
test_set_port () {

0 commit comments

Comments
 (0)