Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

t/lib/locale.t noisy+complaining but passes on Win32 #13629

Closed
p5pRT opened this issue Feb 27, 2014 · 12 comments
Closed

t/lib/locale.t noisy+complaining but passes on Win32 #13629

p5pRT opened this issue Feb 27, 2014 · 12 comments

Comments

@p5pRT
Copy link

p5pRT commented Feb 27, 2014

Migrated from rt.perl.org#121340 (status was 'resolved')

Searchable as RT121340$

@p5pRT
Copy link
Author

p5pRT commented Feb 27, 2014

From @bulk88

Created by @bulk88

t/lib/locale.t is noisy and complaining but passes all tests on Win32.
-----------------------------------------------------------------
../lib/less.t ..................................................... ok
../lib/locale.t ...................................................
257/? # The
following locales
#
# C
#
# tested okay.
#
# The following locales
#
# Afrikaans Albanian American Basque Bulgarian Catalan Català
# Croatian Czech Danish Dutch English Estonian Faroese Finnish
# French Føroyskt Galician German Greek Gáidhlig Hungarian
# Icelandic Indonesian Italian Latvian Lithuanian Norwegian
# Polish Portuguese Português Russian Serbian Slovak Slovenian
# Spanish Swedish Sámi Turkish Welsh af ca da en es fi fr fy
# ga hu it la mo no no\@​nynorsk po ro ru sl
#
# had problems.
#
# For more details, rerun, with environment variable PERL_DEBUG_FULL_TEST=1.
../lib/locale.t ................................................... ok
../lib/open.t ..................................................... ok
../lib/overload.t ................................................. ok
-------------------------------------------------------------------

Attaching manual runs at set PERL_DEBUG_FULL_TEST 0,1,2. debug*.txt are
named respectively. Files are compressed so this ticket isn't rejected
from P5P ML attachment size limit IIRC is 250 KB (RT will take the
ticket perfectly, but it will never appear on the ML).

Perl Info

Flags:
category=core
severity=low

Site configuration information for perl 5.19.9:

Configured by Owner at Wed Feb 12 06:47:30 2014.

Summary of my perl5 (revision 5 version 19 subversion 9) configuration:
Derived from: 633f0fd2ca244ca83cc99b3af3a7d3ac2931850b
Platform:
osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
uname=''
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
useithreads=define, usemultiplicity=define
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cl', ccflags ='-nologo -GF -W3 -Od -MD -Zi -DDEBUGGING -DWIN32
-D_CONSOLE -DNO_STRICT -DPERL_TEXTMODE_SCRIPTS
-DPERL_HASH_FUNC_ONE_AT_A_TIME -DPERL_IMPLICIT_CONTEXT
-DPERL_IMPLICIT_SYS -DUSE_PERLIO -D_USE_32BIT_TIME_T',
optimize='-Od -MD -Zi -DDEBUGGING',
cppflags='-DWIN32'
ccversion='13.10.6030', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='link', ldflags ='-nologo -nodefaultlib -debug
-libpath:"c:\perl519\lib\CORE" -machine:x86'
libpth="C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\lib"
libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl519.lib
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug
-libpath:"c:\perl519\lib\CORE" -machine:x86'

Locally applied patches:
uncommitted-changes


@INC for perl 5.19.9:
C:/perl519/site/lib
C:/perl519/lib
.


Environment for perl 5.19.9:
HOME (unset)
LANG (unset)
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=C:\perl519\bin;C:\Program Files\Microsoft Visual Studio .NET
2003\Common7\IDE;C:\Program Files\Microsoft Visual Studio .NET
2003\VC7\BIN;C:\Program Files\Microsoft Visual Studio .NET
2003\Common7\Tools;C:\Program Files\Microsoft Visual Studio .NET
2003\Common7\Tools\bin\prerelease;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;
PERL_BADLANG (unset)
SHELL (unset)



@p5pRT
Copy link
Author

p5pRT commented Feb 27, 2014

From @bulk88

debug0.txt.gz

@p5pRT
Copy link
Author

p5pRT commented Feb 27, 2014

From @bulk88

debug1.txt.gz

@p5pRT
Copy link
Author

p5pRT commented Feb 27, 2014

From @bulk88

debug2.txt.gz

@p5pRT
Copy link
Author

p5pRT commented Mar 5, 2014

From @khwilliamson

On Thu Feb 27 09​:48​:12 2014, bulk88 wrote​:

This is a bug report for perl from bulk88@​hotmail.com,
generated with the help of perlbug 1.40 running under perl 5.19.9.

-----------------------------------------------------------------
[Please describe your issue here]

t/lib/locale.t is noisy and complaining but passes all tests on Win32.
-----------------------------------------------------------------
../lib/less.t ..................................................... ok
../lib/locale.t ...................................................
257/? # The
following locales
#
# C
#
# tested okay.
#
# The following locales
#
# Afrikaans Albanian American Basque Bulgarian Catalan Català
# Croatian Czech Danish Dutch English Estonian Faroese Finnish
# French Føroyskt Galician German Greek Gáidhlig Hungarian
# Icelandic Indonesian Italian Latvian Lithuanian Norwegian
# Polish Portuguese Português Russian Serbian Slovak Slovenian
# Spanish Swedish Sámi Turkish Welsh af ca da en es fi fr fy
# ga hu it la mo no no\@​nynorsk po ro ru sl
#
# had problems.
#
# For more details, rerun, with environment variable
PERL_DEBUG_FULL_TEST=1.
../lib/locale.t ................................................... ok
../lib/open.t ..................................................... ok
../lib/overload.t ................................................. ok
-------------------------------------------------------------------

Attaching manual runs at set PERL_DEBUG_FULL_TEST 0,1,2. debug*.txt
are
named respectively. Files are compressed so this ticket isn't rejected
from P5P ML attachment size limit IIRC is 250 KB (RT will take the
ticket perfectly, but it will never appear on the ML).

I am not sure what to do here. It looks like lib/locale.t was originally intended as a hybrid, both a .t to find bugs, and as a diagnostic tool for people to see what's wrong on their system. As such, it always has output messages. I came along and added tests, some of which all but one locale on Windows fail, as Windows has not paid attention to the POSIX standard, whereas Perl code very well may assume that it is running on a system that does.

One possibility is to completely turn off the diagnostic capability by default and add documentation (in perllocale) as to how to turn it on.

--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Mar 5, 2014

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Mar 5, 2014

From @bulk88

On Wed Mar 05 11​:28​:16 2014, khw wrote​:

I am not sure what to do here. It looks like lib/locale.t was
originally intended as a hybrid, both a .t to find bugs, and as a
diagnostic tool for people to see what's wrong on their system. As
such, it always has output messages. I came along and added tests,
some of which all but one locale on Windows fail, as Windows has not
paid attention to the POSIX standard, whereas Perl code very well may
assume that it is running on a system that does.

Can you explain for the uninitiated (me) how Windows doesn't follow POSIX standard locale wise?

Maybe we want our own locale layer (does the term make sense?) instead of using Win32's/MS libc locale layer.

One possibility is to completely turn off the diagnostic capability by
default and add documentation (in perllocale) as to how to turn it on.

My opinion would be to add note that explains how the system is different from POSIX but this is not a "failure".


