(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-am mbox with dos line ending.\n' span_id:15) 
                (Token id:Id.Lit_Chars val:'\n' span_id:16)
              )
            }
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:30) fd:-1 arg_word:{(file1)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:33)
          fd: -1
          here_begin: 
            {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:34)) (OF)}
          here_end_span_id: 38
          stdin_parts: [('line 1\n')]
        )
      ]
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:42) fd:-1 arg_word:{(file1a)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:45)
          fd: -1
          here_begin: 
            {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:46)) (OF)}
          here_end_span_id: 51
          stdin_parts: [('line 1\n') ('line 4\n')]
        )
      ]
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:55) fd:-1 arg_word:{(file2)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:58)
          fd: -1
          here_begin: 
            {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:59)) (OF)}
          here_end_span_id: 64
          stdin_parts: [('line 1\n') ('line 2\n')]
        )
      ]
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:68) fd:-1 arg_word:{(file3)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:71)
          fd: -1
          here_begin: 
            {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:72)) (OF)}
          here_end_span_id: 78
          stdin_parts: [('line 1\n') ('line 2\n') ('line 3\n')]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup repository with dos files' span_id:83))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:87) 
          (Token id:Id.Lit_Chars val:'\tappend_cr <file1 >file &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\tgit add file &&\n' span_id:89) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m Initial &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\tgit tag initial &&\n' span_id:91) 
          (Token id:Id.Lit_Chars val:'\tappend_cr <file2 >file &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\tgit commit -a -m Second &&\n' span_id:93) 
          (Token id:Id.Lit_Chars val:'\tappend_cr <file3 >file &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\tgit commit -a -m Third\n' span_id:95)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'am with dos files without --keep-cr' span_id:102))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:106) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b dosfiles initial &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tgit format-patch -k initial..master &&\n' span_id:108) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git am -k -3 000*.patch &&\n'
            span_id: 109
          ) (Token id:Id.Lit_Chars val:'\tgit am --abort &&\n' span_id:110) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git/rebase-apply 000*.patch\n' span_id:111)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'am with dos files with --keep-cr' span_id:118))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:122) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit checkout -b dosfiles-keep-cr initial &&\n'
            span_id: 123
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit format-patch -k --stdout initial..master | git am --keep-cr -k -3 &&\n'
            span_id: 124
          ) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code master\n' span_id:125)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'am with dos files config am.keepcr' span_id:132))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:136) 
          (Token id:Id.Lit_Chars val:'\tgit config am.keepcr 1 &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\tgit checkout -b dosfiles-conf-keepcr initial &&\n' span_id:138) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit format-patch -k --stdout initial..master | git am -k -3 &&\n'
            span_id: 139
          ) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code master\n' span_id:140)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'am with dos files config am.keepcr overridden by --no-keep-cr'
            span_id: 147
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:151) 
          (Token id:Id.Lit_Chars val:'\tgit config am.keepcr 1 &&\n' span_id:152) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit checkout -b dosfiles-conf-keepcr-override initial &&\n'
            span_id: 153
          ) (Token id:Id.Lit_Chars val:'\tgit format-patch -k initial..master &&\n' span_id:154) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git am -k -3 --no-keep-cr 000*.patch &&\n'
            span_id: 155
          ) (Token id:Id.Lit_Chars val:'\tgit am --abort &&\n' span_id:156) 
          (Token id:Id.Lit_Chars val:'\trm -rf .git/rebase-apply 000*.patch\n' span_id:157)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'am with dos files with --keep-cr continue' span_id:164))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:168) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit checkout -b dosfiles-keep-cr-continue initial &&\n'
            span_id: 169
          ) (Token id:Id.Lit_Chars val:'\tgit format-patch -k initial..master &&\n' span_id:170) 
          (Token id:Id.Lit_Chars val:'\tappend_cr <file1a >file &&\n' span_id:171) (Token id:Id.Lit_Chars val:'\tgit commit -m "different patch" file &&\n' span_id:172) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git am --keep-cr -k -3 000*.patch &&\n'
            span_id: 173
          ) (Token id:Id.Lit_Chars val:'\tappend_cr <file2 >file &&\n' span_id:174) 
          (Token id:Id.Lit_Chars val:'\tgit add file &&\n' span_id:175) (Token id:Id.Lit_Chars val:'\tgit am -3 --resolved &&\n' span_id:176) 
          (Token id:Id.Lit_Chars val:'\tgit diff --exit-code master\n' span_id:177)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'am with unix files config am.keepcr overridden by --no-keep-cr'
            span_id: 184
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:188) 
          (Token id:Id.Lit_Chars val:'\tgit config am.keepcr 1 &&\n' span_id:189) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit checkout -b unixfiles-conf-keepcr-override initial &&\n'
            span_id: 190
          ) (Token id:Id.Lit_Chars val:'\tcp -f file1 file &&\n' span_id:191) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit commit -m "line ending to unix" file &&\n'
            span_id: 192
          ) (Token id:Id.Lit_Chars val:'\tgit format-patch -k initial..master &&\n' span_id:193) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit am -k -3 --no-keep-cr 000*.patch &&\n'
            span_id: 194
          ) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code -w master\n' span_id:195)
        )
      }
    )
    (C {(test_done)})
  ]
)