(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'check receive input limits' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShFunction name: test_pack_input_limit body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(index)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unpack_limit) op: assign_op.Equal rhs: {(1)} spids: [44] ) ] ) ] spids: [41 42 47 -1] ) (case_arm pat_list: [{(unpack)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unpack_limit) op: assign_op.Equal rhs: {(10000)} spids: [53] ) ] ) ] spids: [50 51 56 -1] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'prepare destination repository' span_id:66))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:70) (Token id:Id.Lit_Chars val:'\t\trm -fr dest &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\t\tgit --bare init dest\n' span_id:72) (Token id:Id.Lit_Chars val:'\t' span_id:73) ) } ) (C {(test_expect_success)} {(DQ ('set unpacklimit to ') ($ Id.VSub_DollarName '$unpack_limit'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:86) (Token id: Id.Lit_Chars val: '\t\tgit --git-dir=dest config receive.unpacklimit "$unpack_limit"\n' span_id: 87 ) (Token id:Id.Lit_Chars val:'\t' span_id:88) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'setting receive.maxInputSize to 512 rejects push' span_id: 96 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:100) (Token id: Id.Lit_Chars val: '\t\tgit --git-dir=dest config receive.maxInputSize 512 &&\n' span_id: 101 ) (Token id:Id.Lit_Chars val:'\t\ttest_must_fail git push dest HEAD\n' span_id:102) (Token id:Id.Lit_Chars val:'\t' span_id:103) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'bumping limit to 4k allows push' span_id:111))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:115) (Token id: Id.Lit_Chars val: '\t\tgit --git-dir=dest config receive.maxInputSize 4k &&\n' span_id: 116 ) (Token id:Id.Lit_Chars val:'\t\tgit push dest HEAD\n' span_id:117) (Token id:Id.Lit_Chars val:'\t' span_id:118) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'prepare destination repository (again)' span_id:126))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:130) (Token id:Id.Lit_Chars val:'\t\trm -fr dest &&\n' span_id:131) (Token id:Id.Lit_Chars val:'\t\tgit --bare init dest\n' span_id:132) (Token id:Id.Lit_Chars val:'\t' span_id:133) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'lifting the limit allows push' span_id:141))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:145) (Token id: Id.Lit_Chars val: '\t\tgit --git-dir=dest config receive.maxInputSize 0 &&\n' span_id: 146 ) (Token id:Id.Lit_Chars val:'\t\tgit push dest HEAD\n' span_id:147) (Token id:Id.Lit_Chars val:'\t' span_id:148) ) } ) ] ) ) (C {(test_expect_success)} {(DQ ('create known-size (1024 bytes) commit'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:161) (Token id:Id.Lit_Chars val:'\ttest-genrandom foo 1024 >one-k &&\n' span_id:162) (Token id:Id.Lit_Chars val:'\tgit add one-k &&\n' span_id:163) (Token id:Id.Lit_Chars val:'\ttest_commit one-k\n' span_id:164) ) } ) (C {(test_pack_input_limit)} {(index)}) (C {(test_pack_input_limit)} {(unpack)}) (C {(test_done)}) ] )