(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git apply handling copy/rename patch.\n"> <"\n">)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(test-patch)} spids:[30])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {("diff --git a/foo b/bar\n") ("similarity index 47%\n") ("rename from foo\n") 
              ("rename to bar\n") ("--- a/foo\n") ("+++ b/bar\n") ("@@ -1 +1 @@\n") ("-This is foo\n") ("+This is bar\n")
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [33]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(SQ <"This is foo">)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(foo)} spids:[44])]
    )
    (C {(chmod)} {(Lit_Other "+") (x)} {(foo)})
    (C {(test_expect_success)} {(setup)} {(SQ <"git update-index --add foo">)})
    (C {(test_expect_success)} {(apply)} {(SQ <"git apply --index --stat --summary --apply test-patch">)})
    (C {(test_expect_success)} {(FILEMODE)} {(validate)} 
      {(SQ <"test -f bar && ls -l bar | grep \"^-..x......\"">)}
    )
    (C {(test_expect_success)} {(SQ <"apply reverse">)} 
      {
        (SQ <"git apply -R --index --stat --summary --apply test-patch &&\n"> 
          <"     test \"$(cat foo)\" = \"This is foo\"">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(test-patch)} spids:[106])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {("diff --git a/foo b/bar\n") ("similarity index 47%\n") ("copy from foo\n") 
              ("copy to bar\n") ("--- a/foo\n") ("+++ b/bar\n") ("@@ -1 +1 @@\n") ("-This is foo\n") ("+This is bar\n")
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [109]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <"apply copy">)} 
      {
        (SQ <"git apply --index --stat --summary --apply test-patch &&\n"> 
          <"     test \"$(cat bar)\" = \"This is bar\" && test \"$(cat foo)\" = \"This is foo\"">
        )
      }
    )
    (C {(test_done)})
  ]
)