(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'grep icase on non-English locales'>)}
          spids: [4]
        )
      ]
    )
    (C {<.>} {<'./lib-gettext.sh'>})
    (C {<test_expect_success>} {<GETTEXT_LOCALE>} {(SQ <setup>)} 
      {
        (SQ <'\n'> <'\ttest_write_lines "TILRAUN: Halló Heimur!" >file &&\n'> <'\tgit add file &&\n'> 
          <'\tLC_ALL="$is_IS_locale" &&\n'> <'\texport LC_ALL\n'>
        )
      }
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {<test_have_prereq>} {<GETTEXT_LOCALE>})
        (C {<test-regex>} {(DQ <'HALLÓ'>)} {(DQ <'Halló'>)} {<ICASE>})
        (C {<test_set_prereq>} {<REGEX_LOCALE>})
      ]
    )
    (C {<test_expect_success>} {<REGEX_LOCALE>} {(SQ <'grep literal string, no -F'>)} 
      {
        (SQ <'\n'> <'\tgit grep -i "TILRAUN: Halló Heimur!" &&\n'> 
          <'\tgit grep -i "TILRAUN: HALLÓ HEIMUR!"\n'>
        )
      }
    )
    (C {<test_expect_success>} {<GETTEXT_LOCALE> <Id.Lit_Comma ','> <LIBPCRE>} 
      {(SQ <'grep pcre utf-8 icase'>)} 
      {
        (SQ <'\n'> <'\tgit grep --perl-regexp    "TILRAUN: H.lló Heimur!" &&\n'> 
          <'\tgit grep --perl-regexp -i "TILRAUN: H.lló Heimur!" &&\n'> <'\tgit grep --perl-regexp -i "TILRAUN: H.LLÓ HEIMUR!"\n'>
        )
      }
    )
    (C {<test_expect_success>} {<GETTEXT_LOCALE> <Id.Lit_Comma ','> <LIBPCRE>} 
      {(SQ <'grep pcre utf-8 string with "+"'>)} 
      {
        (SQ <'\n'> <'\ttest_write_lines "TILRAUN: Hallóó Heimur!" >file2 &&\n'> 
          <'\tgit add file2 &&\n'> <'\tgit grep -l --perl-regexp "TILRAUN: H.lló+ Heimur!" >actual &&\n'> <'\techo file >expected &&\n'> 
          <'\techo file2 >>expected &&\n'> <'\ttest_cmp expected actual\n'>
        )
      }
    )
    (C {<test_expect_success>} {<REGEX_LOCALE>} {(SQ <'grep literal string, with -F'>)} 
      {
        (SQ <'\n'> <'\tgit grep --debug -i -F "TILRAUN: Halló Heimur!"  2>&1 >/dev/null |\n'> 
          <'\t\t grep fixed >debug1 &&\n'> <'\ttest_write_lines "fixed TILRAUN: Halló Heimur!" >expect1 &&\n'> 
          <'\ttest_cmp expect1 debug1 &&\n'> <'\n'> <'\tgit grep --debug -i -F "TILRAUN: HALLÓ HEIMUR!"  2>&1 >/dev/null |\n'> 
          <'\t\t grep fixed >debug2 &&\n'> <'\ttest_write_lines "fixed TILRAUN: HALLÓ HEIMUR!" >expect2 &&\n'> <'\ttest_cmp expect2 debug2\n'>
        )
      }
    )
    (C {<test_expect_success>} {<REGEX_LOCALE>} {(SQ <'grep string with regex, with -F'>)} 
      {
        (SQ <'\n'> <'\ttest_write_lines "^*TILR^AUN:.* \\\\Halló \\$He[]imur!\\$" >file &&\n'> <'\n'> 
          <
'\tgit grep --debug -i -F "^*TILR^AUN:.* \\\\Halló \\$He[]imur!\\$" 2>&1 >/dev/null |\n'
          > <'\t\t grep fixed >debug1 &&\n'> 
          <
'\ttest_write_lines "fixed \\\\^*TILR^AUN:\\\\.\\\\* \\\\\\\\Halló \\$He\\\\[]imur!\\\\\\$" >expect1 &&\n'
          > <'\ttest_cmp expect1 debug1 &&\n'> <'\n'> 
          <
'\tgit grep --debug -i -F "^*TILR^AUN:.* \\\\HALLÓ \\$HE[]IMUR!\\$"  2>&1 >/dev/null |\n'
          > <'\t\t grep fixed >debug2 &&\n'> 
          <
'\ttest_write_lines "fixed \\\\^*TILR^AUN:\\\\.\\\\* \\\\\\\\HALLÓ \\$HE\\\\[]IMUR!\\\\\\$" >expect2 &&\n'
          > <'\ttest_cmp expect2 debug2\n'>
        )
      }
    )
    (C {<test_expect_success>} {<REGEX_LOCALE>} {(SQ <'pickaxe -i on non-ascii'>)} 
      {
        (SQ <'\n'> <'\tgit commit -m first &&\n'> 
          <'\tgit log --format=%f -i -S"TILRAUN: HALLÓ HEIMUR!" >actual &&\n'> <'\techo first >expected &&\n'> <'\ttest_cmp expected actual\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)