# 30% of locales pass the following test, so it is likely that the failures
# are errors in the locale definitions. The test is marked TODO, as the
# problem is not likely to be Perl's
#
# For more details, rerun, with environment variable PERL_DEBUG_FULL_TEST=1.
# Then look at that output for lines that match 'failed 275'
not ok 275 Verify that [​:digit​:] is a subset of [​:xdigit​:] # TODO


# Locale = American
# is utf8 locale? = 0
# radix = .
# :upper​: = A-Z 8A 8C 8E 9F C0-D6 D8-DE
# :lower​: = a-z 83 9A 9C 9E AA B5 BA DF-F6 F8-FF
# :cased​: = A-Z a-z 83 8A 8C 8E 9A 9C 9E-9F AA B5 BA C0-D6 D8-F6 F8-FF
# :alpha​: = A-Z a-z 83 8A 8C 8E 9A 9C 9E-9F AA B5 BA C0-D6 D8-F6 F8-FF
# :alnum​: = 0-9 A-Z a-z 83 8A 8C 8E 9A 9C 9E-9F AA B2-B3 B5 B9-BA C0-D6 D8-F6 F8-FF
# w = 0-9 A-Z 5F a-z 83 8A 8C 8E 9A 9C 9E-9F AA B2-B3 B5 B9-BA C0-D6 D8-F6 F8-FF
# :graph​: = 21-2F 0-9 3A-40 A-Z 5B-60 a-z 7B-7E 82-87 89-8C 8E 91-97 9A-9C 9E-9F A1-FF
# :print​: = 09 20-2F 0-9 3A-40 A-Z 5B-60 a-z 7B-7E 82-87 89-8C 8E 91-97 9A-9C 9E-FF
# d = 0-9 B2-B3 B9
# :xdigit​: = 0-9 A-F a-f
# :blank​: = 09 20
# s = 09-0D 20 A0
# :punct​: = 21-2F 3A-40 5B-60 7B-7E 82 84-87 89 8B 91-97 9B A1-BF D7 F7
# :cntrl​: = 00-1F 7F 81 8D 8F-90 9D
# :ascii​: = 00-2F 0-9 3A-40 A-Z 5B-60 a-z 7B-7F
# UPPER = A-Z 8A 8C 8E 9F C0-D6 D8-DE
# lower = a-z 9A 9C 9E E0-F6 F8-FF
# BoThCaSe = 83 AA B5 BA DF
# Unassigned = 80 88 98-99
# Added_alpha = 83 8A 8C 8E 9A 9C 9E-9F AA B5 BA C0-D6 D8-F6 F8-FF
# failed 273 (Verify that [​:digit​:] matches either 10 or 20 code points) with locale 'American'
# failed 275 (Verify that [​:digit​:] is a subset of [​:xdigit​:]) with locale 'American' (for B2-B3 B9)
# failed 286 (Verify that isn't both [​:cntrl​:] and [​:print​:]) with locale 'American' (for 09)
# failed 288 (Verify that isn't both [​:alnum​:] and [​:punct​:]) with locale 'American' (for AA B2-B3 B5 B9-BA)
# 293..293​: \$a = 1.23, \$b = 1.23, Locale = American
# 294..297​: \$c = 1.23, \$d = 1.23, Locale = American
# 298..300​: \$e = 1.23, no locale
# 301..310​: \$f = 1.23, \$g = 2.34, back to locale = American
#


I dont see :digit​:, I guess d==digit. And what is B2-B3 B9?

--
bulk88 ~ bulk88 at hotmail.com

@p5pRT
Copy link
Author

p5pRT commented Mar 6, 2014

From @khwilliamson

On 03/05/2014 04​:41 PM, bulk88 via RT wrote​:

On Wed Mar 05 11​:28​:16 2014, khw wrote​:

I am not sure what to do here. It looks like lib/locale.t was
originally intended as a hybrid, both a .t to find bugs, and as a
diagnostic tool for people to see what's wrong on their system. As
such, it always has output messages. I came along and added tests,
some of which all but one locale on Windows fail, as Windows has not
paid attention to the POSIX standard, whereas Perl code very well may
assume that it is running on a system that does.

Can you explain for the uninitiated (me) how Windows doesn't follow POSIX standard locale wise?

All the failures are listed, like the one you have copied below.

Maybe we want our own locale layer (does the term make sense?) instead of using Win32's/MS libc locale layer.

That would be hard, and hard to maintain

One possibility is to completely turn off the diagnostic capability by
default and add documentation (in perllocale) as to how to turn it on.

My opinion would be to add note that explains how the system is different from POSIX but this is not a "failure".

-----------------------------------------------
# 30% of locales pass the following test, so it is likely that the failures
# are errors in the locale definitions. The test is marked TODO, as the
# problem is not likely to be Perl's
#
# For more details, rerun, with environment variable PERL_DEBUG_FULL_TEST=1.
# Then look at that output for lines that match 'failed 275'
not ok 275 Verify that [​:digit​:] is a subset of [​:xdigit​:] # TODO
-----------------------------------------------
# Locale = American
# is utf8 locale? = 0
# radix = .
# :upper​: = A-Z 8A 8C 8E 9F C0-D6 D8-DE
# :lower​: = a-z 83 9A 9C 9E AA B5 BA DF-F6 F8-FF
# :cased​: = A-Z a-z 83 8A 8C 8E 9A 9C 9E-9F AA B5 BA C0-D6 D8-F6 F8-FF
# :alpha​: = A-Z a-z 83 8A 8C 8E 9A 9C 9E-9F AA B5 BA C0-D6 D8-F6 F8-FF
# :alnum​: = 0-9 A-Z a-z 83 8A 8C 8E 9A 9C 9E-9F AA B2-B3 B5 B9-BA C0-D6 D8-F6 F8-FF
# w = 0-9 A-Z 5F a-z 83 8A 8C 8E 9A 9C 9E-9F AA B2-B3 B5 B9-BA C0-D6 D8-F6 F8-FF
# :graph​: = 21-2F 0-9 3A-40 A-Z 5B-60 a-z 7B-7E 82-87 89-8C 8E 91-97 9A-9C 9E-9F A1-FF
# :print​: = 09 20-2F 0-9 3A-40 A-Z 5B-60 a-z 7B-7E 82-87 89-8C 8E 91-97 9A-9C 9E-FF
# d = 0-9 B2-B3 B9
# :xdigit​: = 0-9 A-F a-f
# :blank​: = 09 20
# s = 09-0D 20 A0
# :punct​: = 21-2F 3A-40 5B-60 7B-7E 82 84-87 89 8B 91-97 9B A1-BF D7 F7
# :cntrl​: = 00-1F 7F 81 8D 8F-90 9D
# :ascii​: = 00-2F 0-9 3A-40 A-Z 5B-60 a-z 7B-7F
# UPPER = A-Z 8A 8C 8E 9F C0-D6 D8-DE
# lower = a-z 9A 9C 9E E0-F6 F8-FF
# BoThCaSe = 83 AA B5 BA DF
# Unassigned = 80 88 98-99
# Added_alpha = 83 8A 8C 8E 9A 9C 9E-9F AA B5 BA C0-D6 D8-F6 F8-FF
# failed 273 (Verify that [​:digit​:] matches either 10 or 20 code points) with locale 'American'
# failed 275 (Verify that [​:digit​:] is a subset of [​:xdigit​:]) with locale 'American' (for B2-B3 B9)
# failed 286 (Verify that isn't both [​:cntrl​:] and [​:print​:]) with locale 'American' (for 09)
# failed 288 (Verify that isn't both [​:alnum​:] and [​:punct​:]) with locale 'American' (for AA B2-B3 B5 B9-BA)
# 293..293​: \$a = 1.23, \$b = 1.23, Locale = American
# 294..297​: \$c = 1.23, \$d = 1.23, Locale = American
# 298..300​: \$e = 1.23, no locale
# 301..310​: \$f = 1.23, \$g = 2.34, back to locale = American
#
---------------------------------------------------

