(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          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]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:new_line) op:Equal rhs:{(SQ <"\n">)} spids:[17])]
      spids: [17]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sq)
          op: Equal
          rhs: {(EscapedLiteralPart token:<Lit_EscapedChar "\\'">)}
          spids: [22]
        )
      ]
      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)})
  ]
)