(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 auto-generated merge messages' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShFunction
      name: check_oneline
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ Id.VSub_Number '$1'))})
                    (command.Simple
                      words: [{(sed)} {(DQ ("s/Q/'/g"))}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_Great val:'>' span_id:35)
                          fd: -1
                          arg_word: {(expect)}
                        )
                      ]
                    )
                  ]
                  negated: F
                )
                (command.Simple
                  words: [
                    {(git)}
                    {(log)}
                    {(-1)}
                    {(--pretty) (Id.Lit_Equals '=') (tformat) (Id.Lit_Other ':') (Id.Lit_Other '%') (s)}
                  ]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:54)
                      fd: -1
                      arg_word: {(actual)}
                    )
                  ]
                )
                (C {(test_cmp)} {(expect)} {(actual)})
              ]
            )
          ]
        )
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge local branch' span_id:72))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:76) 
          (Token id:Id.Lit_Chars val:'\ttest_commit master-1 &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\tgit checkout -b local-branch &&\n' span_id:78) 
          (Token id:Id.Lit_Chars val:'\ttest_commit branch-1 &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:80) 
          (Token id:Id.Lit_Chars val:'\ttest_commit master-2 &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\tgit merge local-branch &&\n' span_id:82) 
          (Token
            id: Id.Lit_Chars
            val: '\tcheck_oneline "Merge branch Qlocal-branchQ"\n'
            span_id: 83
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge octopus branches' span_id:90))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:94) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b octopus-a master &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\ttest_commit octopus-1 &&\n' span_id:96) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b octopus-b master &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\ttest_commit octopus-2 &&\n' span_id:98) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\tgit merge octopus-a octopus-b &&\n' span_id:100) 
          (Token
            id: Id.Lit_Chars
            val: '\tcheck_oneline "Merge branches Qoctopus-aQ and Qoctopus-bQ"\n'
            span_id: 101
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge tag' span_id:108))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:112) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit checkout -b tag-branch master &&\n'
            span_id: 113
          ) (Token id:Id.Lit_Chars val:'\ttest_commit tag-1 &&\n' span_id:114) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\ttest_commit master-3 &&\n' span_id:116) 
          (Token id:Id.Lit_Chars val:'\tgit merge tag-1 &&\n' span_id:117) (Token id:Id.Lit_Chars val:'\tcheck_oneline "Merge tag Qtag-1Q"\n' span_id:118)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ambiguous tag' span_id:125))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:129) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b ambiguous master &&\n' span_id:130) (Token id:Id.Lit_Chars val:'\ttest_commit ambiguous &&\n' span_id:131) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:132) (Token id:Id.Lit_Chars val:'\ttest_commit master-4 &&\n' span_id:133) 
          (Token id:Id.Lit_Chars val:'\tgit merge ambiguous &&\n' span_id:134) (Token id:Id.Lit_Chars val:'\tcheck_oneline "Merge tag QambiguousQ"\n' span_id:135)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'remote-tracking branch' span_id:142))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:146) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b remote master &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\ttest_commit remote-1 &&\n' span_id:148) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/remotes/origin/master remote &&\n'
            span_id: 149
          ) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:150) 
          (Token id:Id.Lit_Chars val:'\ttest_commit master-5 &&\n' span_id:151) (Token id:Id.Lit_Chars val:'\tgit merge origin/master &&\n' span_id:152) 
          (Token
            id: Id.Lit_Chars
            val: '\tcheck_oneline "Merge remote-tracking branch Qorigin/masterQ"\n'
            span_id: 153
          )
        )
      }
    )
    (C {(test_done)})
  ]
)