On 8/29/2019 9:44 AM, Jeff King wrote:
> On Thu, Aug 29, 2019 at 09:12:38AM -0400, Derrick Stolee wrote:
> 
>>> +test_expect_success 'partial clone with unresolvable sparse filter fails 
>>> cleanly' '
>>> +   test_must_fail git clone --no-local --no-checkout 
>>> --filter=sparse:oid=master:sparse-filter "file://$(pwd)/sparse-src" sc1 
>>> 2>err &&
>>> +   test_i18ngrep "unable to read sparse filter specification from 
>>> sparse:oid=master:sparse-filter" err &&
>>> +   test_must_fail git clone --no-local --no-checkout 
>>> --filter=sparse:oid=master "file://$(pwd)/sparse-src" sc2 2>err &&
>>> +   test_i18ngrep "unable to parse sparse filter data in $(git -C 
>>> sparse-src rev-parse master)" err
>>
>> Just as a sanity check: when we use test_i18ngrep, how does it know how to
>> separate the part that is translated and which part is not?
>>
>>      translated: "unable to read sparse filter specification from"
>>      not translated: "sparse:oid=master"
> 
> It doesn't know. By default we run the suite in LOCALE=C and it checks
> the whole string. Under a GETTEXT_POISON build, it checks nothing at
> all.
> 
> The poison stuff is really about helping people not accidentally mark a
> plumbing string (that we expect to get parsed by a machine) as
> translatable. So the idea is you'd build with GETTEXT_POISON and then
> run the test suite to see if anything breaks. But that means we also
> have to annotate the test suite with "yes, I know this will be gibberish
> in a poison build, but that's OK because it's meant for humans". And
> that's what test_i18ngrep is.
> 
> test_i18ngrep could be more clever about matching the gibberish, but
> there's not much point. The LOCALE=C run already covered the correctness
> of checking the message.

Thanks for clearing this up for me!

-Stolee

Reply via email to