(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:'Move a binary file' span_id:15))}
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'prepare repository' span_id:28))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:32) 
          (Token id:Id.Lit_Chars val:'\tgit init &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\techo foo > foo &&\n' span_id:34) 
          (Token id:Id.Lit_Chars val:'\techo "barQ" | q_to_nul > bar &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:36) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "Initial commit"\n' span_id:37)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'move the files into a "sub" directory' span_id:44))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:48) 
          (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:49) (Token id:Id.Lit_Chars val:'\tgit mv bar foo sub/ &&\n' span_id:50) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "Moved to sub/"\n' span_id:51)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:57)
          fd: -1
          arg_word: {(expected)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:61)
          fd: -1
          here_begin: 
            {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:62)) (OF)}
          here_end_span_id: 76
          stdin_parts: [
            ('-\t-\tbar => sub/bar\n')
            ('0\t0\tfoo => sub/foo\n')
            ('\n')
            ('diff --git a/bar b/sub/bar\n')
            ('similarity index 100%\n')
            ('rename from bar\n')
            ('rename to sub/bar\n')
            ('diff --git a/foo b/sub/foo\n')
            ('similarity index 100%\n')
            ('rename from foo\n')
            ('rename to sub/foo\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git show -C -C report renames' span_id:81))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:85) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit show -C -C --raw --binary --numstat >patch-with-stat &&\n'
            span_id: 86
          ) (Token id:Id.Lit_Chars val:'\ttail -n 11 patch-with-stat >current &&\n' span_id:87) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected current\n' span_id:88)
        )
      }
    )
    (C {(test_done)})
  ]
)