(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:'ls-tree with(out) globs' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\tmkdir a aa "a[a]" &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\ttouch a/one aa/two "a[a]/three" &&\n' span_id:24) 
          (Token id:Id.Lit_Chars val:'\tgit add a/one aa/two "a[a]/three" &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\tgit commit -m test\n' span_id:26)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'ls-tree a[a] matches literally' span_id:33))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-EOF &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\t100644 blob $EMPTY_BLOB\ta[a]/three\n' span_id:39) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:40) (Token id:Id.Lit_Chars val:'\tgit ls-tree -r HEAD "a[a]" >actual &&\n' span_id:41) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:42)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ls-tree outside prefix' span_id:49))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:53) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-EOF &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\t100644 blob $EMPTY_BLOB\t../a[a]/three\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:56) (Token id:Id.Lit_Chars val:'\t( cd aa && git ls-tree -r HEAD "../a[a]"; ) >actual &&\n' span_id:57) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:58)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'ls-tree does not yet support negated pathspec' span_id:65))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:69) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit ls-files ":(exclude)a" "a*" >expect &&\n'
            span_id: 70
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit ls-tree --name-only -r HEAD ":(exclude)a" "a*" >actual &&\n'
            span_id: 71
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:72)
        )
      }
    )
    (C {(test_done)})
  ]
)