(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 ls-files test (-- to terminate the path list).\n'
                  span_id: 15
                ) (Token id:Id.Lit_Chars val:'\n' span_id:16) 
                (Token
                  id: Id.Lit_Chars
                  val: 'This test runs git ls-files --others with the following on the\n'
                  span_id: 17
                ) (Token id:Id.Lit_Chars val:'filesystem.\n' span_id:18) (Token id:Id.Lit_Chars val:'\n' span_id:19) 
                (Token id:Id.Lit_Chars val:'    path0       - a file\n' span_id:20) (Token id:Id.Lit_Chars val:'    -foo\t- a file with a funny name.\n' span_id:21) 
                (Token
                  id: Id.Lit_Chars
                  val: '    --\t\t- another file with a funny name.\n'
                  span_id: 22
                )
              )
            }
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'echo frotz >path0 &&\n' span_id:39) 
          (Token id:Id.Lit_Chars val:'\techo frotz >./-foo &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\techo frotz >./--' span_id:41)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git ls-files without path restriction.' span_id:50))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'git ls-files --others >output &&\n' span_id:56) 
          (Token id:Id.Lit_Chars val:'     test_cmp output - <<EOF\n' span_id:57) (Token id:Id.Lit_Chars val:'--\n' span_id:58) (Token id:Id.Lit_Chars val:'-foo\n' span_id:59) 
          (Token id:Id.Lit_Chars val:'output\n' span_id:60) (Token id:Id.Lit_Chars val:'path0\n' span_id:61) (Token id:Id.Lit_Chars val:'EOF\n' span_id:62)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git ls-files with path restriction.' span_id:71))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'git ls-files --others path0 >output &&\n' span_id:77) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp output - <<EOF\n' span_id:78) (Token id:Id.Lit_Chars val:'path0\n' span_id:79) (Token id:Id.Lit_Chars val:'EOF\n' span_id:80)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git ls-files with path restriction with --.' span_id:89))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'git ls-files --others -- path0 >output &&\n' span_id:95) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp output - <<EOF\n' span_id:96) (Token id:Id.Lit_Chars val:'path0\n' span_id:97) (Token id:Id.Lit_Chars val:'EOF\n' span_id:98)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git ls-files with path restriction with -- --.' span_id:107))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'git ls-files --others -- -- >output &&\n' span_id:113) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp output - <<EOF\n' span_id:114) (Token id:Id.Lit_Chars val:'--\n' span_id:115) (Token id:Id.Lit_Chars val:'EOF\n' span_id:116)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git ls-files with no path restriction.' span_id:125))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'git ls-files --others -- >output &&\n' span_id:131) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp output - <<EOF\n' span_id:132) (Token id:Id.Lit_Chars val:'--\n' span_id:133) (Token id:Id.Lit_Chars val:'-foo\n' span_id:134) 
          (Token id:Id.Lit_Chars val:'output\n' span_id:135) (Token id:Id.Lit_Chars val:'path0\n' span_id:136) (Token id:Id.Lit_Chars val:'EOF\n' span_id:137)
        )
      }
    )
    (C {(test_done)})
  ]
)