I dont see :digit​:, I guess d==digit. And what is B2-B3 B9?

I think a legend would be good to add to this output.

B2 is the code point at 0xB2, and these three code points are
superscripts 1,2, and 3. MS has chosen to call superscripts "digits",
which is contrary to the POSIX standard, which says that digits are code
points in blocks of exactly 10 consecutive code points, meaning 0-9
respectively. A POSIX program assumes that anything matching \d is
suitable for base 10 arithmetic, and can be combined with any other \d
code point in its block to form a base 10 number. Superscripts are not
necessarily thought of that way; further a number's value can be
determined by its offset from the 0 point in its block. These
superscripts don't obey that, besides not being a complete set, besides
not being contiguous, and not even in order. Besides, these
superscripts are also considered punctuatrion, see error 288. In other
words, MS has totally screwed this up.

The failure that every MS locale has (except C) is to say that a tab is
both a control and printable. Those are mutually exclusive sets in
POSIX and Unicode.

@p5pRT
Copy link
Author

p5pRT commented Mar 10, 2014

From @khwilliamson

On Wed Mar 05 17​:52​:12 2014, public@​khwilliamson.com wrote​:

On 03/05/2014 04​:41 PM, bulk88 via RT wrote​:

On Wed Mar 05 11​:28​:16 2014, khw wrote​:

I am not sure what to do here. It looks like lib/locale.t was
originally intended as a hybrid, both a .t to find bugs, and as a
diagnostic tool for people to see what's wrong on their system. As
such, it always has output messages. I came along and added tests,
some of which all but one locale on Windows fail, as Windows has not
paid attention to the POSIX standard, whereas Perl code very well
may
assume that it is running on a system that does.

Can you explain for the uninitiated (me) how Windows doesn't follow
POSIX standard locale wise?

All the failures are listed, like the one you have copied below.

Maybe we want our own locale layer (does the term make sense?)
instead of using Win32's/MS libc locale layer.

That would be hard, and hard to maintain

Actually, I thought about this some more and came up with what might be a solution. The tests that Windows is failing are typically from it having characters be in mutually-exclusive classes. Examples are given below in the quoted text from the previous message about this. My idea is to change the macros in handy.h, like isDIGIT_LC() for Windows only so that they don't say something is a digit which is also punctuation, and that something is also punctuation that is also a control, etc. I did this and Steve Hay, who has a bunch of Windows locales on his machinge, graciously tested this, and after an iteration, got things so no failures were noted. It works by assuming that the Windows :cntrl​: definition is correct. Eyeballing seems to show that that is the case. Then it assumes that Windows won't make something punctuation that really isn't (given that it isn't also a control), and it makes sure that something isn't an :alpha​: that isn't also an :alnum​:, etc. This seems to me to be a good solution, requiring little maintenance going forward and not having to know the details about the Windows locale definitions.

But it does change current behavior, so is probably not a candidate for 5.20.

One possibility is to completely turn off the diagnostic capability
by
default and add documentation (in perllocale) as to how to turn it
on.

My opinion would be to add note that explains how the system is
different from POSIX but this is not a "failure".

-----------------------------------------------
# 30% of locales pass the following test, so it is likely that the
failures
# are errors in the locale definitions. The test is marked TODO, as
the
# problem is not likely to be Perl's
#
# For more details, rerun, with environment variable
PERL_DEBUG_FULL_TEST=1.
# Then look at that output for lines that match 'failed 275'
not ok 275 Verify that [​:digit​:] is a subset of [​:xdigit​:] # TODO
-----------------------------------------------
# Locale = American
# is utf8 locale? = 0
# radix = .
# :upper​: = A-Z 8A 8C 8E 9F C0-D6 D8-DE
# :lower​: = a-z 83 9A 9C 9E AA B5 BA DF-F6 F8-FF
# :cased​: = A-Z a-z 83 8A 8C 8E 9A 9C 9E-9F AA B5 BA C0-D6 D8-F6 F8-
FF
# :alpha​: = A-Z a-z 83 8A 8C 8E 9A 9C 9E-9F AA B5 BA C0-D6 D8-F6 F8-
FF
# :alnum​: = 0-9 A-Z a-z 83 8A 8C 8E 9A 9C 9E-9F AA B2-B3 B5 B9-BA
C0-D6 D8-F6 F8-FF
# w = 0-9 A-Z 5F a-z 83 8A 8C 8E 9A 9C 9E-9F AA B2-B3 B5 B9-BA
C0-D6 D8-F6 F8-FF
# :graph​: = 21-2F 0-9 3A-40 A-Z 5B-60 a-z 7B-7E 82-87 89-8C 8E 91-97
9A-9C 9E-9F A1-FF
# :print​: = 09 20-2F 0-9 3A-40 A-Z 5B-60 a-z 7B-7E 82-87 89-8C 8E
91-97 9A-9C 9E-FF
# d = 0-9 B2-B3 B9
# :xdigit​: = 0-9 A-F a-f
# :blank​: = 09 20
# s = 09-0D 20 A0
# :punct​: = 21-2F 3A-40 5B-60 7B-7E 82 84-87 89 8B 91-97 9B A1-BF D7
F7
# :cntrl​: = 00-1F 7F 81 8D 8F-90 9D
# :ascii​: = 00-2F 0-9 3A-40 A-Z 5B-60 a-z 7B-7F
# UPPER = A-Z 8A 8C 8E 9F C0-D6 D8-DE
# lower = a-z 9A 9C 9E E0-F6 F8-FF
# BoThCaSe = 83 AA B5 BA DF
# Unassigned = 80 88 98-99
# Added_alpha = 83 8A 8C 8E 9A 9C 9E-9F AA B5 BA C0-D6 D8-F6 F8-FF
# failed 273 (Verify that [​:digit​:] matches either 10 or 20 code
points) with locale 'American'
# failed 275 (Verify that [​:digit​:] is a subset of [​:xdigit​:]) with
locale 'American' (for B2-B3 B9)
# failed 286 (Verify that isn't both [​:cntrl​:] and [​:print​:]) with
locale 'American' (for 09)
# failed 288 (Verify that isn't both [​:alnum​:] and [​:punct​:]) with
locale 'American' (for AA B2-B3 B5 B9-BA)
# 293..293​: \$a = 1.23, \$b = 1.23, Locale = American
# 294..297​: \$c = 1.23, \$d = 1.23, Locale = American
# 298..300​: \$e = 1.23, no locale
# 301..310​: \$f = 1.23, \$g = 2.34, back to locale = American
#
---------------------------------------------------

I dont see :digit​:, I guess d==digit. And what is B2-B3 B9?

I think a legend would be good to add to this output.

