(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'diff -r -t shows directory additions and deletions'>)}
          spids: [4]
        )
      ]
    )
    (C {<.>} {<./test-lib.sh>})
    (C {<test_expect_success>} {<setup>} 
      {
        (SQ <'\n'> <'\tmkdir dc dr dt &&\n'> <'\t>dc/1 &&\n'> <'\t>dr/2 &&\n'> <'\t>dt/3 &&\n'> 
          <'\t>fc &&\n'> <'\t>fr &&\n'> <'\t>ft &&\n'> <'\tgit add . &&\n'> <'\ttest_tick &&\n'> <'\tgit commit -m initial &&\n'> 
          <'\n'> <'\trm -fr dt dr ft fr &&\n'> <'\tmkdir da ft &&\n'> <'\tfor p in dc/1 da/4 dt ft/5 fc\n'> <'\tdo\n'> 
          <'\t\techo hello >$p || exit\n'> <'\tdone &&\n'> <'\tgit add -u &&\n'> <'\tgit add . &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit -m second\n'>
        )
      }
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<expect>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>}
          here_end_span_id: 68
          stdin_parts: [
            <'A\tda\n'>
            <'A\tda/4\n'>
            <'M\tdc\n'>
            <'M\tdc/1\n'>
            <'D\tdr\n'>
            <'D\tdr/2\n'>
            <'A\tdt\n'>
            <'D\tdt\n'>
            <'D\tdt/3\n'>
            <'M\tfc\n'>
            <'D\tfr\n'>
            <'D\tft\n'>
            <'A\tft\n'>
            <'A\tft/5\n'>
          ]
        )
      ]
    )
    (C {<test_expect_success>} {<verify>} 
      {
        (SQ <'\n'> <'\tgit diff-tree -r -t --name-status HEAD^ HEAD >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)