(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: 'test index-pack handling of delta cycles in packfiles' span_id: 6 ) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/lib-pack.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:A) op: assign_op.Equal rhs: {(01d7713666f4de822776c7622c10f1b07de280dc)} spids: [24] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:B) op: assign_op.Equal rhs: {(e68fe8129b546b101aee9510c5328e7f21ca1d18)} spids: [27] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'index-pack works with a single delta (A->B)' span_id:37))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:41) (Token id:Id.Lit_Chars val:'\tclear_packs &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\t{\n' span_id:43) (Token id:Id.Lit_Chars val:'\t\tpack_header 2 &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\t\tpack_obj $A $B &&\n' span_id:45) (Token id:Id.Lit_Chars val:'\t\tpack_obj $B\n' span_id:46) (Token id:Id.Lit_Chars val:'\t} >ab.pack &&\n' span_id:47) (Token id:Id.Lit_Chars val:'\tpack_trailer ab.pack &&\n' span_id:48) (Token id:Id.Lit_Chars val:'\tgit index-pack --stdin <ab.pack &&\n' span_id:49) (Token id:Id.Lit_Chars val:'\tgit cat-file -t $A &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\tgit cat-file -t $B\n' span_id:51) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'index-pack works with a single delta (B->A)' span_id:58))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:62) (Token id:Id.Lit_Chars val:'\tclear_packs &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\t{\n' span_id:64) (Token id:Id.Lit_Chars val:'\t\tpack_header 2 &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\t\tpack_obj $A &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\t\tpack_obj $B $A\n' span_id:67) (Token id:Id.Lit_Chars val:'\t} >ba.pack &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\tpack_trailer ba.pack &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\tgit index-pack --stdin <ba.pack &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\tgit cat-file -t $A &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\tgit cat-file -t $B\n' span_id:72) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'index-pack detects missing base objects' span_id:79))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:83) (Token id:Id.Lit_Chars val:'\tclear_packs &&\n' span_id:84) (Token id:Id.Lit_Chars val:'\t{\n' span_id:85) (Token id:Id.Lit_Chars val:'\t\tpack_header 1 &&\n' span_id:86) (Token id:Id.Lit_Chars val:'\t\tpack_obj $A $B\n' span_id:87) (Token id:Id.Lit_Chars val:'\t} >missing.pack &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\tpack_trailer missing.pack &&\n' span_id:89) (Token id: Id.Lit_Chars val: '\ttest_must_fail git index-pack --fix-thin --stdin <missing.pack\n' span_id: 90 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'index-pack detects REF_DELTA cycles' span_id:97))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:101) (Token id:Id.Lit_Chars val:'\tclear_packs &&\n' span_id:102) (Token id:Id.Lit_Chars val:'\t{\n' span_id:103) (Token id:Id.Lit_Chars val:'\t\tpack_header 2 &&\n' span_id:104) (Token id:Id.Lit_Chars val:'\t\tpack_obj $A $B &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\t\tpack_obj $B $A\n' span_id:106) (Token id:Id.Lit_Chars val:'\t} >cycle.pack &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tpack_trailer cycle.pack &&\n' span_id:108) (Token id: Id.Lit_Chars val: '\ttest_must_fail git index-pack --fix-thin --stdin <cycle.pack\n' span_id: 109 ) ) } ) (C {(test_expect_failure)} {(SQ (Token id:Id.Lit_Chars val:'failover to an object in another pack' span_id:116))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:120) (Token id:Id.Lit_Chars val:'\tclear_packs &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\tgit index-pack --stdin <ab.pack &&\n' span_id:122) (Token id: Id.Lit_Chars val: '\tgit index-pack --stdin --fix-thin <cycle.pack\n' span_id: 123 ) ) } ) (C {(test_expect_failure)} {(SQ (Token id:Id.Lit_Chars val:'failover to a duplicate object in the same pack' span_id:130))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:134) (Token id:Id.Lit_Chars val:'\tclear_packs &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\t{\n' span_id:136) (Token id:Id.Lit_Chars val:'\t\tpack_header 3 &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\t\tpack_obj $A $B &&\n' span_id:138) (Token id:Id.Lit_Chars val:'\t\tpack_obj $B $A &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\t\tpack_obj $A\n' span_id:140) (Token id:Id.Lit_Chars val:'\t} >recoverable.pack &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\tpack_trailer recoverable.pack &&\n' span_id:142) (Token id: Id.Lit_Chars val: '\tgit index-pack --fix-thin --stdin <recoverable.pack\n' span_id: 143 ) ) } ) (C {(test_done)}) ] )