(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'ls-tree with(out) globs'>)} spids: [4] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (C {<test_expect_success>} {(SQ <setup>)} { (SQ <'\n'> <'\tmkdir a aa "a[a]" &&\n'> <'\ttouch a/one aa/two "a[a]/three" &&\n'> <'\tgit add a/one aa/two "a[a]/three" &&\n'> <'\tgit commit -m test\n'> ) } ) (C {<test_expect_success>} {(SQ <'ls-tree a[a] matches literally'>)} { (SQ <'\n'> <'\tcat >expect <<-EOF &&\n'> <'\t100644 blob $EMPTY_BLOB\ta[a]/three\n'> <'\tEOF\n'> <'\tgit ls-tree -r HEAD "a[a]" >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {<test_expect_success>} {(SQ <'ls-tree outside prefix'>)} { (SQ <'\n'> <'\tcat >expect <<-EOF &&\n'> <'\t100644 blob $EMPTY_BLOB\t../a[a]/three\n'> <'\tEOF\n'> <'\t( cd aa && git ls-tree -r HEAD "../a[a]"; ) >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {<test_expect_failure>} {(SQ <'ls-tree does not yet support negated pathspec'>)} { (SQ <'\n'> <'\tgit ls-files ":(exclude)a" "a*" >expect &&\n'> <'\tgit ls-tree --name-only -r HEAD ":(exclude)a" "a*" >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {<test_done>}) ] )