(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: { (SQ <'ls-files tests with relative paths\n'> <'\n'> <'This test runs git ls-files with various relative path arguments.\n'> ) } spids: [4] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:new_line) op: assign_op.Equal rhs: {(SQ <'\n'>)} spids: [17] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sq) op: assign_op.Equal rhs: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>)} spids: [22] ) ] ) (C {<test_expect_success>} {(SQ <prepare>)} { (SQ <'\n'> <'\t: >never-mind-me &&\n'> <'\tgit add never-mind-me &&\n'> <'\tmkdir top &&\n'> <'\t(\n'> <'\t\tcd top &&\n'> <'\t\tmkdir sub &&\n'> <'\t\tx="x xa xbc xdef xghij xklmno" &&\n'> <'\t\ty=$(echo "$x" | tr x y) &&\n'> <'\t\ttouch $x &&\n'> <'\t\ttouch $y &&\n'> <'\t\tcd sub &&\n'> <'\t\tgit add ../x*\n'> <'\t)\n'> ) } ) (C {<test_expect_success>} {(SQ <'ls-files with mixed levels'>)} { (SQ <'\n'> <'\t(\n'> <'\t\tcd top/sub &&\n'> <'\t\tcat >expect <<-EOF &&\n'> <'\t\t../../never-mind-me\n'> <'\t\t../x\n'> <'\t\tEOF\n'> <'\t\tgit ls-files $(cat expect) >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t)\n'> ) } ) (C {<test_expect_success>} {(SQ <'ls-files -c'>)} { (SQ <'\n'> <'\t(\n'> <'\t\tcd top/sub &&\n'> <'\t\tfor f in ../y*\n'> <'\t\tdo\n'> <'\t\t\techo "error: pathspec $sq$f$sq did not match any file(s) known to git."\n'> <'\t\tdone >expect.err &&\n'> <'\t\techo "Did you forget to ${sq}git add${sq}?" >>expect.err &&\n'> <'\t\tls ../x* >expect.out &&\n'> <'\t\ttest_must_fail git ls-files -c --error-unmatch ../[xy]* >actual.out 2>actual.err &&\n'> <'\t\ttest_cmp expect.out actual.out &&\n'> <'\t\ttest_cmp expect.err actual.err\n'> <'\t)\n'> ) } ) (C {<test_expect_success>} {(SQ <'ls-files -o'>)} { (SQ <'\n'> <'\t(\n'> <'\t\tcd top/sub &&\n'> <'\t\tfor f in ../x*\n'> <'\t\tdo\n'> <'\t\t\techo "error: pathspec $sq$f$sq did not match any file(s) known to git."\n'> <'\t\tdone >expect.err &&\n'> <'\t\techo "Did you forget to ${sq}git add${sq}?" >>expect.err &&\n'> <'\t\tls ../y* >expect.out &&\n'> <'\t\ttest_must_fail git ls-files -o --error-unmatch ../[xy]* >actual.out 2>actual.err &&\n'> <'\t\ttest_cmp expect.out actual.out &&\n'> <'\t\ttest_cmp expect.err actual.err\n'> <'\t)\n'> ) } ) (C {<test_done>}) ] )