B2 is the code point at 0xB2, and these three code points are
superscripts 1,2, and 3. MS has chosen to call superscripts "digits",
which is contrary to the POSIX standard, which says that digits are
code
points in blocks of exactly 10 consecutive code points, meaning 0-9
respectively. A POSIX program assumes that anything matching \d is
suitable for base 10 arithmetic, and can be combined with any other \d
code point in its block to form a base 10 number. Superscripts are
not
necessarily thought of that way; further a number's value can be
determined by its offset from the 0 point in its block. These
superscripts don't obey that, besides not being a complete set,
besides
not being contiguous, and not even in order. Besides, these
superscripts are also considered punctuatrion, see error 288. In
other
words, MS has totally screwed this up.

The failure that every MS locale has (except C) is to say that a tab
is
both a control and printable. Those are mutually exclusive sets in
POSIX and Unicode.

--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Mar 12, 2014

From @bulk88

Testing smoke me khw locale.


SHA-1​: ffa57b8

* lib/locale.t​: Update $variable name


C​:\p519\srckhw\t>perl -I..\lib harness ../lib/locale.t
../lib/locale.t .. ok
All tests successful.
Files=1, Tests=546, 4 wallclock secs ( 0.12 usr + 0.00 sys = 0.12 CPU)
Result​: PASS

C​:\p519\srckhw\t>


with -v to harness


