lib/locale.t: Up the permissible failure % for os390
authorKarl Williamson <khw@cpan.org>
Wed, 7 Dec 2016 05:28:59 +0000 (22:28 -0700)
committerKarl Williamson <khw@cpan.org>
Wed, 7 Dec 2016 05:59:17 +0000 (22:59 -0700)
Recent changes to the os390 locales have caused the number of failing
ones to exceed the cutoff of acceptable bad locales before the .t shows
failure.

os390 has more problematic locales than typical, because it has locales
for various IBM code pages, and some of these locales are incompatible
with perl.  For example there is a CP 037 locale available which is
supposed to allow os390 (running CP 1047) to emulate machines where CP
037 is native.  But these two code pages have different positions for
various critical characters that perl assumes have a particular ordinal
value, e.g. '['.  That being placed differently in a locale means that
patterns with bracketed character classes won't work in perl on that
locale, and the locales fail locale.t

This commit changes the acceptable failing rate to 10% (up from 5% most
everywhere else) on os390, reflecting the higher percentage of base
incompatibilities.

lib/locale.t

index b49197b..da8d10e 100644 (file)
@@ -38,9 +38,13 @@ our $debug = $ENV{PERL_DEBUG_FULL_TEST} // 0;
 # fail them unless at least this percentage of the tested locales fail.
 # On AIX machines, many locales call a no-break space a graphic.
 # (There aren't 1000 locales currently in existence, so 99.9 works)
+# EBCDIC os390 has more locales fail than normal, because it has locales that
+# move various critical characters like '['.
 my $acceptable_failure_percentage = ($^O =~ / ^ ( AIX ) $ /ix)
                                      ? 99.9
-                                     : 5;
+                                     : ($^O =~ / ^ ( os390 ) $ /ix)
+                                       ? 10
+                                       : 5;
 
 # The list of test numbers of the problematic tests.
 my %problematical_tests;