perl5 icon indicating copy to clipboard operation
perl5 copied to clipboard

Error during 5.40.2 installation on MacBook, `--force` flag does not work also

Open KES777 opened this issue 6 months ago • 8 comments

Description

\curl -L https://install.perlbrew.pl | bash
perlbrew install perl-5.40.2
....
../lib/less.t ........................................................ ok
Assertion failed: (p->val == key), function lookup_substsearch, file collate.c, line 596.
../lib/locale.t ......................................................
All 382 subtests passed
Test Summary Report
-------------------
../lib/locale.t                                                    (Wstat: 6 (Signal: ABRT) Tests: 382 Failed: 0)
  Non-zero wait status: 6
  Parse errors: No plan found in TAP output
Files=2892, Tests=1185362, 564 wallclock secs (21.69 usr  4.84 sys + 211.73 cusr 32.51 csys = 270.77 CPU)
Result: FAIL
Finished test run at Wed Jun 11 22:00:36 2025.

even --force flag does not help:


$ perlbrew --force install perl-5.40.2
Installing /Users/ek-mac/perl5/perlbrew/build/perl-5.40.2/perl-5.40.2 into ~/perl5/perlbrew/perls/perl-5.40.2

This could take a while. You can run the following command on another shell to track the status:

  tail -f ~/perl5/perlbrew/build.perl-5.40.2.log

Installation process failed. To spot any issues, check

  /Users/ek-mac/perl5/perlbrew/build.perl-5.40.2.log

If some perl tests failed and you still want to install this distribution anyway,
do:

  (cd /Users/ek-mac/perl5/perlbrew/build/perl-5.40.2/perl-5.40.2; make install)

You might also want to try upgrading patchperl before trying again:

  perlbrew install-patchperl

Generally, if you need to install a perl distribution known to have minor test
failures, do one of these commands to avoid seeing this message:

  perlbrew --notest install perl-5.40.2
  perlbrew --force install perl-5.40.2

$ perlbrew list
* perl-5.40.0
$ perlbrew use perl-5.40.2

ERROR: The installation "perl-5.40.2" is unknown.

Steps to Reproduce See above

Expected behavior tests should not fail. Even if they fail --force flag should work.

Perl configuration Not installed yet.

KES777 avatar Jun 12 '25 02:06 KES777

Your bug report appears to conflate two distinct problems: a test failure in lib/locale.t; an installation failure in the perlbrew utility. In this repository we can only handle the former. For the perlbrew problem you will have to go to that program's bug tracker, as you have done.

As to the former, please try to reproduce this test failure by building a perl either from a tarball release of the Perl 5 core distribution or from a git checkout blead from this repository. In either case, please provide the output of a simple build ... something like this:

$ sh ./Configure -des -Dusedevel && make test_prep
$ ./perl -Ilib -V
$ cd t; ./perl harness -v ../lib/locale.t; cd -

jkeenan avatar Jun 12 '25 10:06 jkeenan

I get the same error on a MacBook Air 15", M2, 2023 with macOS 15.5 when trying your above simple build and the tarball release of Perl 5.40.2.

Test Summary Report
-------------------
../lib/locale.t (Wstat: 6 (Signal: ABRT) Tests: 382 Failed: 0)
  Non-zero wait status: 6
  Parse errors: No plan found in TAP output
Files=1, Tests=382,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.13 cusr  0.06 csys =  0.21 CPU)
Result: FAIL

simplebuild.txt

gottesknecht avatar Jun 12 '25 20:06 gottesknecht

I get the same error on a MacBook Air 15", M2, 2023 with macOS 15.5 when trying your above simple build and the tarball release of Perl 5.40.2.

Test Summary Report
-------------------
../lib/locale.t (Wstat: 6 (Signal: ABRT) Tests: 382 Failed: 0)
  Non-zero wait status: 6
  Parse errors: No plan found in TAP output
Files=1, Tests=382,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.13 cusr  0.06 csys =  0.21 CPU)
Result: FAIL

simplebuild.txt

In the file to which you linked, I see:

Assertion failed: (p->val == key), function lookup_substsearch, file collate.c, line 596.
All 382 subtests passed 

Test Summary Report
-------------------
../lib/locale.t (Wstat: 6 (Signal: ABRT) Tests: 382 Failed: 0)
  Non-zero wait status: 6
  Parse errors: No plan found in TAP output

I suspect a segfault. However, I can't find the string lookup_substsearch or the file collate.c anywhere in the Perl core distribution. Searching on DDG I find these 2 links:

https://developer.apple.com/forums/thread/785610 https://github.com/cmus/cmus/issues/1421

Each of these is Apple-specific. Might they be relevant?

@khwilliamson, any thoughts?

jkeenan avatar Jun 12 '25 21:06 jkeenan

I get the same error on a MacBook Air 15", M2, 2023 with macOS 15.5 when trying your above simple build and the tarball release of Perl 5.40.2.

Test Summary Report
-------------------
../lib/locale.t (Wstat: 6 (Signal: ABRT) Tests: 382 Failed: 0)
  Non-zero wait status: 6
  Parse errors: No plan found in TAP output
Files=1, Tests=382,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.13 cusr  0.06 csys =  0.21 CPU)
Result: FAIL

simplebuild.txt

Can you show the output of locale on your machine?

jkeenan avatar Jun 12 '25 21:06 jkeenan

See 9e3a653228878bbc9f77418c7827b99438875f9e. Does that fix need backporting to 5.40.x?

thesamesam avatar Jun 12 '25 21:06 thesamesam

@jkeenan thanks for finding that Apple forum post, which is highly relevant. I have added a (somewhat bitter) message to it, including that Apple has the worst locale support of any major OS vendor.

@thesamesam , yes a modification to that fix likely will fix this issue. I had thought that the issue was introduced by our upgrading to Unicode 16.0; simply because that's when we started seeing the problem. But it now appears that it is caused by a change in MacOS 15.x, for a so-far undetermined value of 'x'.

Attached is that modified patch.

patch.txt

khwilliamson avatar Jun 13 '25 14:06 khwilliamson

My locale:

$ locale
LANG="en_CA.UTF-8"
LC_COLLATE="en_CA.UTF-8"
LC_CTYPE="en_CA.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_TIME="en_CA.UTF-8"
LC_ALL=

bleed 8c71d4a0b5

