summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2017-08-07 10:36:51 -0600
committerKarl Williamson <khw@cpan.org>2017-08-07 10:49:36 -0600
commit7fd05a1ea610c1d9c873e95c52bc397756d11e86 (patch)
tree932b0448949cf42246d2f533511f710b9f769bf3 /lib
parent2fb9a6f6b0ec3de0f5eda583d40d7cd1d9bcde7c (diff)
downloadperl-7fd05a1ea610c1d9c873e95c52bc397756d11e86.tar.gz
lib/locale.t: Add comments
This adds some general comments about the portions of the file that test locales against what the POSIX standard specifies.
Diffstat (limited to 'lib')
-rw-r--r--lib/locale.t21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/locale.t b/lib/locale.t
index 253a703942..235fb71a52 100644
--- a/lib/locale.t
+++ b/lib/locale.t
@@ -5,6 +5,27 @@
# without using 'eval' as much as possible, which might cloud the issue, the
# crucial parts of the code are duplicated in a block for each pragma.
+# Unfortunately, many systems have defective locale definitions. This test
+# file looks for both perl bugs and bugs in the system's locale definitions.
+# It can be difficult to tease apart which is which. For the latter, there
+# are tests that are based on the POSIX standard. A character isn't supposed
+# to be both a space and graphic, for example. Another example is if a
+# character is the uppercase of another, that other should be the lowercase of
+# the first. Including tests for these allows you to test for defective
+# locales, as described in perllocale. The way this file distinguishes
+# between defective locales, and perl bugs is to see what percentage of
+# locales fail a given test. If it's a lot, then it's more likely to be a
+# perl bug; only a few, those particular locales are likely defective. In
+# that case the failing tests are marked TODO. (They should be reported to
+# the vendor, however; but it's not perl's problem.) In some cases, this
+# script has caused tickets to be filed against perl which turn out to be the
+# platform's bug, but a higher percentage of locales are failing than the
+# built-in cut-off point. For those platforms, code has been added to
+# increase the cut-off, so those platforms don't trigger failing test reports.
+# Ideally, the platforms would get fixed and that code would be changed to
+# only kick-in when run on versions that are earlier than the fixed one. But,
+# this rarely happens in practice.
+
# To make a TODO test, add the string 'TODO' to its %test_names value
my $is_ebcdic = ord("A") == 193;