(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"diff -r -t shows directory additions and deletions">)}
          spids: [4]
        )
      ]
      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">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect)} spids:[47])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {("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")
            }
          do_expansion: False
          here_end: EOF
          was_filled: True
          spids: [50]
        )
      ]
    )
    (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)})
  ]
)