fix tr/// Deparse tests under EBCDIC
authorDavid Mitchell <davem@iabyn.com>
Wed, 7 Feb 2018 10:34:02 +0000 (10:34 +0000)
committerDavid Mitchell <davem@iabyn.com>
Wed, 7 Feb 2018 10:38:03 +0000 (10:38 +0000)
Some tests I recently added had A-Z in the replacement charlist, which
under EBCDIC gets deparsed as A-IJ-RS-Z, so original and deparsed don't
match.

Ideally the deparsing could be smart enough to coalesce those ranges,
but for now I've just changed the range to A-I which deparses ok on both
ASCII and EBCDIC.

The point of the test is for when there are more replacement chars than
search chars, and in this case A-I works just as well as A-Z.

Spotted by Karl.

lib/B/Deparse.t

index 3219e19..ffdfc6c 100644 (file)
@@ -1448,15 +1448,15 @@ tr/X//r;
 tr/\000-\375/AB/c;
 tr/\000-\375/A-C/c;
 tr/\000-\375/A-D/c;
-tr/\000-\375/A-Z/c;
+tr/\000-\375/A-I/c;
 tr/\000-\375/AB/cd;
 tr/\000-\375/A-C/cd;
 tr/\000-\375/A-D/cd;
-tr/\000-\375/A-Z/cd;
+tr/\000-\375/A-I/cd;
 tr/\000-\375/AB/cds;
 tr/\000-\375/A-C/cds;
 tr/\000-\375/A-D/cds;
-tr/\000-\375/A-Z/cds;
+tr/\000-\375/A-I/cds;
 ####
 # [perl #119807] s//\(3)/ge should not warn when deparsed (\3 warns)
 s/foo/\(3);/eg;