Re: Logs of failed tests PHP 4.3.0pre1 (fwd)
| From: | (Michael Mauch) | Date: | Sun, 20 Oct 2002 21:40:49 +0000 |
| Subject: | Re: Logs of failed tests PHP 4.3.0pre1 (fwd) | ||
| References: | 1 2 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-89772@lists.php.net to get a copy of this message | ||
Melvyn Sopacua <msopacua@idg.nl> wrote:
> At 18:48 20-10-2002, Mike Robinson wrote:
>
>>Michael Mauch wrote:
>>
>> > I doubt that the C library does anything useful with
>> > non-ASCII characters while you are in a "C" or "POSIX"
>> > locale, so expat or PHP can't do much to correct that.
>> >
>> > So is your locale something other than "C" or "POSIX"?
>> > "en_US.ISO-8859-1" for example?
>>
>>Yup, thats what its set to.
Hmm. Strange. What does
php -r 'echo strtoupper("äöü"),"\n";'
yield on your system? And what system is it, btw?
>> > Perhaps ext/xml/tests/007.phpt could check whether it is able
>> > to successfully use strtoupper() on $xmldata - and if not,
>> > just skip that test?
>>
>>I have no problem with this test failing. It actually provides
>>useful information. I'm not one to second-guess the intentions
>>of the author of this test ('sniper' I think).
>
> But the reason for failure is not very clear, plus the manual
> (http://www.php.net/manual/en/ref.xml.php#xml.case-folding) makes
> no mention of the fact that it may fail and/or why.
Yes, that's true.
> Using non-ascii chars for tags, doesn't fall into the 'best practice'
> category for me, but opinions differ :)
>
> We could make strtoupper locale aware, with an optional argument
> "charset", but even then it can fail (tried it).
Umm, strtoupper() _is_ locale aware, at least here (Linux, glibc-2.1.3):
% php -r 'echo strtoupper("äöü"),"\n";'
ÄÖÜ
% LC_CTYPE=C php -r 'echo strtoupper("äöü"),"\n";'
äöü
We could use a test like strtopper("äöü")=="ÄÖÜ" to check if the system
is able to handle these characters correctly. If not, the test could be
skipped.
Alas it's not possible to use setlocale() and set it to a 100% good
locale with ISO-8859-1 characters - these bloody locales are different
on each system, so you can only try and guess (of course you can do set
right for your system(s), but not for _all_ systems). Obviously that
problem has been addressed by a kind soul who implemented an array
argument for setlocale() recently - see
<http://www.php.net/manual/en/function.setlocale.php>.
The user notes
there are also very informative.
> What would be nice - in general - is a "skip reason".
Yes, true.
Regards...
Michael