This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix test to be EBCDIC friendly
authorKarl Williamson <khw@cpan.org>
Fri, 28 Oct 2016 00:58:18 +0000 (18:58 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 28 Oct 2016 03:56:59 +0000 (21:56 -0600)
Commit da42332b10691ba7af7550035ffc7f46c87e4e66 introduced a new test.
But on EBCDIC platforms that test doesn't do what it is intended.  It
uses \xE4, assuming it will have a different representation when encoded
in UTF-8, and it is trying to test that having a different
representation still works.  But \xE4 on EBCDIC is a UTF-8 invariant
(CAPITAL U).

perlhacktips gives some suggestions on writing tests that work on both
character sets.  In this case \xB6, that is mentioned there, works, as
it is UTF-8 variant on both character sets, and all EBCDIC code pages that
have ever been supported by Perl.

t/re/pat.t

index 2a8fe85..6a71122 100644 (file)
@@ -1802,10 +1802,10 @@ EOP
         }
 
         {
-            my $str = "a\xE4";
-            ok( $str =~ m{^(a|a\x{e4})$}, "fix [perl #129950] - latin1 case" );
+            my $str = "a\xB6";
+            ok( $str =~ m{^(a|a\x{b6})$}, "fix [perl #129950] - latin1 case" );
             utf8::upgrade($str);
-            ok( $str =~ m{^(a|a\x{e4})$}, "fix [perl #129950] - utf8 case" );
+            ok( $str =~ m{^(a|a\x{b6})$}, "fix [perl #129950] - utf8 case" );
         }
 } # End of sub run_tests