(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'Gettext Shell fallbacks'>)}
          spids: [13]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GIT_INTERNAL_GETTEXT_TEST_FALLBACKS)
          op: assign_op.Equal
          rhs: {<YesPlease>}
          spids: [19]
        )
      ]
    )
    (C {<export>} {<GIT_INTERNAL_GETTEXT_TEST_FALLBACKS>})
    (C {<.>} {<'./lib-gettext.sh'>})
    (C {<test_expect_success>} 
      {
        (DQ <'sanity: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
          <'GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to '> ($ Id.VSub_DollarName '$GIT_INTERNAL_GETTEXT_SH_SCHEME') <')'>
        )
      } {(SQ <'\n'> <'    test -n "$GIT_INTERNAL_GETTEXT_SH_SCHEME"\n'>)}
    )
    (C {<test_expect_success>} {(SQ <'sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set'>)} 
      {(SQ <'\n'> <'    test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS"\n'>)}
    )
    (C {<test_expect_success>} {<C_LOCALE_OUTPUT>} 
      {(SQ <'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough'>)} 
      {
        (SQ <'\n'> <'    echo fallthrough >expect &&\n'> 
          <'    echo $GIT_INTERNAL_GETTEXT_SH_SCHEME >actual &&\n'> <'    test_cmp expect actual\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'gettext: our gettext() fallback has pass-through semantics'>)} 
      {
        (SQ <'\n'> <'    printf "test" >expect &&\n'> <'    gettext "test" >actual &&\n'> 
          <'    test_i18ncmp expect actual &&\n'> <'    printf "test more words" >expect &&\n'> <'    gettext "test more words" >actual &&\n'> 
          <'    test_i18ncmp expect actual\n'>
        )
      }
    )
    (C {<test_expect_success>} 
      {(SQ <'eval_gettext: our eval_gettext() fallback has pass-through semantics'>)} 
      {
        (SQ <'\n'> <'    printf "test" >expect &&\n'> <'    eval_gettext "test" >actual &&\n'> 
          <'    test_i18ncmp expect actual &&\n'> <'    printf "test more words" >expect &&\n'> <'    eval_gettext "test more words" >actual &&\n'> 
          <'    test_i18ncmp expect actual\n'>
        )
      }
    )
    (C {<test_expect_success>} 
      {(SQ <'eval_gettext: our eval_gettext() fallback can interpolate variables'>)} 
      {
        (SQ <'\n'> <'    printf "test YesPlease" >expect &&\n'> 
          <
'    GIT_INTERNAL_GETTEXT_TEST_FALLBACKS=YesPlease eval_gettext "test \\$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" >actual &&\n'
          > <'    test_i18ncmp expect actual\n'>
        )
      }
    )
    (C {<test_expect_success>} 
      {(SQ <'eval_gettext: our eval_gettext() fallback can interpolate variables with spaces'>)} 
      {
        (SQ <'\n'> <'    cmdline="git am" &&\n'> <'    export cmdline &&\n'> 
          <'    printf "When you have resolved this problem, run git am --resolved." >expect &&\n'> <'    eval_gettext "When you have resolved this problem, run \\$cmdline --resolved." >actual &&\n'> 
          <'    test_i18ncmp expect actual\n'>
        )
      }
    )
    (C {<test_expect_success>} 
      {
        (SQ 
          <
'eval_gettext: our eval_gettext() fallback can interpolate variables with spaces and quotes'
          >
        )
      } 
      {
        (SQ <'\n'> <'    cmdline="git am" &&\n'> <'    export cmdline &&\n'> 
          <
'    printf "When you have resolved this problem, run \\"git am --resolved\\"." >expect &&\n'
          > 
          <
'    eval_gettext "When you have resolved this problem, run \\"\\$cmdline --resolved\\"." >actual &&\n'
          > <'    test_i18ncmp expect actual\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)