(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:'git merge\n' span_id:6) (Token id:Id.Lit_Chars val:'\n' span_id:7) (Token id:Id.Lit_Chars val:'Testing the resolve strategy.' span_id:8) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:20))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:24) (Token id:Id.Lit_Chars val:'\techo c0 > c0.c &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\tgit add c0.c &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit commit -m c0 &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\tgit tag c0 &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\techo c1 > c1.c &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\tgit add c1.c &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\tgit commit -m c1 &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\tgit tag c1 &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\tgit reset --hard c0 &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\techo c2 > c2.c &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\tgit add c2.c &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\tgit commit -m c2 &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\tgit tag c2 &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\tgit reset --hard c0 &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\techo c3 > c2.c &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\tgit add c2.c &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\tgit commit -m c3 &&\n' span_id:41) (Token id:Id.Lit_Chars val:'\tgit tag c3\n' span_id:42) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:merge_c1_to_c2_cmds) op: assign_op.Equal rhs: { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:48) (Token id:Id.Lit_Chars val:'\tgit reset --hard c1 &&\n' span_id:49) (Token id:Id.Lit_Chars val:'\tgit merge -s resolve c2 &&\n' span_id:50) (Token id: Id.Lit_Chars val: '\ttest "$(git rev-parse c1)" != "$(git rev-parse HEAD)" &&\n' span_id: 51 ) (Token id: Id.Lit_Chars val: '\ttest "$(git rev-parse c1)" = "$(git rev-parse HEAD^1)" &&\n' span_id: 52 ) (Token id: Id.Lit_Chars val: '\ttest "$(git rev-parse c2)" = "$(git rev-parse HEAD^2)" &&\n' span_id: 53 ) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\ttest -f c0.c &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\ttest -f c1.c &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\ttest -f c2.c &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\ttest 3 = $(git ls-tree -r HEAD | wc -l) &&\n' span_id:58) (Token id: Id.Lit_Chars val: '\ttest 3 = $(git ls-files | wc -l)\n' span_id: 59 ) ) } spids: [46] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge c1 to c2' span_id:66))} {(DQ ($ Id.VSub_DollarName '$merge_c1_to_c2_cmds'))} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge c1 to c2, again' span_id:77))} {(DQ ($ Id.VSub_DollarName '$merge_c1_to_c2_cmds'))} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge c2 to c3 (fails)' span_id:88))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:92) (Token id:Id.Lit_Chars val:'\tgit reset --hard c2 &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge -s resolve c3\n' span_id:94) ) } ) (C {(test_done)}) ] )