perl -Ilib -V
$ ./perl -Ilib -V
Summary of my perl5 (revision 5 version 41 subversion 14) configuration:
  Commit id: 8c71d4a0b542607dbfe67a67fc2fee44f2452d5d
  Platform:
    osname=darwin
    osvers=24.5.0
    archname=darwin-2level
    uname='darwin mac 24.5.0 darwin kernel version 24.5.0: tue apr 22 19:54:29 pdt 2025; root:xnu-11417.121.6~2release_arm64_t6030 arm64 arm darwin '
    config_args='-des -Dusedevel'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='cc'
    ccflags ='-fno-common -DPERL_DARWIN -DNO_THREAD_SAFE_QUERYLOCALE -DNO_POSIX_2008_LOCALE -DHAS_BROKEN_LANGINFO_CODESET -DNO_LOCALE_COLLATE -fno-strict-aliasing -pipe -fstack-protector-strong'
    optimize='-O3'
    cppflags='-fno-common -DPERL_DARWIN -DNO_THREAD_SAFE_QUERYLOCALE -DNO_POSIX_2008_LOCALE -DHAS_BROKEN_LANGINFO_CODESET -DNO_LOCALE_COLLATE -fno-strict-aliasing -pipe -fstack-protector-strong'
    ccversion=''
    gccversion='Apple LLVM 17.0.0 (clang-1700.0.13.5)'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=8
    longdblkind=0
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -fstack-protector-strong'
    libpth=/Library/Developer/CommandLineTools/usr/lib/clang/17/lib /Library/Developer/CommandLineTools/SDKs/MacOSX15.5.sdk/usr/lib /Library/Developer/CommandLineTools/usr/lib /usr/lib
    libs=
    perllibs=
    libc=
    so=dylib
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=bundle
    d_dlsymun=undef
    ccdlflags=' '
    cccdlflags=' '
    lddlflags='-bundle -undefined dynamic_lookup -fstack-protector-strong'


Characteristics of this binary (from libperl):
  Compile-time options:
    HAS_LONG_DOUBLE
    HAS_STRTOLD
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_SIPHASH13
    PERL_HASH_USE_SBOX32
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_DEVEL
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
  Built under darwin
  Compiled at Jun 13 2025 13:26:56
  %ENV:
    PERLBREW="command perlbrew"
    PERLBREW_HOME="/Users/ek-mac/.perlbrew"
    PERLBREW_MANPATH="/Users/ek-mac/perl5/perlbrew/perls/perl-5.40.0/man"
    PERLBREW_PATH="/Users/ek-mac/perl5/perlbrew/bin:/Users/ek-mac/perl5/perlbrew/perls/perl-5.40.0/bin"
    PERLBREW_PERL="perl-5.40.0"
    PERLBREW_ROOT="/Users/ek-mac/perl5/perlbrew"
    PERLBREW_SHELLRC_VERSION="1.01"
    PERLBREW_VERSION="1.01"
  @INC:
    lib
    /usr/local/lib/perl5/site_perl/5.41.14/darwin-2level
    /usr/local/lib/perl5/site_perl/5.41.14
    /usr/local/lib/perl5/5.41.14/darwin-2level
    /usr/local/lib/perl5/5.41.14
