(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'test case insensitive pathspec limiting'>)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(CASE_INSENSITIVE_FS)})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip_all)
                  op: Equal
                  rhs: {(SQ <'skipping case sensitive tests - case insensitive file system'>)}
                  spids: [23]
                )
              ]
              spids: [23]
            )
            (C {(test_done)})
          ]
          spids: [16777215 20]
        )
      ]
      spids: [16777215 31]
    )
    (C {(test_expect_success)} {(SQ <'create commits with glob characters'>)} 
      {
        (SQ <'\n'> <'\ttest_commit bar bar &&\n'> <'\ttest_commit bAr bAr &&\n'> 
          <'\ttest_commit BAR BAR &&\n'> <'\tmkdir foo &&\n'> <'\ttest_commit foo/bar foo/bar &&\n'> <'\ttest_commit foo/bAr foo/bAr &&\n'> 
          <'\ttest_commit foo/BAR foo/BAR &&\n'> <'\tmkdir fOo &&\n'> <'\ttest_commit fOo/bar fOo/bar &&\n'> <'\ttest_commit fOo/bAr fOo/bAr &&\n'> 
          <'\ttest_commit fOo/BAR fOo/BAR &&\n'> <'\tmkdir FOO &&\n'> <'\ttest_commit FOO/bar FOO/bar &&\n'> <'\ttest_commit FOO/bAr FOO/bAr &&\n'> 
          <'\ttest_commit FOO/BAR FOO/BAR\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'tree_entry_interesting matches bar'>)} 
      {
        (SQ <'\n'> <'\techo bar >expect &&\n'> <'\tgit log --format=%s -- "bar" >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'tree_entry_interesting matches :(icase)bar'>)} 
      {
        (SQ <'\n'> <'\tcat <<-EOF >expect &&\n'> <'\tBAR\n'> <'\tbAr\n'> <'\tbar\n'> <'\tEOF\n'> 
          <'\tgit log --format=%s -- ":(icase)bar" >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'tree_entry_interesting matches :(icase)bar with prefix'>)} 
      {
        (SQ <'\n'> <'\tcat <<-EOF >expect &&\n'> <'\tfOo/BAR\n'> <'\tfOo/bAr\n'> <'\tfOo/bar\n'> 
          <'\tEOF\n'> <'\t( cd fOo && git log --format=%s -- ":(icase)bar" ) >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'tree_entry_interesting matches :(icase)bar with empty prefix'>)} 
      {
        (SQ <'\n'> <'\tcat <<-EOF >expect &&\n'> <'\tFOO/BAR\n'> <'\tFOO/bAr\n'> <'\tFOO/bar\n'> 
          <'\tfOo/BAR\n'> <'\tfOo/bAr\n'> <'\tfOo/bar\n'> <'\tfoo/BAR\n'> <'\tfoo/bAr\n'> <'\tfoo/bar\n'> <'\tEOF\n'> 
          <'\t( cd fOo && git log --format=%s -- ":(icase)../foo/bar" ) >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'match_pathspec matches :(icase)bar'>)} 
      {
        (SQ <'\n'> <'\tcat <<-EOF >expect &&\n'> <'\tBAR\n'> <'\tbAr\n'> <'\tbar\n'> <'\tEOF\n'> 
          <'\tgit ls-files ":(icase)bar" >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'match_pathspec matches :(icase)bar with prefix'>)} 
      {
        (SQ <'\n'> <'\tcat <<-EOF >expect &&\n'> <'\tfOo/BAR\n'> <'\tfOo/bAr\n'> <'\tfOo/bar\n'> 
          <'\tEOF\n'> <'\t( cd fOo && git ls-files --full-name ":(icase)bar" ) >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'match_pathspec matches :(icase)bar with empty prefix'>)} 
      {
        (SQ <'\n'> <'\tcat <<-EOF >expect &&\n'> <'\tbar\n'> <'\tfOo/BAR\n'> <'\tfOo/bAr\n'> 
          <'\tfOo/bar\n'> <'\tEOF\n'> <'\t( cd fOo && git ls-files --full-name ":(icase)bar" ../bar ) >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'"git diff" can take magic :(icase) pathspec'>)} 
      {
        (SQ <'\n'> <'\techo FOO/BAR >expect &&\n'> 
          <'\tgit diff --name-only HEAD^ HEAD -- ":(icase)foo/bar" >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)