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>
This commit is contained in:
parent
8a94d83349
commit
fb2d0db502
@ -10,9 +10,6 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
# Test blob:none filter.
|
||||
|
||||
test_expect_success 'setup r1' '
|
||||
echo "{print \$1}" >print_1.awk &&
|
||||
echo "{print \$2}" >print_2.awk &&
|
||||
|
||||
git init r1 &&
|
||||
for n in 1 2 3 4 5
|
||||
do
|
||||
@ -22,10 +19,13 @@ test_expect_success 'setup r1' '
|
||||
done
|
||||
'
|
||||
|
||||
parse_verify_pack_blob_oid () {
|
||||
awk '{print $1}' -
|
||||
}
|
||||
|
||||
test_expect_success 'verify blob count in normal packfile' '
|
||||
git -C r1 ls-files -s file.1 file.2 file.3 file.4 file.5 \
|
||||
>ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r1 ls-files -s file.1 file.2 file.3 file.4 file.5 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
git -C r1 pack-objects --revs --stdout >all.pack <<-EOF &&
|
||||
@ -35,7 +35,7 @@ test_expect_success 'verify blob count in normal packfile' '
|
||||
|
||||
git -C r1 verify-pack -v ../all.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
@ -54,12 +54,12 @@ test_expect_success 'verify blob:none packfile has no blobs' '
|
||||
test_expect_success 'verify normal and blob:none packfiles have same commits/trees' '
|
||||
git -C r1 verify-pack -v ../all.pack >verify_result &&
|
||||
grep -E "commit|tree" verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >expected &&
|
||||
|
||||
git -C r1 verify-pack -v ../filter.pack >verify_result &&
|
||||
grep -E "commit|tree" verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
@ -123,8 +123,8 @@ test_expect_success 'setup r2' '
|
||||
'
|
||||
|
||||
test_expect_success 'verify blob count in normal packfile' '
|
||||
git -C r2 ls-files -s large.1000 large.10000 >ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r2 ls-files -s large.1000 large.10000 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
git -C r2 pack-objects --revs --stdout >all.pack <<-EOF &&
|
||||
@ -134,7 +134,7 @@ test_expect_success 'verify blob count in normal packfile' '
|
||||
|
||||
git -C r2 verify-pack -v ../all.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
@ -161,8 +161,8 @@ test_expect_success 'verify blob:limit=1000' '
|
||||
'
|
||||
|
||||
test_expect_success 'verify blob:limit=1001' '
|
||||
git -C r2 ls-files -s large.1000 >ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r2 ls-files -s large.1000 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
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' '
|
||||
|
||||
git -C r2 verify-pack -v ../filter.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
'
|
||||
|
||||
test_expect_success 'verify blob:limit=10001' '
|
||||
git -C r2 ls-files -s large.1000 large.10000 >ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r2 ls-files -s large.1000 large.10000 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
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' '
|
||||
|
||||
git -C r2 verify-pack -v ../filter.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
'
|
||||
|
||||
test_expect_success 'verify blob:limit=1k' '
|
||||
git -C r2 ls-files -s large.1000 >ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r2 ls-files -s large.1000 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
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' '
|
||||
|
||||
git -C r2 verify-pack -v ../filter.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
'
|
||||
|
||||
test_expect_success 'verify explicitly specifying oversized blob in input' '
|
||||
git -C r2 ls-files -s large.1000 large.10000 >ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r2 ls-files -s large.1000 large.10000 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
echo HEAD >objects &&
|
||||
@ -226,15 +226,15 @@ test_expect_success 'verify explicitly specifying oversized blob in input' '
|
||||
|
||||
git -C r2 verify-pack -v ../filter.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
'
|
||||
|
||||
test_expect_success 'verify blob:limit=1m' '
|
||||
git -C r2 ls-files -s large.1000 large.10000 >ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r2 ls-files -s large.1000 large.10000 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
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' '
|
||||
|
||||
git -C r2 verify-pack -v ../filter.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
@ -253,12 +253,12 @@ test_expect_success 'verify blob:limit=1m' '
|
||||
test_expect_success 'verify normal and blob:limit packfiles have same commits/trees' '
|
||||
git -C r2 verify-pack -v ../all.pack >verify_result &&
|
||||
grep -E "commit|tree" verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >expected &&
|
||||
|
||||
git -C r2 verify-pack -v ../filter.pack >verify_result &&
|
||||
grep -E "commit|tree" verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
@ -289,9 +289,8 @@ test_expect_success 'setup r3' '
|
||||
'
|
||||
|
||||
test_expect_success 'verify blob count in normal packfile' '
|
||||
git -C r3 ls-files -s sparse1 sparse2 dir1/sparse1 dir1/sparse2 \
|
||||
>ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r3 ls-files -s sparse1 sparse2 dir1/sparse1 dir1/sparse2 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
git -C r3 pack-objects --revs --stdout >all.pack <<-EOF &&
|
||||
@ -301,7 +300,7 @@ test_expect_success 'verify blob count in normal packfile' '
|
||||
|
||||
git -C r3 verify-pack -v ../all.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
@ -342,9 +341,8 @@ test_expect_success 'setup r4' '
|
||||
'
|
||||
|
||||
test_expect_success 'verify blob count in normal packfile' '
|
||||
git -C r4 ls-files -s pattern sparse1 sparse2 dir1/sparse1 dir1/sparse2 \
|
||||
>ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r4 ls-files -s pattern sparse1 sparse2 dir1/sparse1 dir1/sparse2 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
git -C r4 pack-objects --revs --stdout >all.pack <<-EOF &&
|
||||
@ -354,19 +352,19 @@ test_expect_success 'verify blob count in normal packfile' '
|
||||
|
||||
git -C r4 verify-pack -v ../all.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
'
|
||||
|
||||
test_expect_success 'verify sparse:oid=OID' '
|
||||
git -C r4 ls-files -s dir1/sparse1 dir1/sparse2 >ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r4 ls-files -s dir1/sparse1 dir1/sparse2 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
git -C r4 ls-files -s pattern >staged &&
|
||||
oid=$(awk -f print_2.awk staged) &&
|
||||
oid=$(test_parse_ls_files_stage_oids <staged) &&
|
||||
git -C r4 pack-objects --revs --stdout --filter=sparse:oid=$oid >filter.pack <<-EOF &&
|
||||
HEAD
|
||||
EOF
|
||||
@ -374,15 +372,15 @@ test_expect_success 'verify sparse:oid=OID' '
|
||||
|
||||
git -C r4 verify-pack -v ../filter.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
'
|
||||
|
||||
test_expect_success 'verify sparse:oid=oid-ish' '
|
||||
git -C r4 ls-files -s dir1/sparse1 dir1/sparse2 >ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r4 ls-files -s dir1/sparse1 dir1/sparse2 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
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' '
|
||||
|
||||
git -C r4 verify-pack -v ../filter.pack >verify_result &&
|
||||
grep blob verify_result |
|
||||
awk -f print_1.awk |
|
||||
parse_verify_pack_blob_oid |
|
||||
sort >observed &&
|
||||
|
||||
test_cmp expected observed
|
||||
@ -402,9 +400,8 @@ test_expect_success 'verify sparse:oid=oid-ish' '
|
||||
# This models previously omitted objects that we did not receive.
|
||||
|
||||
test_expect_success 'setup r1 - delete loose blobs' '
|
||||
git -C r1 ls-files -s file.1 file.2 file.3 file.4 file.5 \
|
||||
>ls_files_result &&
|
||||
awk -f print_2.awk ls_files_result |
|
||||
git -C r1 ls-files -s file.1 file.2 file.3 file.4 file.5 |
|
||||
test_parse_ls_files_stage_oids |
|
||||
sort >expected &&
|
||||
|
||||
for id in `cat expected | sed "s|..|&/|"`
|
||||
|
@ -1706,6 +1706,16 @@ test_oid_to_path () {
|
||||
echo "${1%$basename}/$basename"
|
||||
}
|
||||
|
||||
# Parse oids from git ls-files --staged output
|
||||
test_parse_ls_files_stage_oids () {
|
||||
awk '{print $2}' -
|
||||
}
|
||||
|
||||
# Parse oids from git ls-tree output
|
||||
test_parse_ls_tree_oids () {
|
||||
awk '{print $3}' -
|
||||
}
|
||||
|
||||
# Choose a port number based on the test script's number and store it in
|
||||
# the given variable name, unless that variable already contains a number.
|
||||
test_set_port () {
|
||||
|
Loading…
Reference in New Issue
Block a user