(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 reset should cull empty subdirs' span_id:15))}
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'creating initial files' span_id:28))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'mkdir path0 &&\n' span_id:34) 
          (Token
            id: Id.Lit_Chars
            val: '     cp "$TEST_DIRECTORY"/../COPYING path0/COPYING &&\n'
            span_id: 35
          ) (Token id:Id.Lit_Chars val:'     git add path0/COPYING &&\n' span_id:36) 
          (Token id:Id.Lit_Chars val:'     git commit -m add -a' span_id:37)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'creating second files' span_id:46))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'mkdir path1 &&\n' span_id:52) 
          (Token id:Id.Lit_Chars val:'     mkdir path1/path2 &&\n' span_id:53) 
          (Token
            id: Id.Lit_Chars
            val: '     cp "$TEST_DIRECTORY"/../COPYING path1/path2/COPYING &&\n'
            span_id: 54
          ) (Token id:Id.Lit_Chars val:'     cp "$TEST_DIRECTORY"/../COPYING path1/COPYING &&\n' span_id:55) 
          (Token
            id: Id.Lit_Chars
            val: '     cp "$TEST_DIRECTORY"/../COPYING COPYING &&\n'
            span_id: 56
          ) (Token id:Id.Lit_Chars val:'     cp "$TEST_DIRECTORY"/../COPYING path0/COPYING-TOO &&\n' span_id:57) 
          (Token id:Id.Lit_Chars val:'     git add path1/path2/COPYING &&\n' span_id:58) (Token id:Id.Lit_Chars val:'     git add path1/COPYING &&\n' span_id:59) 
          (Token id:Id.Lit_Chars val:'     git add COPYING &&\n' span_id:60) (Token id:Id.Lit_Chars val:'     git add path0/COPYING-TOO &&\n' span_id:61) 
          (Token id:Id.Lit_Chars val:'     git commit -m change -a' span_id:62)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'resetting tree HEAD^' span_id:71))} 
      {(SQ (Token id:Id.Lit_Chars val:'git reset --hard HEAD^' span_id:77))}
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'checking initial files exist after rewind' span_id:86))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'test -d path0 &&\n' span_id:92) 
          (Token id:Id.Lit_Chars val:'     test -f path0/COPYING' span_id:93)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'checking lack of path1/path2/COPYING' span_id:102))} {(SQ (Token id:Id.Lit_Chars val:'! test -f path1/path2/COPYING' span_id:108))}
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'checking lack of path1/COPYING' span_id:117))} {(SQ (Token id:Id.Lit_Chars val:'! test -f path1/COPYING' span_id:123))}
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checking lack of COPYING' span_id:132))} 
      {(SQ (Token id:Id.Lit_Chars val:'! test -f COPYING' span_id:138))}
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'checking checking lack of path1/COPYING-TOO' span_id:147))} {(SQ (Token id:Id.Lit_Chars val:'! test -f path0/COPYING-TOO' span_id:153))}
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'checking lack of path1/path2' span_id:162))} {(SQ (Token id:Id.Lit_Chars val:'! test -d path1/path2' span_id:168))}
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checking lack of path1' span_id:177))} 
      {(SQ (Token id:Id.Lit_Chars val:'! test -d path1' span_id:183))}
    )
    (C {(test_done)})
  ]
)