perl locale.t
$ cd t; ./perl harness -v ../lib/locale.t; cd -
../lib/locale.t ..
ok 1 Verify locales_enabled('ALL') returns 0 or 1
ok 2    and locales_enabled('LC_ALL') returns the same value
ok 3 Verify locales_enabled('COLLATE') returns 0 or 1
ok 4    and locales_enabled('LC_COLLATE') returns the same value
ok 5 Verify locales_enabled('CTYPE') returns 0 or 1
ok 6    and locales_enabled('LC_CTYPE') returns the same value
ok 7 Verify locales_enabled('MESSAGES') returns 0 or 1
ok 8    and locales_enabled('LC_MESSAGES') returns the same value
ok 9 Verify locales_enabled('MONETARY') returns 0 or 1
ok 10    and locales_enabled('LC_MONETARY') returns the same value
ok 11 Verify locales_enabled('NUMERIC') returns 0 or 1
ok 12    and locales_enabled('LC_NUMERIC') returns the same value
ok 13 Verify locales_enabled('TIME') returns 0 or 1
ok 14    and locales_enabled('LC_TIME') returns the same value
ok 15 verify that isn't tainted:  not tainted outside 'use locale'
ok 16 verify that isn't tainted:  $a
ok 17 verify that is tainted:     uc($a)
ok 18 verify that is tainted:     "\U$a"
ok 19 verify that is tainted:     ucfirst($a)
ok 20 verify that is tainted:     "\u$a"
ok 21 verify that is tainted:     lc($a)
ok 22 verify that is tainted:     fc($a)
ok 23 verify that is tainted:     "\L$a"
ok 24 verify that is tainted:     "\F$a"
ok 25 verify that is tainted:     lcfirst($a)
ok 26 verify that is tainted:     "\l$a"
ok 27 verify that isn't tainted:  sprintf('%e', 123.456)
ok 28 verify that isn't tainted:  sprintf('%f', 123.456)
ok 29 verify that isn't tainted:  sprintf('%g', 123.456)
ok 30 verify that isn't tainted:  sprintf('%d', 123.456)
ok 31 verify that isn't tainted:  sprintf('%x', 123.456)
ok 32 verify that is tainted:     $_ = uc($a)
ok 33 verify that is tainted:     $& from /(\w)/
ok 34 verify that is tainted:     	$`
ok 35 verify that is tainted:     	$'
ok 36 verify that is tainted:     	$+
ok 37 verify that is tainted:     	$1
ok 38 verify that isn't tainted:  	$2
ok 39 verify that isn't tainted:  $& from /(.)/
ok 40 verify that isn't tainted:  	$`
ok 41 verify that isn't tainted:  	$'
ok 42 verify that isn't tainted:  	$+
ok 43 verify that isn't tainted:  	$1
ok 44 verify that isn't tainted:  	$2
ok 45 verify that is tainted:     $& from /(\W)/
ok 46 verify that is tainted:     	$`
ok 47 verify that is tainted:     	$'
ok 48 verify that is tainted:     	$+
ok 49 verify that is tainted:     	$1
ok 50 verify that isn't tainted:  	$2
ok 51 verify that isn't tainted:  $& from /(.)/
ok 52 verify that isn't tainted:  	$`
ok 53 verify that isn't tainted:  	$'
ok 54 verify that isn't tainted:  	$+
ok 55 verify that isn't tainted:  	$1
ok 56 verify that isn't tainted:  	$2
ok 57 verify that is tainted:     $& from /(\s)/
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 verify that isn't tainted:  	$2
ok 63 verify that isn't tainted:  $& from /(.)/
ok 64 verify that is tainted:     $& from /(\S)/
ok 65 verify that is tainted:     	$`
ok 66 verify that is tainted:     	$'
ok 67 verify that is tainted:     	$+
ok 68 verify that is tainted:     	$1
ok 69 verify that isn't tainted:  	$2
ok 70 verify that isn't tainted:  $& from /(.)/
ok 71 verify that is tainted:     $& from /(\d)/
ok 72 verify that is tainted:     	$`
ok 73 verify that is tainted:     	$'
ok 74 verify that is tainted:     	$+
ok 75 verify that is tainted:     	$1
ok 76 verify that isn't tainted:  	$2
ok 77 verify that isn't tainted:  $& from /(.)/
ok 78 verify that is tainted:     $& from /(\D)/
ok 79 verify that is tainted:     	$`
ok 80 verify that is tainted:     	$'
ok 81 verify that is tainted:     	$+
ok 82 verify that is tainted:     	$1
ok 83 verify that isn't tainted:  	$2
ok 84 verify that isn't tainted:  $& from /(.)/
ok 85 verify that is tainted:     $& from /([[:alnum:]])/
ok 86 verify that is tainted:     	$`
ok 87 verify that is tainted:     	$'
ok 88 verify that is tainted:     	$+
ok 89 verify that is tainted:     	$1
ok 90 verify that isn't tainted:  	$2
ok 91 verify that isn't tainted:  $& from /(.)/
ok 92 verify that is tainted:     $& from /([[:^alnum:]])/
ok 93 verify that is tainted:     	$`
ok 94 verify that is tainted:     	$'
ok 95 verify that is tainted:     	$+
ok 96 verify that is tainted:     	$1
ok 97 verify that isn't tainted:  	$2
ok 98 verify that is tainted:     $& from /(a)|(\w)/
ok 99 verify that is tainted:     	$`
ok 100 verify that is tainted:     	$'
ok 101 verify that is tainted:     	$+
ok 102 verify that is tainted:     	$1
ok 103 					$1 is 'a'
ok 104 					$2 is undefined
ok 105 verify that isn't tainted:  	$2
ok 106 verify that isn't tainted:  	$3
ok 107 verify that isn't tainted:  $& from /(.)/
ok 108 verify that isn't tainted:  $& from /(\N{CYRILLIC CAPITAL LETTER A})/i
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:  	$1
ok 113 					$1 is 'small cyrillic a'
ok 114 verify that isn't tainted:  	$2
ok 115 verify that isn't tainted:  $& from /./
ok 116 verify that is tainted:     $& from /(\N{KELVIN SIGN})/i
ok 117 verify that is tainted:     	$`
ok 118 verify that is tainted:     	$'
ok 119 verify that is tainted:     	$+
ok 120 verify that is tainted:     	$1
ok 121 verify that isn't tainted:  	$2
ok 122 verify that isn't tainted:  $& from /(.)/
ok 123 verify that is tainted:     $& from /(.)\b(.)/
ok 124 verify that is tainted:     	$`
ok 125 verify that is tainted:     	$'
ok 126 verify that is tainted:     	$+
ok 127 verify that is tainted:     	$1
ok 128 verify that is tainted:     	$2
ok 129 verify that isn't tainted:  	$3
ok 130 verify that isn't tainted:  $& from /./
ok 131 verify that is tainted:     $& from /(.)\B(.)/
ok 132 verify that is tainted:     	$`
ok 133 verify that is tainted:     	$'
ok 134 verify that is tainted:     	$+
ok 135 verify that is tainted:     	$1
ok 136 verify that is tainted:     	$2
ok 137 verify that isn't tainted:  	$3
ok 138 verify that isn't tainted:  $& from /./
ok 139 verify that isn't tainted:  $ & from /(.).(\1)/
ok 140 verify that isn't tainted:  	$`
ok 141 verify that isn't tainted:  	$'
ok 142 verify that isn't tainted:  	$+
ok 143 verify that isn't tainted:  	$1
ok 144 verify that isn't tainted:  	$2
ok 145 verify that isn't tainted:  	$3
ok 146 verify that isn't tainted:  $ & from /./
ok 147 verify that isn't tainted:  untainting $_ works
ok 148 verify that isn't tainted:  $ & from /(b)/
ok 149 verify that isn't tainted:  	$`
ok 150 verify that isn't tainted:  	$'
ok 151 verify that isn't tainted:  	$+
ok 152 verify that isn't tainted:  	$1
ok 153 verify that isn't tainted:  	$2
ok 154 verify that isn't tainted:  untainting $_ works
ok 155 verify that is tainted:     $_ (wasn't tainted) from s/(.+)/$b/ where $b is 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:  	$1
ok 161 verify that isn't tainted:  	$2
ok 162 verify that isn't tainted:  $_ (wasn't tainted) from s/(.+)/b/
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:  	$1
ok 168 verify that isn't tainted:  	$2
ok 169 verify that is tainted:     $b from ($b = $a) =~ s/\w/$&/
ok 170 verify that isn't tainted:  $a from ($b = $a) =~ s/\w/$&/
ok 171 verify that is tainted:     $_ (wasn't tainted) from s/(\w)/\l$1/,
ok 172 verify that is tainted:     	$&
ok 173 verify that is tainted:     	$`
ok 174 verify that is tainted:     	$'
ok 175 verify that is tainted:     	$+
ok 176 verify that is tainted:     	$1
ok 177 verify that isn't tainted:  	$2
ok 178 verify that is tainted:     $_ (wasn't tainted) from s/(\w)/\L$1/,
ok 179 verify that is tainted:     	$&
ok 180 verify that is tainted:     	$`
ok 181 verify that is tainted:     	$'
ok 182 verify that is tainted:     	$+
ok 183 verify that is tainted:     	$1
ok 184 verify that isn't tainted:  	$2
ok 185 verify that is tainted:     $_ (wasn't tainted) from s/(\w)/\u$1/
ok 186 verify that is tainted:     	$&
ok 187 verify that is tainted:     	$`
ok 188 verify that is tainted:     	$'
ok 189 verify that is tainted:     	$+
ok 190 verify that is tainted:     	$1
ok 191 verify that isn't tainted:  	$2
ok 192 verify that is tainted:     $_ (wasn't tainted) from s/(\w)/\U$1/
ok 193 verify that is tainted:     	$&
ok 194 verify that is tainted:     	$`
ok 195 verify that is tainted:     	$'
ok 196 verify that is tainted:     	$+
ok 197 verify that is tainted:     	$1
ok 198 verify that isn't tainted:  	$2
ok 199 verify that isn't tainted:  $a still not tainted
ok 200 verify that isn't tainted:  "a" =~ /([a-z])/
ok 201 verify that isn't tainted:  "foo.bar_baz" =~ /^(.*)[._](.*?)$/
ok 202 verify that isn't tainted:  $a
ok 203 verify that isn't tainted:  uc($a)
ok 204 verify that isn't tainted:  "\U$a"
ok 205 verify that isn't tainted:  ucfirst($a)
ok 206 verify that isn't tainted:  "\u$a"
ok 207 verify that isn't tainted:  lc($a)
ok 208 verify that isn't tainted:  fc($a)
ok 209 verify that isn't tainted:  "\L$a"
ok 210 verify that isn't tainted:  "\F$a"
ok 211 verify that isn't tainted:  lcfirst($a)
ok 212 verify that isn't tainted:  "\l$a"
ok 213 verify that isn't tainted:  sprintf('%e', 123.456)
ok 214 verify that isn't tainted:  sprintf('%f', 123.456)
ok 215 verify that isn't tainted:  sprintf('%g', 123.456)
ok 216 verify that isn't tainted:  sprintf('%d', 123.456)
ok 217 verify that isn't tainted:  sprintf('%x', 123.456)
ok 218 verify that isn't tainted:  $_ = uc($a)
ok 219 verify that isn't tainted:  $& from /(\w)/
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:  	$1
ok 224 verify that isn't tainted:  	$2
ok 225 verify that isn't tainted:  $& from /(.)/
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:  	$1
ok 230 verify that isn't tainted:  	$2
ok 231 verify that isn't tainted:  $& from /(\W)/
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:  	$1
ok 236 verify that isn't tainted:  	$2
ok 237 verify that isn't tainted:  $& from /(.)/
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:  	$1
ok 242 verify that isn't tainted:  	$2
ok 243 verify that isn't tainted:  $& from /(\s)/
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:  	$1
ok 248 verify that isn't tainted:  	$2
ok 249 verify that isn't tainted:  $& from /(.)/
ok 250 verify that isn't tainted:  $& from /(\S)/
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:  	$1
ok 255 verify that isn't tainted:  	$2
ok 256 verify that isn't tainted:  $& from /(.)/
ok 257 verify that isn't tainted:  $& from /(\d)/
ok 258 verify that isn't tainted:  	$`
ok 259 verify that isn't tainted:  	$'
ok 260 verify that isn't tainted:  	$+
ok 261 verify that isn't tainted:  	$1
ok 262 verify that isn't tainted:  	$2
ok 263 verify that isn't tainted:  $& from /(.)/
ok 264 verify that isn't tainted:  $& from /(\D)/
ok 265 verify that isn't tainted:  	$`
ok 266 verify that isn't tainted:  	$'
ok 267 verify that isn't tainted:  	$+
ok 268 verify that isn't tainted:  	$1
ok 269 verify that isn't tainted:  	$2
ok 270 verify that isn't tainted:  $& from /(.)/
ok 271 verify that isn't tainted:  $& from /([[:alnum:]])/
ok 272 verify that isn't tainted:  	$`
ok 273 verify that isn't tainted:  	$'
ok 274 verify that isn't tainted:  	$+
ok 275 verify that isn't tainted:  	$1
ok 276 verify that isn't tainted:  	$2
ok 277 verify that isn't tainted:  $& from /(.)/
ok 278 verify that isn't tainted:  $& from /([[:^alnum:]])/
ok 279 verify that isn't tainted:  	$`
ok 280 verify that isn't tainted:  	$'
ok 281 verify that isn't tainted:  	$+
ok 282 verify that isn't tainted:  	$1
ok 283 verify that isn't tainted:  	$2
ok 284 verify that isn't tainted:  $& from /(a)|(\w)/
ok 285 verify that isn't tainted:  	$`
ok 286 verify that isn't tainted:  	$'
ok 287 verify that isn't tainted:  	$+
ok 288 verify that isn't tainted:  	$1
ok 289 					$1 is 'a'
ok 290 					$2 is undefined
ok 291 verify that isn't tainted:  	$2
ok 292 verify that isn't tainted:  	$3
ok 293 verify that isn't tainted:  $& from /(.)/
ok 294 verify that isn't tainted:  $& from /(\N{CYRILLIC CAPITAL LETTER A})/i
ok 295 verify that isn't tainted:  	$`
ok 296 verify that isn't tainted:  	$'
ok 297 verify that isn't tainted:  	$+
ok 298 verify that isn't tainted:  	$1
ok 299 					$1 is 'small cyrillic a'
ok 300 verify that isn't tainted:  	$2
ok 301 verify that isn't tainted:  $& from /./
ok 302 verify that isn't tainted:  $& from /(\N{KELVIN SIGN})/i
ok 303 verify that isn't tainted:  	$`
ok 304 verify that isn't tainted:  	$'
ok 305 verify that isn't tainted:  	$+
ok 306 verify that isn't tainted:  	$1
ok 307 verify that isn't tainted:  	$2
ok 308 verify that isn't tainted:  $& from /(.)/
ok 309 verify that isn't tainted:  $& from /(.)\b(.)/
ok 310 verify that isn't tainted:  	$`
ok 311 verify that isn't tainted:  	$'
ok 312 verify that isn't tainted:  	$+
ok 313 verify that isn't tainted:  	$1
ok 314 verify that isn't tainted:  	$2
ok 315 verify that isn't tainted:  	$3
ok 316 verify that isn't tainted:  $& from /./
ok 317 verify that isn't tainted:  $& from /(.)\B(.)/
ok 318 verify that isn't tainted:  	$`
ok 319 verify that isn't tainted:  	$'
ok 320 verify that isn't tainted:  	$+
ok 321 verify that isn't tainted:  	$1
ok 322 verify that isn't tainted:  	$2
ok 323 verify that isn't tainted:  	$3
ok 324 verify that isn't tainted:  $& from /./
ok 325 verify that isn't tainted:  $ & from /(.).(\1)/
ok 326 verify that isn't tainted:  	$`
ok 327 verify that isn't tainted:  	$'
ok 328 verify that isn't tainted:  	$+
ok 329 verify that isn't tainted:  	$1
ok 330 verify that isn't tainted:  	$2
ok 331 verify that isn't tainted:  	$3
ok 332 verify that isn't tainted:  $ & from /./
ok 333 verify that isn't tainted:  untainting $_ works
ok 334 verify that isn't tainted:  $ & from /(b)/
ok 335 verify that isn't tainted:  	$`
ok 336 verify that isn't tainted:  	$'
ok 337 verify that isn't tainted:  	$+
ok 338 verify that isn't tainted:  	$1
ok 339 verify that isn't tainted:  	$2
ok 340 verify that isn't tainted:  untainting $_ works
ok 341 verify that isn't tainted:  $_ (wasn't tainted) from s/(.+)/b/
ok 342 verify that isn't tainted:  	$&
ok 343 verify that isn't tainted:  	$`
ok 344 verify that isn't tainted:  	$'
ok 345 verify that isn't tainted:  	$+
ok 346 verify that isn't tainted:  	$1
ok 347 verify that isn't tainted:  	$2
ok 348 verify that isn't tainted:  $b from ($b = $a) =~ s/\w/$&/
ok 349 verify that isn't tainted:  $a from ($b = $a) =~ s/\w/$&/
ok 350 verify that isn't tainted:  $_ (wasn't tainted) from s/(\w)/\l$1/,
ok 351 verify that isn't tainted:  	$&
ok 352 verify that isn't tainted:  	$`
ok 353 verify that isn't tainted:  	$'
ok 354 verify that isn't tainted:  	$+
ok 355 verify that isn't tainted:  	$1
ok 356 verify that isn't tainted:  	$2
ok 357 verify that isn't tainted:  $_ (wasn't tainted) from s/(\w)/\L$1/,
ok 358 verify that isn't tainted:  	$&
ok 359 verify that isn't tainted:  	$`
ok 360 verify that isn't tainted:  	$'
ok 361 verify that isn't tainted:  	$+
ok 362 verify that isn't tainted:  	$1
ok 363 verify that isn't tainted:  	$2
ok 364 verify that isn't tainted:  $_ (wasn't tainted) from s/(\w)/\u$1/
ok 365 verify that isn't tainted:  	$&
ok 366 verify that isn't tainted:  	$`
ok 367 verify that isn't tainted:  	$'
ok 368 verify that isn't tainted:  	$+
ok 369 verify that isn't tainted:  	$1
ok 370 verify that isn't tainted:  	$2
ok 371 verify that isn't tainted:  $_ (wasn't tainted) from s/(\w)/\U$1/
ok 372 verify that isn't tainted:  	$&
ok 373 verify that isn't tainted:  	$`
ok 374 verify that isn't tainted:  	$'
ok 375 verify that isn't tainted:  	$+
ok 376 verify that isn't tainted:  	$1
ok 377 verify that isn't tainted:  	$2
ok 378 verify that isn't tainted:  $a still not tainted
ok 379 verify that isn't tainted:  "a" =~ /([a-z])/
ok 380 verify that isn't tainted:  "foo.bar_baz" =~ /^(.*)[._](.*?)$/
ok 381 skipped: testing of locale 'kk_KZ.PT154' is skipped:
#
# The following characters (and maybe others) may not have the same meaning as the Perl program expects: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
# ; codeset=PT154
ok 382 skipped: testing of locale 'zh_HK.Big5HKSCS' is skipped:
#
# The following characters (and maybe others) may not have the same meaning as the Perl program expects: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
# ; codeset=Big5HKSCS
ok 383 Verify that /[[:upper:]]/ matches all alpha X for which uc(X) == X and lc(X) != X
ok 384 Verify that /[[:lower:]]/i matches all alpha X for which uc(X) == X and lc(X) != X
ok 385 Verify that /[[:lower:]]/ matches all alpha X for which lc(X) == X and uc(X) != X
ok 386 Verify that /[[:upper:]]/i matches all alpha X for which lc(X) == X and uc(X) != X
ok 387 Verify that \w and [:word:] are identical
ok 388 Verify that \d and [:digit:] are identical
ok 389 Verify that \s and [:space:] are identical
ok 390 Verify that [:posix:] and [:^posix:] are mutually exclusive
ok 391 Verify that [:lower:] contains at least a-z
ok 392 Verify that [:lower:] is a subset of [:alpha:]
ok 393 Verify that [:upper:] contains at least A-Z
ok 394 Verify that [:upper:] is a subset of [:alpha:]
ok 395 Verify that /[[:lower:]]/i is a subset of [:alpha:]
ok 396 Verify that [:alpha:] is a subset of [:alnum:]
ok 397 Verify that [:digit:] contains at least 0-9
ok 398 Verify that [:digit:] is a subset of [:alnum:]
ok 399 Verify that [:digit:] matches either 10 or 20 code points
ok 400 Verify that if there is a second set of digits in [:digit:], they are consecutive
ok 401 Verify that [:xdigit:] contains one or two blocks of 10 consecutive [:digit:] chars
ok 402 Verify that [:xdigit:] contains at least A-F, a-f
ok 403 Verify that any additional members of [:xdigit:], are in groups of 6 consecutive code points
ok 404 Verify that [:xdigit:] is a subset of [:graph:]
ok 405 Verify that [:punct:] is a subset of [:graph:]
ok 406 Verify that the space character is not in [:graph:]
ok 407 Verify that [:space:] contains at least [\f\n\r\t\cK ]
ok 408 Verify that [:blank:] contains at least [\t ]
ok 409 Verify that [:blank:] is a subset of [:space:]
ok 410 Verify that [:graph:] is a subset of [:print:]
ok 411 Verify that the space character is in [:print:]
ok 412 Verify that isn't both [:cntrl:] and [:print:]
ok 413 Verify that isn't both [:alpha:] and [:digit:]
ok 414 Verify that isn't both [:alnum:] and [:punct:]
ok 415 Verify that isn't both [:xdigit:] and [:punct:]
ok 416 Verify that isn't both [:graph:] and [:space:]
ok 417 Verify that cmp works with a read-only scalar; no- vs locale
ok 418 Verify that "le", "ne", etc work
ok 419 Skip in locales where there are no controls; otherwise verify that \0 sorts before any (other) control
ok 420 Skip in locales where all controls have primary sorting weight; otherwise verify that \0 doesn't have primary sorting weight
ok 421 Verify that strings with embedded NUL collate
ok 422 Verify that strings with embedded NUL and extra trailing NUL collate
ok 423 Verify that empty strings collate
ok 424 Skip in non-UTF-8 locales; otherwise verify that UTF8ness doesn't matter with collation
ok 425 Skip in UTF-8 locales; otherwise verify that single byte collates before 0x100 and above
ok 426 Skip in UTF-8 locales; otherwise verify that 0x100 and above collate in code point order
ok 427 Verify that an intervening printf doesn't change assignment results
ok 428 Verify that an intervening sprintf doesn't change assignment results
ok 429 Verify that a different locale radix works when doing "==" with a constant
ok 430 Verify that a different locale radix works when doing "==" with a scalar
ok 431 Verify that a different locale radix works when doing "==" with a scalar and an intervening sprintf
ok 432 Verify that can assign stringified under inner no-locale block
ok 433 Verify that "==" with a scalar still works in inner no locale
ok 434 Verify that "==" with a scalar and an intervening sprintf still works in inner no locale
ok 435 Verify that after a no-locale block, a different locale radix still works when doing "==" with a constant
ok 436 Verify that after a no-locale block, a different locale radix still works when doing "==" with a scalar
ok 437 Verify that after a no-locale block, a different locale radix still works when doing "==" with a scalar and an intervening sprintf
ok 438 Verify that after a no-locale block, a different locale radix can participate in an addition and function call as numeric
ok 439 Verify that don't get warning under "==" even if radix is not a dot
ok 440 Verify that non-ASCII UTF-8 error messages are in UTF-8
ok 441 ... and are ASCII outside "use locale"
ok 442 Verify that a number with a UTF-8 radix has a UTF-8 stringification
ok 443 Verify that a sprintf of a number with a UTF-8 radix yields UTF-8
ok 444 Verify that a sprintf of a number outside locale scope uses a dot radix
ok 445 Verify that a sprintf of a number back within locale scope uses locale radix
ok 446 Verify that strftime doesn't return "%p" in locales where %p is empty
ok 447 Verify that strftime returns date with UTF-8 flag appropriately set
ok 448 "$!" is ASCII-only outside of locale scope
ok 449 Verify "lc(foo) cmp lc(bar)" is the same as using intermediaries for the cmp
ok 450 Verify case insensitive matching works
ok 451 Verify atof with locale radix and negative exponent
ok 452 Verify ALT_DIGITS returns nothing, or else non-ASCII and the single char digits evaluate to consecutive integers starting at 0; 0 is accepted for alt-0 for locales without a zero
ok 453 variable set to setlocale("invalid locale name") is considered uninitialized
ok 454 uc("") in C locale (use locale; not encoded in utf8) should be "", got ""
ok 455 verify that is tainted
ok 456 uc("") in C locale (use locale; encoded in utf8) should be "", got ""
ok 457 verify that is tainted
ok 458 uc("a") in C locale (use locale; not encoded in utf8) should be "A", got "A"
ok 459 verify that is tainted
ok 460 uc("a") in C locale (use locale; encoded in utf8) should be "A", got "A"
ok 461 verify that is tainted
ok 462 uc("à") in C locale (use locale; not encoded in utf8) should be "à", got "à"
ok 463 verify that is tainted
ok 464 uc("à") in C locale (use locale; encoded in utf8) should be "à", got "à"
ok 465 verify that is tainted
ok 466 uc("ÿ") in C locale (use locale; not encoded in utf8) should be "ÿ", got "ÿ"
ok 467 verify that is tainted
ok 468 uc("ÿ") in C locale (use locale; encoded in utf8) should be "ÿ", got "ÿ"
ok 469 verify that is tainted
ok 470 uc("ff") in C locale (use locale; not encoded in utf8) should be "ff", got "ff"
ok 471 verify that is tainted
ok 472 uc("ff") in C locale (use locale; encoded in utf8) should be "ff", got "ff"
ok 473 verify that is tainted
ok 474 uc("ʼn") in C locale (use locale; not encoded in utf8) should be "ʼn", got "ʼn"
ok 475 verify that is tainted
ok 476 uc("ʼn") in C locale (use locale; encoded in utf8) should be "ʼn", got "ʼn"
ok 477 verify that is tainted
ok 478 uc("ā") in C locale (use locale; not encoded in utf8) should be "Ā", got "Ā"
ok 479 verify that is tainted
ok 480 uc("ā") in C locale (use locale; encoded in utf8) should be "Ā", got "Ā"
ok 481 verify that is tainted
ok 482 uc("") in C locale (use locale ':not_characters'; not encoded in utf8) should be "", got ""
ok 483 verify that isn't tainted
ok 484 uc("") in C locale (use locale ':not_characters'; encoded in utf8) should be "", got ""
ok 485 verify that isn't tainted
ok 486 uc("a") in C locale (use locale ':not_characters'; not encoded in utf8) should be "A", got "A"
ok 487 verify that isn't tainted
ok 488 uc("a") in C locale (use locale ':not_characters'; encoded in utf8) should be "A", got "A"
ok 489 verify that isn't tainted
ok 490 uc("à") in C locale (use locale ':not_characters'; not encoded in utf8) should be "À", got "À"
ok 491 verify that isn't tainted
ok 492 uc("à") in C locale (use locale ':not_characters'; encoded in utf8) should be "À", got "À"
ok 493 verify that isn't tainted
ok 494 uc("ÿ") in C locale (use locale ':not_characters'; not encoded in utf8) should be "Ÿ", got "Ÿ"
ok 495 verify that isn't tainted
ok 496 uc("ÿ") in C locale (use locale ':not_characters'; encoded in utf8) should be "Ÿ", got "Ÿ"
ok 497 verify that isn't tainted
ok 498 uc("ff") in C locale (use locale ':not_characters'; not encoded in utf8) should be "FF", got "FF"
ok 499 verify that isn't tainted
ok 500 uc("ff") in C locale (use locale ':not_characters'; encoded in utf8) should be "FF", got "FF"
ok 501 verify that isn't tainted
ok 502 uc("ʼn") in C locale (use locale ':not_characters'; not encoded in utf8) should be "ʼN", got "ʼN"
ok 503 verify that isn't tainted
ok 504 uc("ʼn") in C locale (use locale ':not_characters'; encoded in utf8) should be "ʼN", got "ʼN"
ok 505 verify that isn't tainted
ok 506 uc("ā") in C locale (use locale ':not_characters'; not encoded in utf8) should be "Ā", got "Ā"
ok 507 verify that isn't tainted
ok 508 uc("ā") in C locale (use locale ':not_characters'; encoded in utf8) should be "Ā", got "Ā"
ok 509 verify that isn't tainted
ok 510 ucfirst("") in C locale (use locale; not encoded in utf8) should be "", got ""
ok 511 verify that is tainted
ok 512 ucfirst("") in C locale (use locale; encoded in utf8) should be "", got ""
ok 513 verify that is tainted
ok 514 ucfirst("a") in C locale (use locale; not encoded in utf8) should be "A", got "A"
ok 515 verify that is tainted
ok 516 ucfirst("a") in C locale (use locale; encoded in utf8) should be "A", got "A"
ok 517 verify that is tainted
ok 518 ucfirst("à") in C locale (use locale; not encoded in utf8) should be "à", got "à"
ok 519 verify that is tainted
ok 520 ucfirst("à") in C locale (use locale; encoded in utf8) should be "à", got "à"
ok 521 verify that is tainted
ok 522 ucfirst("ÿ") in C locale (use locale; not encoded in utf8) should be "ÿ", got "ÿ"
ok 523 verify that is tainted
ok 524 ucfirst("ÿ") in C locale (use locale; encoded in utf8) should be "ÿ", got "ÿ"
ok 525 verify that is tainted
ok 526 ucfirst("ff") in C locale (use locale; not encoded in utf8) should be "ff", got "ff"
ok 527 verify that is tainted
ok 528 ucfirst("ff") in C locale (use locale; encoded in utf8) should be "ff", got "ff"
ok 529 verify that is tainted
ok 530 ucfirst("ʼn") in C locale (use locale; not encoded in utf8) should be "ʼn", got "ʼn"
ok 531 verify that is tainted
ok 532 ucfirst("ʼn") in C locale (use locale; encoded in utf8) should be "ʼn", got "ʼn"
ok 533 verify that is tainted
ok 534 ucfirst("ā") in C locale (use locale; not encoded in utf8) should be "Ā", got "Ā"
ok 535 verify that is tainted
ok 536 ucfirst("ā") in C locale (use locale; encoded in utf8) should be "Ā", got "Ā"
ok 537 verify that is tainted
ok 538 ucfirst("") in C locale (use locale ':not_characters'; not encoded in utf8) should be "", got ""
ok 539 verify that isn't tainted
ok 540 ucfirst("") in C locale (use locale ':not_characters'; encoded in utf8) should be "", got ""
ok 541 verify that isn't tainted
ok 542 ucfirst("a") in C locale (use locale ':not_characters'; not encoded in utf8) should be "A", got "A"
ok 543 verify that isn't tainted
ok 544 ucfirst("a") in C locale (use locale ':not_characters'; encoded in utf8) should be "A", got "A"
ok 545 verify that isn't tainted
ok 546 ucfirst("à") in C locale (use locale ':not_characters'; not encoded in utf8) should be "À", got "À"
ok 547 verify that isn't tainted
ok 548 ucfirst("à") in C locale (use locale ':not_characters'; encoded in utf8) should be "À", got "À"
ok 549 verify that isn't tainted
ok 550 ucfirst("ÿ") in C locale (use locale ':not_characters'; not encoded in utf8) should be "Ÿ", got "Ÿ"
ok 551 verify that isn't tainted
ok 552 ucfirst("ÿ") in C locale (use locale ':not_characters'; encoded in utf8) should be "Ÿ", got "Ÿ"
ok 553 verify that isn't tainted
ok 554 ucfirst("ff") in C locale (use locale ':not_characters'; not encoded in utf8) should be "Ff", got "Ff"
ok 555 verify that isn't tainted
ok 556 ucfirst("ff") in C locale (use locale ':not_characters'; encoded in utf8) should be "Ff", got "Ff"
ok 557 verify that isn't tainted
ok 558 ucfirst("ʼn") in C locale (use locale ':not_characters'; not encoded in utf8) should be "ʼN", got "ʼN"
ok 559 verify that isn't tainted
ok 560 ucfirst("ʼn") in C locale (use locale ':not_characters'; encoded in utf8) should be "ʼN", got "ʼN"
ok 561 verify that isn't tainted
ok 562 ucfirst("ā") in C locale (use locale ':not_characters'; not encoded in utf8) should be "Ā", got "Ā"
ok 563 verify that isn't tainted
ok 564 ucfirst("ā") in C locale (use locale ':not_characters'; encoded in utf8) should be "Ā", got "Ā"
ok 565 verify that isn't tainted
ok 566 lc("") in C locale (use locale; not encoded in utf8) should be "", got ""
ok 567 verify that is tainted
ok 568 lc("") in C locale (use locale; encoded in utf8) should be "", got ""
ok 569 verify that is tainted
ok 570 lc("A") in C locale (use locale; not encoded in utf8) should be "a", got "a"
ok 571 verify that is tainted
ok 572 lc("A") in C locale (use locale; encoded in utf8) should be "a", got "a"
ok 573 verify that is tainted
ok 574 lc("À") in C locale (use locale; not encoded in utf8) should be "À", got "À"
ok 575 verify that is tainted
ok 576 lc("À") in C locale (use locale; encoded in utf8) should be "À", got "À"
ok 577 verify that is tainted
ok 578 lc("ſ") in C locale (use locale; not encoded in utf8) should be "ſ", got "ſ"
ok 579 verify that is tainted
ok 580 lc("ſ") in C locale (use locale; encoded in utf8) should be "ſ", got "ſ"
ok 581 verify that is tainted
ok 582 lc("Ā") in C locale (use locale; not encoded in utf8) should be "ā", got "ā"
ok 583 verify that is tainted
ok 584 lc("Ā") in C locale (use locale; encoded in utf8) should be "ā", got "ā"
ok 585 verify that is tainted
ok 586 lc("") in C locale (use locale ':not_characters'; not encoded in utf8) should be "", got ""
ok 587 verify that isn't tainted
ok 588 lc("") in C locale (use locale ':not_characters'; encoded in utf8) should be "", got ""
ok 589 verify that isn't tainted
ok 590 lc("A") in C locale (use locale ':not_characters'; not encoded in utf8) should be "a", got "a"
ok 591 verify that isn't tainted
ok 592 lc("A") in C locale (use locale ':not_characters'; encoded in utf8) should be "a", got "a"
ok 593 verify that isn't tainted
ok 594 lc("À") in C locale (use locale ':not_characters'; not encoded in utf8) should be "à", got "à"
ok 595 verify that isn't tainted
ok 596 lc("À") in C locale (use locale ':not_characters'; encoded in utf8) should be "à", got "à"
ok 597 verify that isn't tainted
ok 598 lc("ſ") in C locale (use locale ':not_characters'; not encoded in utf8) should be "ſ", got "ſ"
ok 599 verify that isn't tainted
ok 600 lc("ſ") in C locale (use locale ':not_characters'; encoded in utf8) should be "ſ", got "ſ"
ok 601 verify that isn't tainted
ok 602 lc("Ā") in C locale (use locale ':not_characters'; not encoded in utf8) should be "ā", got "ā"
ok 603 verify that isn't tainted
ok 604 lc("Ā") in C locale (use locale ':not_characters'; encoded in utf8) should be "ā", got "ā"
ok 605 verify that isn't tainted
ok 606 lcfirst("") in C locale (use locale; not encoded in utf8) should be "", got ""
ok 607 verify that is tainted
ok 608 lcfirst("") in C locale (use locale; encoded in utf8) should be "", got ""
ok 609 verify that is tainted
ok 610 lcfirst("A") in C locale (use locale; not encoded in utf8) should be "a", got "a"
ok 611 verify that is tainted
ok 612 lcfirst("A") in C locale (use locale; encoded in utf8) should be "a", got "a"
ok 613 verify that is tainted
ok 614 lcfirst("À") in C locale (use locale; not encoded in utf8) should be "À", got "À"
ok 615 verify that is tainted
ok 616 lcfirst("À") in C locale (use locale; encoded in utf8) should be "À", got "À"
ok 617 verify that is tainted
ok 618 lcfirst("ſ") in C locale (use locale; not encoded in utf8) should be "ſ", got "ſ"
ok 619 verify that is tainted
ok 620 lcfirst("ſ") in C locale (use locale; encoded in utf8) should be "ſ", got "ſ"
ok 621 verify that is tainted
ok 622 lcfirst("Ā") in C locale (use locale; not encoded in utf8) should be "ā", got "ā"
ok 623 verify that is tainted
ok 624 lcfirst("Ā") in C locale (use locale; encoded in utf8) should be "ā", got "ā"
ok 625 verify that is tainted
ok 626 lcfirst("") in C locale (use locale ':not_characters'; not encoded in utf8) should be "", got ""
ok 627 verify that isn't tainted
ok 628 lcfirst("") in C locale (use locale ':not_characters'; encoded in utf8) should be "", got ""
ok 629 verify that isn't tainted
ok 630 lcfirst("A") in C locale (use locale ':not_characters'; not encoded in utf8) should be "a", got "a"
ok 631 verify that isn't tainted
ok 632 lcfirst("A") in C locale (use locale ':not_characters'; encoded in utf8) should be "a", got "a"
ok 633 verify that isn't tainted
ok 634 lcfirst("À") in C locale (use locale ':not_characters'; not encoded in utf8) should be "à", got "à"
ok 635 verify that isn't tainted
ok 636 lcfirst("À") in C locale (use locale ':not_characters'; encoded in utf8) should be "à", got "à"
ok 637 verify that isn't tainted
ok 638 lcfirst("ſ") in C locale (use locale ':not_characters'; not encoded in utf8) should be "ſ", got "ſ"
ok 639 verify that isn't tainted
ok 640 lcfirst("ſ") in C locale (use locale ':not_characters'; encoded in utf8) should be "ſ", got "ſ"
ok 641 verify that isn't tainted
ok 642 lcfirst("Ā") in C locale (use locale ':not_characters'; not encoded in utf8) should be "ā", got "ā"
ok 643 verify that isn't tainted
ok 644 lcfirst("Ā") in C locale (use locale ':not_characters'; encoded in utf8) should be "ā", got "ā"
ok 645 verify that isn't tainted
ok 646 fc("") in C locale (use locale; not encoded in utf8) should be "", got ""
ok 647 verify that is tainted
ok 648 fc("") in C locale (use locale; encoded in utf8) should be "", got ""
ok 649 verify that is tainted
ok 650 fc("A") in C locale (use locale; not encoded in utf8) should be "a", got "a"
ok 651 verify that is tainted
ok 652 fc("A") in C locale (use locale; encoded in utf8) should be "a", got "a"
ok 653 verify that is tainted
ok 654 fc("À") in C locale (use locale; not encoded in utf8) should be "À", got "À"
ok 655 verify that is tainted
ok 656 fc("À") in C locale (use locale; encoded in utf8) should be "À", got "À"
ok 657 verify that is tainted
ok 658 fc("ſ") in C locale (use locale; not encoded in utf8) should be "ſ", got "ſ"
ok 659 verify that is tainted
ok 660 fc("ſ") in C locale (use locale; encoded in utf8) should be "ſ", got "ſ"
ok 661 verify that is tainted
ok 662 fc("Ā") in C locale (use locale; not encoded in utf8) should be "ā", got "ā"
ok 663 verify that is tainted
ok 664 fc("Ā") in C locale (use locale; encoded in utf8) should be "ā", got "ā"
ok 665 verify that is tainted
ok 666 fc("") in C locale (use locale ':not_characters'; not encoded in utf8) should be "", got ""
ok 667 verify that isn't tainted
ok 668 fc("") in C locale (use locale ':not_characters'; encoded in utf8) should be "", got ""
ok 669 verify that isn't tainted
ok 670 fc("A") in C locale (use locale ':not_characters'; not encoded in utf8) should be "a", got "a"
ok 671 verify that isn't tainted
ok 672 fc("A") in C locale (use locale ':not_characters'; encoded in utf8) should be "a", got "a"
ok 673 verify that isn't tainted
ok 674 fc("À") in C locale (use locale ':not_characters'; not encoded in utf8) should be "à", got "à"
ok 675 verify that isn't tainted
ok 676 fc("À") in C locale (use locale ':not_characters'; encoded in utf8) should be "à", got "à"
ok 677 verify that isn't tainted
ok 678 fc("ſ") in C locale (use locale ':not_characters'; not encoded in utf8) should be "s", got "s"
ok 679 verify that isn't tainted
ok 680 fc("ſ") in C locale (use locale ':not_characters'; encoded in utf8) should be "s", got "s"
ok 681 verify that isn't tainted
ok 682 fc("Ā") in C locale (use locale ':not_characters'; not encoded in utf8) should be "ā", got "ā"
ok 683 verify that isn't tainted
ok 684 fc("Ā") in C locale (use locale ':not_characters'; encoded in utf8) should be "ā", got "ā"
ok 685 verify that isn't tainted
ok 686 darwin no longer has known bad locales # TODO
1..686
ok
All tests successful.

Test Summary Report
-------------------
../lib/locale.t (Wstat: 0 Tests: 686 Failed: 0)
  TODO passed:   686
Files=1, Tests=686,  2 wallclock secs ( 0.02 usr  0.00 sys +  1.88 cusr  0.10 csys =  2.00 CPU)
Result: PASS
Finished test run at Fri Jun 13 13:30:04 2025.
/Users/ek-mac/work/projects/github_forks/perl5

KES777 avatar Jun 13 '25 17:06 KES777

Can you show the output of locale on your machine?

LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL=

Here the same line in collate.c seems to cause an error in a different piece of software.

gottesknecht avatar Jun 14 '25 03:06 gottesknecht