(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:'Gettext support for Git' span_id:15))}
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./lib-gettext.sh)})
    (C {(test_expect_success)} 
      {
        (DQ ('sanity: ') 
          (word_part.EscapedLiteral
            token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:28)
          ) ('GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to ') 
          ($ Id.VSub_DollarName '$GIT_INTERNAL_GETTEXT_SH_SCHEME') (')')
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:35) 
          (Token
            id: Id.Lit_Chars
            val: '    test -n "$GIT_INTERNAL_GETTEXT_SH_SCHEME"\n'
            span_id: 36
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'sanity: $TEXTDOMAIN is git' span_id:43))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:47) 
          (Token id:Id.Lit_Chars val:'    test $TEXTDOMAIN = "git"\n' span_id:48)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'xgettext sanity: Perl _() strings are not extracted'
            span_id: 55
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:59) 
          (Token
            id: Id.Lit_Chars
            val: '    ! grep "A Perl string xgettext will not get" "$GIT_PO_PATH"/is.po\n'
            span_id: 60
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'xgettext sanity: Comment extraction with --add-comments'
            span_id: 67
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:71) 
          (Token
            id: Id.Lit_Chars
            val: 
'    grep "TRANSLATORS: This is a test" "$TEST_DIRECTORY"/t0200/* | wc -l >expect &&\n'
            span_id: 72
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    grep "TRANSLATORS: This is a test" "$GIT_PO_PATH"/is.po  | wc -l >actual &&\n'
            span_id: 73
          ) (Token id:Id.Lit_Chars val:'    test_cmp expect actual\n' span_id:74)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'xgettext sanity: Comment extraction with --add-comments stops at statements'
            span_id: 81
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:85) 
          (Token
            id: Id.Lit_Chars
            val: '    ! grep "This is a phony" "$GIT_PO_PATH"/is.po &&\n'
            span_id: 86
          ) (Token id:Id.Lit_Chars val:'    ! grep "the above comment" "$GIT_PO_PATH"/is.po\n' span_id:87)
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'sanity: $TEXTDOMAINDIR exists without NO_GETTEXT=YesPlease'
            span_id: 96
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:100) 
          (Token id:Id.Lit_Chars val:'    test -d "$TEXTDOMAINDIR" &&\n' span_id:101) (Token id:Id.Lit_Chars val:'    test "$TEXTDOMAINDIR" = "$GIT_TEXTDOMAINDIR"\n' span_id:102)
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT)} 
      {(SQ (Token id:Id.Lit_Chars val:'sanity: Icelandic locale was compiled' span_id:111))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:115) 
          (Token
            id: Id.Lit_Chars
            val: '    test -f "$TEXTDOMAINDIR/is/LC_MESSAGES/git.mo"\n'
            span_id: 116
          )
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT_LOCALE)} 
      {(SQ (Token id:Id.Lit_Chars val:'sanity: gettext("") metadata is OK' span_id:131))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:135) 
          (Token id:Id.Lit_Chars val:'    # Return value may be non-zero\n' span_id:136) 
          (Token
            id: Id.Lit_Chars
            val: '    LANGUAGE=is LC_ALL="$is_IS_locale" gettext "" >zero-expect &&\n'
            span_id: 137
          ) (Token id:Id.Lit_Chars val:'    grep "Project-Id-Version: Git" zero-expect &&\n' span_id:138) 
          (Token
            id: Id.Lit_Chars
            val: '    grep "Git Mailing List <git@vger.kernel.org>" zero-expect &&\n'
            span_id: 139
          ) 
          (Token
            id: Id.Lit_Chars
            val: '    grep "Content-Type: text/plain; charset=UTF-8" zero-expect &&\n'
            span_id: 140
          ) (Token id:Id.Lit_Chars val:'    grep "Content-Transfer-Encoding: 8bit" zero-expect\n' span_id:141)
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT_LOCALE)} 
      {(SQ (Token id:Id.Lit_Chars val:'sanity: gettext(unknown) is passed through' span_id:150))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:154) 
          (Token
            id: Id.Lit_Chars
            val: '    printf "This is not a translation string"  >expect &&\n'
            span_id: 155
          ) (Token id:Id.Lit_Chars val:'    gettext "This is not a translation string" >actual &&\n' span_id:156) 
          (Token
            id: Id.Lit_Chars
            val: '    eval_gettext "This is not a translation string" >actual &&\n'
            span_id: 157
          ) (Token id:Id.Lit_Chars val:'    test_cmp expect actual\n' span_id:158)
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT_LOCALE)} 
      {(SQ (Token id:Id.Lit_Chars val:'xgettext: C extraction of _() and N_() strings' span_id:170))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:174) 
          (Token
            id: Id.Lit_Chars
            val: '    printf "TILRAUN: C tilraunastrengur" >expect &&\n'
            span_id: 175
          ) (Token id:Id.Lit_Chars val:'    printf "\\n" >>expect &&\n' span_id:176) 
          (Token id:Id.Lit_Chars val:'    printf "Sj\xc3\xa1 ' span_id:177)
        ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:"\\'" span_id:179)) 
        (SQ (Token id:Id.Lit_Chars val:'git help SKIPUN' span_id:181)) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:"\\'" span_id:183)) 
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: ' til a\xc3\xb0 sj\xc3\xa1 hj\xc3\xa1lp fyrir tiltekna skipun." >>expect &&\n'
            span_id: 185
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'    LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A C test string" >actual &&\n'
            span_id: 186
          ) (Token id:Id.Lit_Chars val:'    printf "\\n" >>actual &&\n' span_id:187) 
          (Token
            id: Id.Lit_Chars
            val: '    LANGUAGE=is LC_ALL="$is_IS_locale" gettext "See '
            span_id: 188
          )
        ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:"\\'" span_id:190)) 
        (SQ (Token id:Id.Lit_Chars val:'git help COMMAND' span_id:192)) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:"\\'" span_id:194)) 
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: ' for more information on a specific command." >>actual &&\n'
            span_id: 196
          ) (Token id:Id.Lit_Chars val:'    test_cmp expect actual\n' span_id:197)
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT_LOCALE)} 
      {(SQ (Token id:Id.Lit_Chars val:'xgettext: C extraction with %s' span_id:206))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:210) 
          (Token
            id: Id.Lit_Chars
            val: '    printf "TILRAUN: C tilraunastrengur %%s" >expect &&\n'
            span_id: 211
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'    LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A C test string %s" >actual &&\n'
            span_id: 212
          ) (Token id:Id.Lit_Chars val:'    test_cmp expect actual\n' span_id:213)
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT_LOCALE)} 
      {(SQ (Token id:Id.Lit_Chars val:'xgettext: Shell extraction' span_id:225))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:229) 
          (Token
            id: Id.Lit_Chars
            val: '    printf "TILRAUN: Skeljartilraunastrengur" >expect &&\n'
            span_id: 230
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'    LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Shell test string" >actual &&\n'
            span_id: 231
          ) (Token id:Id.Lit_Chars val:'    test_cmp expect actual\n' span_id:232)
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT_LOCALE)} 
      {(SQ (Token id:Id.Lit_Chars val:'xgettext: Shell extraction with $variable' span_id:241))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:245) 
          (Token
            id: Id.Lit_Chars
            val: 
'    printf "TILRAUN: Skeljartilraunastrengur me\xc3\xb0 breytunni a var i able" >x-expect &&\n'
            span_id: 246
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'    LANGUAGE=is LC_ALL="$is_IS_locale" variable="a var i able" eval_gettext "TEST: A Shell test \\$variable" >x-actual &&\n'
            span_id: 247
          ) (Token id:Id.Lit_Chars val:'    test_cmp x-expect x-actual\n' span_id:248)
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT_LOCALE)} 
      {(SQ (Token id:Id.Lit_Chars val:'xgettext: Perl extraction' span_id:260))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:264) 
          (Token
            id: Id.Lit_Chars
            val: '    printf "TILRAUN: Perl tilraunastrengur" >expect &&\n'
            span_id: 265
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'    LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Perl test string" >actual &&\n'
            span_id: 266
          ) (Token id:Id.Lit_Chars val:'    test_cmp expect actual\n' span_id:267)
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT_LOCALE)} 
      {(SQ (Token id:Id.Lit_Chars val:'xgettext: Perl extraction with %s' span_id:276))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:280) 
          (Token
            id: Id.Lit_Chars
            val: '    printf "TILRAUN: Perl tilraunastrengur me\xc3\xb0 breytunni %%s" >expect &&\n'
            span_id: 281
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'    LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Perl test variable %s" >actual &&\n'
            span_id: 282
          ) (Token id:Id.Lit_Chars val:'    test_cmp expect actual\n' span_id:283)
        )
      }
    )
    (C {(test_expect_success)} {(GETTEXT_LOCALE)} 
      {(SQ (Token id:Id.Lit_Chars val:'sanity: Some gettext("") data for real locale' span_id:292))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:296) 
          (Token
            id: Id.Lit_Chars
            val: '    LANGUAGE=is LC_ALL="$is_IS_locale" gettext "" >real-locale &&\n'
            span_id: 297
          ) (Token id:Id.Lit_Chars val:'    test -s real-locale\n' span_id:298)
        )
      }
    )
    (C {(test_done)})
  ]
)