Git fork

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 <neerajsi@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

authored by

Neeraj Singh and committed by
Junio C Hamano
fb2d0db5 8a94d833

+54 -47
+44 -47
t/t5317-pack-objects-filter-objects.sh
··· 10 10 # Test blob:none filter. 11 11 12 12 test_expect_success 'setup r1' ' 13 - echo "{print \$1}" >print_1.awk && 14 - echo "{print \$2}" >print_2.awk && 15 - 16 13 git init r1 && 17 14 for n in 1 2 3 4 5 18 15 do ··· 22 19 done 23 20 ' 24 21 22 + parse_verify_pack_blob_oid () { 23 + awk '{print $1}' - 24 + } 25 + 25 26 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 | 29 29 sort >expected && 30 30 31 31 git -C r1 pack-objects --revs --stdout >all.pack <<-EOF && ··· 35 35 36 36 git -C r1 verify-pack -v ../all.pack >verify_result && 37 37 grep blob verify_result | 38 - awk -f print_1.awk | 38 + parse_verify_pack_blob_oid | 39 39 sort >observed && 40 40 41 41 test_cmp expected observed ··· 54 54 test_expect_success 'verify normal and blob:none packfiles have same commits/trees' ' 55 55 git -C r1 verify-pack -v ../all.pack >verify_result && 56 56 grep -E "commit|tree" verify_result | 57 - awk -f print_1.awk | 57 + parse_verify_pack_blob_oid | 58 58 sort >expected && 59 59 60 60 git -C r1 verify-pack -v ../filter.pack >verify_result && 61 61 grep -E "commit|tree" verify_result | 62 - awk -f print_1.awk | 62 + parse_verify_pack_blob_oid | 63 63 sort >observed && 64 64 65 65 test_cmp expected observed ··· 123 123 ' 124 124 125 125 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 | 128 128 sort >expected && 129 129 130 130 git -C r2 pack-objects --revs --stdout >all.pack <<-EOF && ··· 134 134 135 135 git -C r2 verify-pack -v ../all.pack >verify_result && 136 136 grep blob verify_result | 137 - awk -f print_1.awk | 137 + parse_verify_pack_blob_oid | 138 138 sort >observed && 139 139 140 140 test_cmp expected observed ··· 161 161 ' 162 162 163 163 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 | 166 166 sort >expected && 167 167 168 168 git -C r2 pack-objects --revs --stdout --filter=blob:limit=1001 >filter.pack <<-EOF && ··· 172 172 173 173 git -C r2 verify-pack -v ../filter.pack >verify_result && 174 174 grep blob verify_result | 175 - awk -f print_1.awk | 175 + parse_verify_pack_blob_oid | 176 176 sort >observed && 177 177 178 178 test_cmp expected observed 179 179 ' 180 180 181 181 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 | 184 184 sort >expected && 185 185 186 186 git -C r2 pack-objects --revs --stdout --filter=blob:limit=10001 >filter.pack <<-EOF && ··· 190 190 191 191 git -C r2 verify-pack -v ../filter.pack >verify_result && 192 192 grep blob verify_result | 193 - awk -f print_1.awk | 193 + parse_verify_pack_blob_oid | 194 194 sort >observed && 195 195 196 196 test_cmp expected observed 197 197 ' 198 198 199 199 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 | 202 202 sort >expected && 203 203 204 204 git -C r2 pack-objects --revs --stdout --filter=blob:limit=1k >filter.pack <<-EOF && ··· 208 208 209 209 git -C r2 verify-pack -v ../filter.pack >verify_result && 210 210 grep blob verify_result | 211 - awk -f print_1.awk | 211 + parse_verify_pack_blob_oid | 212 212 sort >observed && 213 213 214 214 test_cmp expected observed 215 215 ' 216 216 217 217 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 | 220 220 sort >expected && 221 221 222 222 echo HEAD >objects && ··· 226 226 227 227 git -C r2 verify-pack -v ../filter.pack >verify_result && 228 228 grep blob verify_result | 229 - awk -f print_1.awk | 229 + parse_verify_pack_blob_oid | 230 230 sort >observed && 231 231 232 232 test_cmp expected observed 233 233 ' 234 234 235 235 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 | 238 238 sort >expected && 239 239 240 240 git -C r2 pack-objects --revs --stdout --filter=blob:limit=1m >filter.pack <<-EOF && ··· 244 244 245 245 git -C r2 verify-pack -v ../filter.pack >verify_result && 246 246 grep blob verify_result | 247 - awk -f print_1.awk | 247 + parse_verify_pack_blob_oid | 248 248 sort >observed && 249 249 250 250 test_cmp expected observed ··· 253 253 test_expect_success 'verify normal and blob:limit packfiles have same commits/trees' ' 254 254 git -C r2 verify-pack -v ../all.pack >verify_result && 255 255 grep -E "commit|tree" verify_result | 256 - awk -f print_1.awk | 256 + parse_verify_pack_blob_oid | 257 257 sort >expected && 258 258 259 259 git -C r2 verify-pack -v ../filter.pack >verify_result && 260 260 grep -E "commit|tree" verify_result | 261 - awk -f print_1.awk | 261 + parse_verify_pack_blob_oid | 262 262 sort >observed && 263 263 264 264 test_cmp expected observed ··· 289 289 ' 290 290 291 291 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 | 295 294 sort >expected && 296 295 297 296 git -C r3 pack-objects --revs --stdout >all.pack <<-EOF && ··· 301 300 302 301 git -C r3 verify-pack -v ../all.pack >verify_result && 303 302 grep blob verify_result | 304 - awk -f print_1.awk | 303 + parse_verify_pack_blob_oid | 305 304 sort >observed && 306 305 307 306 test_cmp expected observed ··· 342 341 ' 343 342 344 343 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 | 348 346 sort >expected && 349 347 350 348 git -C r4 pack-objects --revs --stdout >all.pack <<-EOF && ··· 354 352 355 353 git -C r4 verify-pack -v ../all.pack >verify_result && 356 354 grep blob verify_result | 357 - awk -f print_1.awk | 355 + parse_verify_pack_blob_oid | 358 356 sort >observed && 359 357 360 358 test_cmp expected observed 361 359 ' 362 360 363 361 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 | 366 364 sort >expected && 367 365 368 366 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) && 370 368 git -C r4 pack-objects --revs --stdout --filter=sparse:oid=$oid >filter.pack <<-EOF && 371 369 HEAD 372 370 EOF ··· 374 372 375 373 git -C r4 verify-pack -v ../filter.pack >verify_result && 376 374 grep blob verify_result | 377 - awk -f print_1.awk | 375 + parse_verify_pack_blob_oid | 378 376 sort >observed && 379 377 380 378 test_cmp expected observed 381 379 ' 382 380 383 381 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 | 386 384 sort >expected && 387 385 388 386 git -C r4 pack-objects --revs --stdout --filter=sparse:oid=main:pattern >filter.pack <<-EOF && ··· 392 390 393 391 git -C r4 verify-pack -v ../filter.pack >verify_result && 394 392 grep blob verify_result | 395 - awk -f print_1.awk | 393 + parse_verify_pack_blob_oid | 396 394 sort >observed && 397 395 398 396 test_cmp expected observed ··· 402 400 # This models previously omitted objects that we did not receive. 403 401 404 402 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 | 408 405 sort >expected && 409 406 410 407 for id in `cat expected | sed "s|..|&/|"`
+10
t/test-lib-functions.sh
··· 1706 1706 echo "${1%$basename}/$basename" 1707 1707 } 1708 1708 1709 + # Parse oids from git ls-files --staged output 1710 + test_parse_ls_files_stage_oids () { 1711 + awk '{print $2}' - 1712 + } 1713 + 1714 + # Parse oids from git ls-tree output 1715 + test_parse_ls_tree_oids () { 1716 + awk '{print $3}' - 1717 + } 1718 + 1709 1719 # Choose a port number based on the test script's number and store it in 1710 1720 # the given variable name, unless that variable already contains a number. 1711 1721 test_set_port () {