(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 read-tree --prefix test.\n' span_id:15))}
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:29) 
          (Token id:Id.Lit_Chars val:'\techo hello >one &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\tgit update-index --add one &&\n' span_id:31) 
          (Token id:Id.Lit_Chars val:'\ttree=$(git write-tree) &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\techo tree is $tree\n' span_id:33)
        )
      }
    )
    (command.Simple
      words: [
        {(echo)}
        {
          (SQ (Token id:Id.Lit_Chars val:'one\n' span_id:40) 
            (Token id:Id.Lit_Chars val:two/one span_id:41)
          )
        }
      ]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:44) fd:-1 arg_word:{(expect)})
      ]
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'read-tree --prefix' span_id:51))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\tgit read-tree --prefix=two/ $tree &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\tgit ls-files >actual &&\n' span_id:57) 
          (Token id:Id.Lit_Chars val:'\tcmp expect actual\n' span_id:58)
        )
      }
    )
    (C {(test_done)})
  ]
)