../lib/locale.t ..
ok 1 verify that isn't tainted​: not tainted outside 'use locale'
ok 2 verify that isn't tainted​: $a
ok 3 verify that is tainted
ok 4 verify that is tainted
ok 5 verify that is tainted
ok 6 verify that is tainted
ok 7 verify that is tainted
ok 8 verify that is tainted
ok 9 verify that is tainted
ok 10 verify that is tainted
ok 11 verify that is tainted
ok 12 verify that is tainted
ok 13 verify that isn't tainted
ok 14 verify that isn't tainted
ok 15 verify that isn't tainted
ok 16 verify that isn't tainted
ok 17 verify that isn't tainted
ok 18 verify that is tainted​: $_
ok 19 verify that is tainted​: /(\w)/ $&
ok 20 verify that is tainted​: $`
ok 21 verify that is tainted​: $'
ok 22 verify that is tainted​: $+
ok 23 verify that is tainted​: $1
ok 24 verify that isn't tainted​: $2
ok 25 verify that isn't tainted​: /(.)/ $&
ok 26 verify that isn't tainted​: $`
ok 27 verify that isn't tainted​: $'
ok 28 verify that isn't tainted​: $+
ok 29 verify that isn't tainted​: $1
ok 30 verify that isn't tainted​: $2
ok 31 verify that is tainted​: /(\W)/ $&
ok 32 verify that is tainted​: $`
ok 33 verify that is tainted​: $'
ok 34 verify that is tainted​: $+
ok 35 verify that is tainted​: $1
ok 36 verify that isn't tainted​: $2
ok 37 verify that isn't tainted​: /(.)/ $&
ok 38 verify that isn't tainted​: $`
ok 39 verify that isn't tainted​: $'
ok 40 verify that isn't tainted​: $+
ok 41 verify that isn't tainted​: $1
ok 42 verify that isn't tainted​: $2
ok 43 verify that is tainted​: /(\s)/ $&
ok 44 verify that is tainted​: $`
ok 45 verify that is tainted​: $'
ok 46 verify that is tainted​: $+
ok 47 verify that is tainted​: $1
ok 48 verify that isn't tainted​: $2
ok 49 verify that isn't tainted​: /(.)/ $&
ok 50 verify that is tainted​: /(\S)/ $&
ok 51 verify that is tainted​: $`
ok 52 verify that is tainted​: $'
ok 53 verify that is tainted​: $+
ok 54 verify that is tainted​: $1
ok 55 verify that isn't tainted​: $2
ok 56 verify that isn't tainted​: /(.)/ $&
ok 57 verify that is tainted​: /(a)|(\w)/ $&
ok 58 verify that is tainted​: $`
ok 59 verify that is tainted​: $'
ok 60 verify that is tainted​: $+
ok 61 verify that is tainted​: $1
ok 62 $1 is 'a'
ok 63 $2 is undefined
ok 64 verify that isn't tainted​: $2
ok 65 verify that isn't tainted​: $3
ok 66 verify that isn't tainted​: /(.)/ $&
ok 67 verify that isn't tainted​: /(\N{CYRILLIC CAPITAL LETTER A})/i $&
ok 68 verify that isn't tainted​: $`
ok 69 verify that isn't tainted​: $'
ok 70 verify that isn't tainted​: $+
ok 71 verify that isn't tainted​: $1
ok 72 $1 is 'small cyrillic a'
ok 73 verify that isn't tainted​: $2
ok 74 verify that isn't tainted​: /./ $&
ok 75 verify that isn't tainted​: /(.)/ $&
ok 76 verify that is tainted​: /(.)\b(.)/ $&
ok 77 verify that is tainted​: $`
ok 78 verify that is tainted​: $'
ok 79 verify that is tainted​: $+
ok 80 verify that is tainted​: $1
ok 81 verify that is tainted​: $2
ok 82 verify that isn't tainted​: $3
ok 83 verify that isn't tainted​: /./ $&
ok 84 verify that is tainted​: /(.)\B(.)/ $&
ok 85 verify that is tainted​: $`
ok 86 verify that is tainted​: $'
ok 87 verify that is tainted​: $+
ok 88 verify that is tainted​: $1
ok 89 verify that is tainted​: $2
ok 90 verify that isn't tainted​: $3
ok 91 verify that isn't tainted​: /./ $&
ok 92 verify that isn't tainted​: /(.).(\1)/ $&
ok 93 verify that isn't tainted​: $`
ok 94 verify that isn't tainted​: $'
ok 95 verify that isn't tainted​: $+
ok 96 verify that isn't tainted​: $1
ok 97 verify that isn't tainted​: $2
ok 98 verify that isn't tainted​: $3
ok 99 verify that isn't tainted​: /./ $&
ok 100 verify that isn't tainted​: $_
ok 101 verify that isn't tainted​: /(b)/ $&
ok 102 verify that isn't tainted​: $`
ok 103 verify that isn't tainted​: $'
ok 104 verify that isn't tainted​: $+
ok 105 verify that isn't tainted​: $1
ok 106 verify that isn't tainted​: $2
ok 107 verify that isn't tainted​: $_
ok 108 verify that is tainted​: $_
ok 109 verify that isn't tainted​: $&
ok 110 verify that isn't tainted​: $`
ok 111 verify that isn't tainted​: $'
ok 112 verify that isn't tainted​: $+
ok 113 verify that isn't tainted​: $1
ok 114 verify that isn't tainted​: $2
ok 115 verify that isn't tainted​: $_
ok 116 verify that isn't tainted​: $&
ok 117 verify that isn't tainted​: $`
ok 118 verify that isn't tainted​: $'
ok 119 verify that isn't tainted​: $+
ok 120 verify that isn't tainted​: $1
ok 121 verify that isn't tainted​: $2
ok 122 verify that is tainted​: $b
ok 123 verify that isn't tainted​: $a
ok 124 verify that is tainted​: $_
ok 125 verify that is tainted​: $&
ok 126 verify that is tainted​: $`
ok 127 verify that is tainted​: $'
ok 128 verify that is tainted​: $+
ok 129 verify that is tainted​: $1
ok 130 verify that isn't tainted​: $2
ok 131 verify that is tainted​: $_
ok 132 verify that is tainted​: $&
ok 133 verify that is tainted​: $`
ok 134 verify that is tainted​: $'
ok 135 verify that is tainted​: $+
ok 136 verify that is tainted​: $1
ok 137 verify that isn't tainted​: $2
ok 138 verify that is tainted​: $_
ok 139 verify that is tainted​: $&
ok 140 verify that is tainted​: $`
ok 141 verify that is tainted​: $'
ok 142 verify that is tainted​: $+
ok 143 verify that is tainted​: $1
ok 144 verify that isn't tainted​: $2
ok 145 verify that is tainted​: $_
ok 146 verify that is tainted​: $&
ok 147 verify that is tainted​: $`
ok 148 verify that is tainted​: $'
ok 149 verify that is tainted​: $+
ok 150 verify that is tainted​: $1
ok 151 verify that isn't tainted​: $2
ok 152 verify that isn't tainted​: $a
ok 153 verify that isn't tainted​: "a" =~ /([a-z])/
ok 154 verify that isn't tainted​: "foo.bar_baz" =~ /^(.*)[._](.*?)$/
ok 155 verify that isn't tainted
ok 156 verify that isn't tainted
ok 157 verify that isn't tainted
ok 158 verify that isn't tainted
ok 159 verify that isn't tainted
ok 160 verify that isn't tainted
ok 161 verify that isn't tainted
ok 162 verify that isn't tainted
ok 163 verify that isn't tainted
ok 164 verify that isn't tainted
ok 165 verify that isn't tainted
ok 166 verify that isn't tainted
ok 167 verify that isn't tainted
ok 168 verify that isn't tainted
ok 169 verify that isn't tainted
ok 170 verify that isn't tainted
ok 171 verify that isn't tainted
ok 172 verify that isn't tainted
ok 173 verify that isn't tainted
ok 174 verify that isn't tainted
ok 175 verify that isn't tainted
ok 176 verify that isn't tainted
ok 177 verify that isn't tainted
ok 178 verify that isn't tainted
ok 179 verify that isn't tainted
ok 180 verify that isn't tainted
ok 181 verify that isn't tainted
ok 182 verify that isn't tainted
ok 183 verify that isn't tainted
ok 184 verify that isn't tainted
ok 185 verify that isn't tainted
ok 186 verify that isn't tainted
ok 187 verify that isn't tainted
ok 188 verify that isn't tainted
ok 189 verify that isn't tainted
ok 190 verify that isn't tainted
ok 191 verify that isn't tainted
ok 192 verify that isn't tainted
ok 193 verify that isn't tainted
ok 194 verify that isn't tainted
ok 195 verify that isn't tainted
ok 196 verify that isn't tainted
ok 197 verify that isn't tainted
ok 198 verify that isn't tainted
ok 199 verify that isn't tainted
ok 200 verify that isn't tainted
ok 201 verify that isn't tainted
ok 202 verify that isn't tainted
ok 203 verify that isn't tainted
ok 204 verify that isn't tainted
ok 205 verify that isn't tainted
ok 206 verify that isn't tainted
ok 207 verify that isn't tainted
ok 208 verify that isn't tainted
ok 209 verify that isn't tainted
ok 210 verify that isn't tainted
ok 211 verify that isn't tainted
ok 212 verify that isn't tainted
ok 213 verify that isn't tainted
ok 214 verify that isn't tainted
ok 215 verify that isn't tainted
ok 216 verify that isn't tainted
ok 217 verify that isn't tainted
ok 218 verify that isn't tainted
ok 219 verify that isn't tainted
ok 220 verify that isn't tainted
ok 221 verify that isn't tainted
ok 222 verify that isn't tainted
ok 223 verify that isn't tainted
ok 224 verify that isn't tainted
ok 225 verify that isn't tainted
ok 226 verify that isn't tainted
ok 227 verify that isn't tainted
ok 228 verify that isn't tainted
ok 229 verify that isn't tainted
ok 230 verify that isn't tainted
ok 231 verify that isn't tainted
ok 232 verify that isn't tainted
ok 233 verify that isn't tainted
ok 234 verify that isn't tainted
ok 235 verify that isn't tainted
ok 236 verify that isn't tainted
ok 237 verify that isn't tainted
ok 238 verify that isn't tainted
ok 239 verify that isn't tainted
ok 240 verify that isn't tainted
ok 241 verify that isn't tainted
ok 242 verify that isn't tainted
ok 243 verify that isn't tainted
ok 244 verify that isn't tainted
ok 245 verify that isn't tainted
ok 246 verify that isn't tainted
ok 247 verify that isn't tainted
ok 248 verify that isn't tainted
ok 249 verify that isn't tainted
ok 250 verify that isn't tainted
ok 251 verify that isn't tainted
ok 252 verify that isn't tainted
ok 253 verify that isn't tainted
ok 254 verify that isn't tainted
ok 255 verify that isn't tainted​: "a" =~ /([a-z])/
ok 256 verify that isn't tainted​: "foo.bar_baz" =~ /^(.*)[._](.*?)$/
ok 257 Verify that /[[​:upper​:]]/ matches all alpha X for which uc(X) == X and lc(X) != X
ok 258 Verify that /[[​:lower​:]]/i matches all alpha X for which uc(X) == X and lc(X) != X
ok 259 Verify that /[[​:lower​:]]/ matches all alpha X for which lc(X) == X and uc(X) != X
ok 260 Verify that /[[​:upper​:]]/i matches all alpha X for which lc(X) == X and uc(X) != X
ok 261 Verify that \w and [​:word​:] are identical
ok 262 Verify that \d and [​:digit​:] are identical
ok 263 Verify that \s and [​:space​:] are identical
ok 264 Verify that [​:posix​:] and [​:^posix​:] are mutually exclusive
ok 265 Verify that [​:lower​:] contains at least a-z
ok 266 Verify that [​:lower​:] is a subset of [​:alpha​:]
ok 267 Verify that [​:upper​:] contains at least A-Z
ok 268 Verify that [​:upper​:] is a subset of [​:alpha​:]
ok 269 Verify that /[[​:lower​:]]/i is a subset of [​:alpha​:]
ok 270 Verify that [​:alpha​:] is a subset of [​:alnum​:]
ok 271 Verify that [​:digit​:] contains at least 0-9
ok 272 Verify that [​:digit​:] is a subset of [​:alnum​:]
# 27.8% of locales pass the following test, so it is likely that the failures
# are errors in the locale definitions. The test is marked TODO, as the
# problem is not likely to be Perl's
#
# For more details, rerun, with environment variable PERL_DEBUG_FULL_TEST=1.
# Then look at that output for lines that match 'failed 273'
not ok 273 Verify that [​:digit​:] matches either 10 or 20 code points # TODO
ok 274 Verify that if there is a second set of digits in [​:digit​:], they are consecutive
ok 275 Verify that [​:xdigit​:] contains one or two blocks of 10 consecutive [​:digit​:] chars
ok 276 Verify that [​:xdigit​:] contains at least A-F, a-f
ok 277 Verify that any additional members of [​:xdigit​:], are in groups of 6 consecutive code points
ok 278 Verify that [​:xdigit​:] is a subset of [​:graph​:]
ok 279 Verify that [​:punct​:] is a subset of [​:graph​:]
ok 280 Verify that the space character is not in [​:graph​:]
ok 281 Verify that [​:space​:] contains at least [\f\n\r\t\cK ]
ok 282 Verify that [​:blank​:] contains at least [\t ]
ok 283 Verify that [​:blank​:] is a subset of [​:space​:]
ok 284 Verify that [​:graph​:] is a subset of [​:print​:]
ok 285 Verify that the space character is in [​:print​:]
# 2.8% of locales pass the following test, so it is likely that the failures
# are errors in the locale definitions. The test is marked TODO, as the
# problem is not likely to be Perl's
#
# For more details, rerun, with environment variable PERL_DEBUG_FULL_TEST=1.
# Then look at that output for lines that match 'failed 286'
not ok 286 Verify that isn't both [​:cntrl​:] and [​:print​:] # TODO
ok 287 Verify that isn't both [​:alpha​:] and [​:digit​:]
# 2.8% of locales pass the following test, so it is likely that the failures
# are errors in the locale definitions. The test is marked TODO, as the
# problem is not likely to be Perl's
#
# For more details, rerun, with environment variable PERL_DEBUG_FULL_TEST=1.
# Then look at that output for lines that match 'failed 288'
not ok 288 Verify that isn't both [​:alnum​:] and [​:punct​:] # TODO
ok 289 Verify that isn't both [​:xdigit​:] and [​:punct​:]
ok 290 Verify that isn't both [​:graph​:] and [​:space​:]
ok 291 Verify that cmp works with a read-only scalar; no- vs locale
ok 292 Verify that "le", "ne", etc work
ok 293 Verify that an intervening printf doesn't change assignment results
ok 294 Verify that an intervening sprintf doesn't change assignment results
ok 295 Verify that a different locale radix works when doing "==" with a constant
ok 296 Verify that a different locale radix works when doing "==" with a scalar
ok 297 Verify that a different locale radix works when doing "==" with a scalar and an intervening sprintf
ok 298 Verify that can assign stringified under inner no-locale block
ok 299 Verify that "==" with a scalar still works in inner no locale
ok 300 Verify that "==" with a scalar and an intervening sprintf still works in inner no locale
ok 301 Verify that after a no-locale block, a different locale radix still works when doing "==" with a constant
ok 302 Verify that after a no-locale block, a different locale radix still works when doing "==" with a scalar
ok 303 Verify that after a no-locale block, a different locale radix still works when doing "==" with a scalar and an intervening sprintf
ok 304 Verify that after a no-locale block, a different locale radix can participate in an addition and function call as numeric
ok 305 Verify that don't get warning under "==" even if radix is not a dot
ok 306 Verify that non-ASCII UTF-8 error messages are in UTF-8
ok 307 Verify that a number with a UTF-8 radix has a UTF-8 stringification
ok 308 Verify that a sprintf of a number with a UTF-8 radix yields UTF-8
ok 309 Verify that a sprintf of a number outside locale scope uses a dot radix
ok 310 Verify that a sprintf of a number back within locale scope uses locale radix
ok 311 Verify "lc(foo) cmp lc(bar)" is the same as using intermediaries for the cmp
ok 312 Verify case insensitive matching works
ok 313 Verify atof with locale radix and negative exponent
ok 314 variable set to setlocale(BAD LOCALE) is considered uninitialized
ok 315 uc("") in C locale (use locale; not encoded in utf8) should be "", got ""
ok 316 verify that is tainted
ok 317 uc("") in C locale (use locale; encoded in utf8) should be "", got ""
ok 318 verify that is tainted
ok 319 uc("a") in C locale (use locale; not encoded in utf8) should be "A", got "A"
ok 320 verify that is tainted
ok 321 uc("a") in C locale (use locale; encoded in utf8) should be "A", got "A"
ok 322 verify that is tainted
ok 323 uc("à") in C locale (use locale; not encoded in utf8) should be "à", got "à"
ok 324 verify that is tainted
ok 325 uc("à") in C locale (use locale; encoded in utf8) should be "à", got "à"
ok 326 verify that is tainted
ok 327 uc("ÿ") in C locale (use locale; not encoded in utf8) should be "ÿ", got "ÿ"
ok 328 verify that is tainted
ok 329 uc("ÿ") in C locale (use locale; encoded in utf8) should be "ÿ", got "ÿ"
ok 330 verify that is tainted
ok 331 uc("ff") in C locale (use locale; not encoded in utf8) should be "ff", got "ff"
ok 332 verify that is tainted
ok 333 uc("ff") in C locale (use locale; encoded in utf8) should be "ff", got "ff"
ok 334 verify that is tainted
ok 335 uc("ʼn") in C locale (use locale; not encoded in utf8) should be "ʼn", got "ʼn"
ok 336 verify that is tainted
ok 337 uc("ʼn") in C locale (use locale; encoded in utf8) should be "ʼn", got "ʼn"
ok 338 verify that is tainted
ok 339 uc("�") in C locale (use locale; not encoded in utf8) should be "Ā", got "Ā"
ok 340 verify that is tainted
ok 341 uc("�") in C locale (use locale; encoded in utf8) should be "Ā", got "Ā"
ok 342 verify that is tainted
ok 343 uc("") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "", got ""
ok 344 verify that isn't tainted
ok 345 uc("") in C locale (use locale '​:not_characters'; encoded in utf8) should be "", got ""
ok 346 verify that isn't tainted
ok 347 uc("a") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "A", got "A"
ok 348 verify that isn't tainted
ok 349 uc("a") in C locale (use locale '​:not_characters'; encoded in utf8) should be "A", got "A"
ok 350 verify that isn't tainted
ok 351 uc("à") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "À", got "À"
ok 352 verify that isn't tainted
ok 353 uc("à") in C locale (use locale '​:not_characters'; encoded in utf8) should be "À", got "À"
ok 354 verify that isn't tainted
ok 355 uc("ÿ") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "Ÿ", got "Ÿ"
ok 356 verify that isn't tainted
ok 357 uc("ÿ") in C locale (use locale '​:not_characters'; encoded in utf8) should be "Ÿ", got "Ÿ"
ok 358 verify that isn't tainted
ok 359 uc("ff") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "FF", got "FF"
ok 360 verify that isn't tainted
ok 361 uc("ff") in C locale (use locale '​:not_characters'; encoded in utf8) should be "FF", got "FF"
ok 362 verify that isn't tainted
ok 363 uc("ʼn") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "ʼN", got "ʼN"
ok 364 verify that isn't tainted
ok 365 uc("ʼn") in C locale (use locale '​:not_characters'; encoded in utf8) should be "ʼN", got "ʼN"
ok 366 verify that isn't tainted
ok 367 uc("Ä�") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "Ä€", got "Ä€"
ok 368 verify that isn't tainted
ok 369 uc("Ä�") in C locale (use locale '​:not_characters'; encoded in utf8) should be "Ä€", got "Ä€"
ok 370 verify that isn't tainted
ok 371 ucfirst("") in C locale (use locale; not encoded in utf8) should be "", got ""
ok 372 verify that is tainted
ok 373 ucfirst("") in C locale (use locale; encoded in utf8) should be "", got ""
ok 374 verify that is tainted
ok 375 ucfirst("a") in C locale (use locale; not encoded in utf8) should be "A", got "A"
ok 376 verify that is tainted
ok 377 ucfirst("a") in C locale (use locale; encoded in utf8) should be "A", got "A"
ok 378 verify that is tainted
ok 379 ucfirst("à") in C locale (use locale; not encoded in utf8) should be "à", got "à"
ok 380 verify that is tainted
ok 381 ucfirst("à") in C locale (use locale; encoded in utf8) should be "à", got "à"
ok 382 verify that is tainted
ok 383 ucfirst("ÿ") in C locale (use locale; not encoded in utf8) should be "ÿ", got "ÿ"
ok 384 verify that is tainted
ok 385 ucfirst("ÿ") in C locale (use locale; encoded in utf8) should be "ÿ", got "ÿ"
ok 386 verify that is tainted
ok 387 ucfirst("ff") in C locale (use locale; not encoded in utf8) should be "ff", got "ff"
ok 388 verify that is tainted
ok 389 ucfirst("ff") in C locale (use locale; encoded in utf8) should be "ff", got "ff"
ok 390 verify that is tainted
ok 391 ucfirst("ʼn") in C locale (use locale; not encoded in utf8) should be "ʼn", got "ʼn"
ok 392 verify that is tainted
ok 393 ucfirst("ʼn") in C locale (use locale; encoded in utf8) should be "ʼn", got "ʼn"
ok 394 verify that is tainted
ok 395 ucfirst("�") in C locale (use locale; not encoded in utf8) should be "Ā", got "Ā"
ok 396 verify that is tainted
ok 397 ucfirst("�") in C locale (use locale; encoded in utf8) should be "Ā", got "Ā"
ok 398 verify that is tainted
ok 399 ucfirst("") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "", got ""
ok 400 verify that isn't tainted
ok 401 ucfirst("") in C locale (use locale '​:not_characters'; encoded in utf8) should be "", got ""
ok 402 verify that isn't tainted
ok 403 ucfirst("a") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "A", got "A"
ok 404 verify that isn't tainted
ok 405 ucfirst("a") in C locale (use locale '​:not_characters'; encoded in utf8) should be "A", got "A"
ok 406 verify that isn't tainted
ok 407 ucfirst("à") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "À", got "À"
ok 408 verify that isn't tainted
ok 409 ucfirst("à") in C locale (use locale '​:not_characters'; encoded in utf8) should be "À", got "À"
ok 410 verify that isn't tainted
ok 411 ucfirst("ÿ") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "Ÿ", got "Ÿ"
ok 412 verify that isn't tainted
ok 413 ucfirst("ÿ") in C locale (use locale '​:not_characters'; encoded in utf8) should be "Ÿ", got "Ÿ"
ok 414 verify that isn't tainted
ok 415 ucfirst("ff") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "Ff", got "Ff"
ok 416 verify that isn't tainted
ok 417 ucfirst("ff") in C locale (use locale '​:not_characters'; encoded in utf8) should be "Ff", got "Ff"
ok 418 verify that isn't tainted
ok 419 ucfirst("ʼn") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "ʼN", got "ʼN"
ok 420 verify that isn't tainted
ok 421 ucfirst("ʼn") in C locale (use locale '​:not_characters'; encoded in utf8) should be "ʼN", got "ʼN"
ok 422 verify that isn't tainted
ok 423 ucfirst("Ä�") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "Ä€", got "Ä€"
ok 424 verify that isn't tainted
ok 425 ucfirst("Ä�") in C locale (use locale '​:not_characters'; encoded in utf8) should be "Ä€", got "Ä€"
ok 426 verify that isn't tainted
ok 427 lc("") in C locale (use locale; not encoded in utf8) should be "", got ""
ok 428 verify that is tainted
ok 429 lc("") in C locale (use locale; encoded in utf8) should be "", got ""
ok 430 verify that is tainted
ok 431 lc("A") in C locale (use locale; not encoded in utf8) should be "a", got "a"
ok 432 verify that is tainted
ok 433 lc("A") in C locale (use locale; encoded in utf8) should be "a", got "a"
ok 434 verify that is tainted
ok 435 lc("À") in C locale (use locale; not encoded in utf8) should be "À", got "À"
ok 436 verify that is tainted
ok 437 lc("À") in C locale (use locale; encoded in utf8) should be "À", got "À"
ok 438 verify that is tainted
ok 439 lc("Å¿") in C locale (use locale; not encoded in utf8) should be "Å¿", got "Å¿"
ok 440 verify that is tainted
ok 441 lc("Å¿") in C locale (use locale; encoded in utf8) should be "Å¿", got "Å¿"
ok 442 verify that is tainted
ok 443 lc("Ā") in C locale (use locale; not encoded in utf8) should be "�", got "�"
ok 444 verify that is tainted
ok 445 lc("Ā") in C locale (use locale; encoded in utf8) should be "�", got "�"
ok 446 verify that is tainted
ok 447 lc("") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "", got ""
ok 448 verify that isn't tainted
ok 449 lc("") in C locale (use locale '​:not_characters'; encoded in utf8) should be "", got ""
ok 450 verify that isn't tainted
ok 451 lc("A") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "a", got "a"
ok 452 verify that isn't tainted
ok 453 lc("A") in C locale (use locale '​:not_characters'; encoded in utf8) should be "a", got "a"
ok 454 verify that isn't tainted
ok 455 lc("À") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "à", got "à"
ok 456 verify that isn't tainted
ok 457 lc("À") in C locale (use locale '​:not_characters'; encoded in utf8) should be "à", got "à"
ok 458 verify that isn't tainted
ok 459 lc("Å¿") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "Å¿", got "Å¿"
ok 460 verify that isn't tainted
ok 461 lc("Å¿") in C locale (use locale '​:not_characters'; encoded in utf8) should be "Å¿", got "Å¿"
ok 462 verify that isn't tainted
ok 463 lc("Ä€") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "Ä�", got "Ä�"
ok 464 verify that isn't tainted
ok 465 lc("Ä€") in C locale (use locale '​:not_characters'; encoded in utf8) should be "Ä�", got "Ä�"
ok 466 verify that isn't tainted
ok 467 lcfirst("") in C locale (use locale; not encoded in utf8) should be "", got ""
ok 468 verify that is tainted
ok 469 lcfirst("") in C locale (use locale; encoded in utf8) should be "", got ""
ok 470 verify that is tainted
ok 471 lcfirst("A") in C locale (use locale; not encoded in utf8) should be "a", got "a"
ok 472 verify that is tainted
ok 473 lcfirst("A") in C locale (use locale; encoded in utf8) should be "a", got "a"
ok 474 verify that is tainted
ok 475 lcfirst("À") in C locale (use locale; not encoded in utf8) should be "À", got "À"
ok 476 verify that is tainted
ok 477 lcfirst("À") in C locale (use locale; encoded in utf8) should be "À", got "À"
ok 478 verify that is tainted
ok 479 lcfirst("Å¿") in C locale (use locale; not encoded in utf8) should be "Å¿", got "Å¿"
ok 480 verify that is tainted
ok 481 lcfirst("Å¿") in C locale (use locale; encoded in utf8) should be "Å¿", got "Å¿"
ok 482 verify that is tainted
ok 483 lcfirst("Ā") in C locale (use locale; not encoded in utf8) should be "�", got "�"
ok 484 verify that is tainted
ok 485 lcfirst("Ā") in C locale (use locale; encoded in utf8) should be "�", got "�"
ok 486 verify that is tainted
ok 487 lcfirst("") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "", got ""
ok 488 verify that isn't tainted
ok 489 lcfirst("") in C locale (use locale '​:not_characters'; encoded in utf8) should be "", got ""
ok 490 verify that isn't tainted
ok 491 lcfirst("A") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "a", got "a"
ok 492 verify that isn't tainted
ok 493 lcfirst("A") in C locale (use locale '​:not_characters'; encoded in utf8) should be "a", got "a"
ok 494 verify that isn't tainted
ok 495 lcfirst("À") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "à", got "à"
ok 496 verify that isn't tainted
ok 497 lcfirst("À") in C locale (use locale '​:not_characters'; encoded in utf8) should be "à", got "à"
ok 498 verify that isn't tainted
ok 499 lcfirst("Å¿") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "Å¿", got "Å¿"
ok 500 verify that isn't tainted
ok 501 lcfirst("Å¿") in C locale (use locale '​:not_characters'; encoded in utf8) should be "Å¿", got "Å¿"
ok 502 verify that isn't tainted
ok 503 lcfirst("Ä€") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "Ä�", got "Ä�"
ok 504 verify that isn't tainted
ok 505 lcfirst("Ä€") in C locale (use locale '​:not_characters'; encoded in utf8) should be "Ä�", got "Ä�"
ok 506 verify that isn't tainted
ok 507 fc("") in C locale (use locale; not encoded in utf8) should be "", got ""
ok 508 verify that is tainted
ok 509 fc("") in C locale (use locale; encoded in utf8) should be "", got ""
ok 510 verify that is tainted
ok 511 fc("A") in C locale (use locale; not encoded in utf8) should be "a", got "a"
ok 512 verify that is tainted
ok 513 fc("A") in C locale (use locale; encoded in utf8) should be "a", got "a"
ok 514 verify that is tainted
ok 515 fc("À") in C locale (use locale; not encoded in utf8) should be "À", got "À"
ok 516 verify that is tainted
ok 517 fc("À") in C locale (use locale; encoded in utf8) should be "À", got "À"
ok 518 verify that is tainted
ok 519 fc("Å¿") in C locale (use locale; not encoded in utf8) should be "Å¿", got "Å¿"
ok 520 verify that is tainted
ok 521 fc("Å¿") in C locale (use locale; encoded in utf8) should be "Å¿", got "Å¿"
ok 522 verify that is tainted
ok 523 fc("Ā") in C locale (use locale; not encoded in utf8) should be "�", got "�"
ok 524 verify that is tainted
ok 525 fc("Ā") in C locale (use locale; encoded in utf8) should be "�", got "�"
ok 526 verify that is tainted
ok 527 fc("") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "", got ""
ok 528 verify that isn't tainted
ok 529 fc("") in C locale (use locale '​:not_characters'; encoded in utf8) should be "", got ""
ok 530 verify that isn't tainted
ok 531 fc("A") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "a", got "a"
ok 532 verify that isn't tainted
ok 533 fc("A") in C locale (use locale '​:not_characters'; encoded in utf8) should be "a", got "a"
ok 534 verify that isn't tainted
ok 535 fc("À") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "à", got "à"
ok 536 verify that isn't tainted
ok 537 fc("À") in C locale (use locale '​:not_characters'; encoded in utf8) should be "à", got "à"
ok 538 verify that isn't tainted
ok 539 fc("Å¿") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "s", got "s"
ok 540 verify that isn't tainted
ok 541 fc("Å¿") in C locale (use locale '​:not_characters'; encoded in utf8) should be "s", got "s"
ok 542 verify that isn't tainted
ok 543 fc("Ä€") in C locale (use locale '​:not_characters'; not encoded in utf8) should be "Ä�", got "Ä�"
ok 544 verify that isn't tainted
ok 545 fc("Ä€") in C locale (use locale '​:not_characters'; encoded in utf8) should be "Ä�", got "Ä�"
ok 546 verify that isn't tainted
#
# The locale definitions
#
# Afrikaans American Basque Catalan Danish Dutch English
# Estonian Faroese Finnish French Galician German Greek
# Icelandic Indonesian Italian Latvian Lithuanian Maltese
# Norwegian Portuguese Spanish Swedish Turkish Welsh
#
# on your system may have errors because the locale test 273
# "Verify that [​:digit​:] matches either 10 or 20 code points"
# failed in those locales.
#
# If your users are not using these locales you are safe for the moment,
# but please report this failure first to perlbug@​perl.com using the
# perlbug script (as described in the INSTALL file) so that the exact
# details of the failures can be sorted out first and then your operating
# system supplier can be alerted about these anomalies.
#
#
# The locale definitions
#
# Afrikaans Albanian American Basque Bulgarian Catalan
# Croatian Czech Danish Dutch English Estonian Faroese Finnish
# French Galician German Greek Hungarian Icelandic Indonesian
# Italian Latvian Lithuanian Maltese Norwegian Polish
# Portuguese Russian Slovak Slovenian Spanish Swedish Turkish
# Welsh
#
# on your system may have errors because the locale test 286
# "Verify that isn't both [​:cntrl​:] and [​:print​:]"
# failed in those locales.
#
# If your users are not using these locales you are safe for the moment,
# but please report this failure first to perlbug@​perl.com using the
# perlbug script (as described in the INSTALL file) so that the exact
# details of the failures can be sorted out first and then your operating
# system supplier can be alerted about these anomalies.
#
#
# The locale definitions
#
# Afrikaans Albanian American Basque Bulgarian Catalan
# Croatian Czech Danish Dutch English Estonian Faroese Finnish
# French Galician German Greek Hungarian Icelandic Indonesian
# Italian Latvian Lithuanian Maltese Norwegian Polish
# Portuguese Russian Slovak Slovenian Spanish Swedish Turkish
# Welsh
#
# on your system may have errors because the locale test 288
# "Verify that isn't both [​:alnum​:] and [​:punct​:]"
# failed in those locales.
#
# If your users are not using these locales you are safe for the moment,
# but please report this failure first to perlbug@​perl.com using the
# perlbug script (as described in the INSTALL file) so that the exact
# details of the failures can be sorted out first and then your operating
# system supplier can be alerted about these anomalies.
#
# The following locales
#
# C
#
# tested okay.
#
# The following locales
#
# Afrikaans Albanian American Basque Bulgarian Catalan
# Croatian Czech Danish Dutch English Estonian Faroese Finnish
# French Galician German Greek Hungarian Icelandic Indonesian
# Italian Latvian Lithuanian Maltese Norwegian Polish
# Portuguese Russian Slovak Slovenian Spanish Swedish Turkish
# Welsh
#
# had problems.
#
# For more details, rerun, with environment variable PERL_DEBUG_FULL_TEST=1.
1..546
ok
All tests successful.
Files=1, Tests=546, 4 wallclock secs ( 0.12 usr + 0.00 sys = 0.12 CPU)
Result​: PASS


looks fine now

--
bulk88 ~ bulk88 at hotmail.com

@p5pRT
Copy link
Author

p5pRT commented Mar 13, 2014

From @khwilliamson

Fixed by commit a5cf558
--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Mar 13, 2014

@khwilliamson - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant