test-casecollision-i18n.t

Mads Kiilerich mads at kiilerich.com
Sun Nov 20 21:37:16 UTC 2011


FUJIWARA Katsunori wrote, On 11/14/2011 06:11 AM:
> Hi, Mads
>
> At Mon, 14 Nov 2011 01:24:48 +0100,
> Mads Kiilerich wrote:
>
>> test-casecollision-i18n.t requires icasefs (case insensitive file system).
>>
>> The test do however expect what seems to be case sensitive behaviour:
>>
>>     $ hg status -a
>>     A \x83A (esc)
>>     A \x83Z (esc)
>>     A \x83a (esc)
>>     A \x83z (esc)
>>
>> On windows I get:
>>
>>     $ hg status -a
>>     A \x83A (esc)
>>     A \x83Z (esc)
>>
>> That seems more like what I would expect on a case insensitive file system.
>>
>> Or is it a bug in Mercurial on windows or a bug in the test, or what can
>> explain this?
>>
>> My guess is that this test really depends on a file system that is using
>> cp932 when it ignores casing ... and that the test thus not is correct.
> I think you are right.
>
> Your (cp932 insensible) windows filesystem seems to treat these
> characters as byte sequence, so make second characters upper.
>
> This test should be removed, or at least be disabled in other than
> cp932 environments, should not ?

Yes, please, whatever you prefer.

This test is usually skipped on linux because of hghave icasefs.

This test is run and passes on OS/X, but actually it is a bug that it 
passes. I think Matt has a plan for a fix of that, but the test really 
shouldn't be run on OS/X. The 'hghave icasefs' is insufficient and thus 
not correct.

The test will be run on all windows machines, but it will fail on most 
of them. That is a bug in the test. The best solution to that will be to 
make sure that the test only is run when the setup is right ... and to 
make sure that the test is run regularly in such a setup. The 
alternative is to remove the test.

In my opinion you as "owner" of this test and a setup where it works 
should fix it somehow. The rest of us are only qualified to remove the test.

/Mads



More information about the Mercurial-devel mailing list