(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:'test case insensitive pathspec limiting' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(CASE_INSENSITIVE_FS)})]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:skip_all)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (SQ 
                        (Token
                          id: Id.Lit_Chars
                          val: 'skipping case sensitive tests - case insensitive file system'
                          span_id: 25
                        )
                      )
                    }
                  spids: [23]
                )
              ]
            )
            (C {(test_done)})
          ]
          spids: [14 20]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'create commits with glob characters' span_id:37))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:41) 
          (Token id:Id.Lit_Chars val:'\ttest_commit bar bar &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\ttest_commit bAr bAr &&\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\ttest_commit BAR BAR &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\tmkdir foo &&\n' span_id:45) 
          (Token id:Id.Lit_Chars val:'\ttest_commit foo/bar foo/bar &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\ttest_commit foo/bAr foo/bAr &&\n' span_id:47) 
          (Token id:Id.Lit_Chars val:'\ttest_commit foo/BAR foo/BAR &&\n' span_id:48) (Token id:Id.Lit_Chars val:'\tmkdir fOo &&\n' span_id:49) 
          (Token id:Id.Lit_Chars val:'\ttest_commit fOo/bar fOo/bar &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\ttest_commit fOo/bAr fOo/bAr &&\n' span_id:51) 
          (Token id:Id.Lit_Chars val:'\ttest_commit fOo/BAR fOo/BAR &&\n' span_id:52) (Token id:Id.Lit_Chars val:'\tmkdir FOO &&\n' span_id:53) 
          (Token id:Id.Lit_Chars val:'\ttest_commit FOO/bar FOO/bar &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\ttest_commit FOO/bAr FOO/bAr &&\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\ttest_commit FOO/BAR FOO/BAR\n' span_id:56)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'tree_entry_interesting matches bar' span_id:63))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:67) 
          (Token id:Id.Lit_Chars val:'\techo bar >expect &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\tgit log --format=%s -- "bar" >actual &&\n' span_id:69) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:70)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'tree_entry_interesting matches :(icase)bar' span_id:77))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:81) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\tBAR\n' span_id:83) (Token id:Id.Lit_Chars val:'\tbAr\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\tbar\n' span_id:85) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:86) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log --format=%s -- ":(icase)bar" >actual &&\n'
            span_id: 87
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:88)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'tree_entry_interesting matches :(icase)bar with prefix'
            span_id: 95
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:99) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:100) (Token id:Id.Lit_Chars val:'\tfOo/BAR\n' span_id:101) 
          (Token id:Id.Lit_Chars val:'\tfOo/bAr\n' span_id:102) (Token id:Id.Lit_Chars val:'\tfOo/bar\n' span_id:103) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:104) 
          (Token
            id: Id.Lit_Chars
            val: '\t( cd fOo && git log --format=%s -- ":(icase)bar" ) >actual &&\n'
            span_id: 105
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:106)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'tree_entry_interesting matches :(icase)bar with empty prefix'
            span_id: 113
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:117) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:118) (Token id:Id.Lit_Chars val:'\tFOO/BAR\n' span_id:119) 
          (Token id:Id.Lit_Chars val:'\tFOO/bAr\n' span_id:120) (Token id:Id.Lit_Chars val:'\tFOO/bar\n' span_id:121) 
          (Token id:Id.Lit_Chars val:'\tfOo/BAR\n' span_id:122) (Token id:Id.Lit_Chars val:'\tfOo/bAr\n' span_id:123) 
          (Token id:Id.Lit_Chars val:'\tfOo/bar\n' span_id:124) (Token id:Id.Lit_Chars val:'\tfoo/BAR\n' span_id:125) 
          (Token id:Id.Lit_Chars val:'\tfoo/bAr\n' span_id:126) (Token id:Id.Lit_Chars val:'\tfoo/bar\n' span_id:127) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:128) 
          (Token
            id: Id.Lit_Chars
            val: '\t( cd fOo && git log --format=%s -- ":(icase)../foo/bar" ) >actual &&\n'
            span_id: 129
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:130)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'match_pathspec matches :(icase)bar' span_id:137))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:141) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:142) (Token id:Id.Lit_Chars val:'\tBAR\n' span_id:143) (Token id:Id.Lit_Chars val:'\tbAr\n' span_id:144) 
          (Token id:Id.Lit_Chars val:'\tbar\n' span_id:145) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:146) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit ls-files ":(icase)bar" >actual &&\n'
            span_id: 147
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:148)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'match_pathspec matches :(icase)bar with prefix' span_id:155))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:159) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:160) (Token id:Id.Lit_Chars val:'\tfOo/BAR\n' span_id:161) 
          (Token id:Id.Lit_Chars val:'\tfOo/bAr\n' span_id:162) (Token id:Id.Lit_Chars val:'\tfOo/bar\n' span_id:163) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:164) 
          (Token
            id: Id.Lit_Chars
            val: '\t( cd fOo && git ls-files --full-name ":(icase)bar" ) >actual &&\n'
            span_id: 165
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:166)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'match_pathspec matches :(icase)bar with empty prefix'
            span_id: 173
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:177) 
          (Token id:Id.Lit_Chars val:'\tcat <<-EOF >expect &&\n' span_id:178) (Token id:Id.Lit_Chars val:'\tbar\n' span_id:179) 
          (Token id:Id.Lit_Chars val:'\tfOo/BAR\n' span_id:180) (Token id:Id.Lit_Chars val:'\tfOo/bAr\n' span_id:181) 
          (Token id:Id.Lit_Chars val:'\tfOo/bar\n' span_id:182) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:183) 
          (Token
            id: Id.Lit_Chars
            val: '\t( cd fOo && git ls-files --full-name ":(icase)bar" ../bar ) >actual &&\n'
            span_id: 184
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:185)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'"git diff" can take magic :(icase) pathspec' span_id:192))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:196) 
          (Token id:Id.Lit_Chars val:'\techo FOO/BAR >expect &&\n' span_id:197) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit diff --name-only HEAD^ HEAD -- ":(icase)foo/bar" >actual &&\n'
            span_id: 198
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:199)
        )
      }
    )
    (C {(test_done)})
  ]
)