(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)})
  ]
)