This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
ext/XS-APItest/t/utf8.t: Fix so passes EBCDIC
authorKarl Williamson <public@khwilliamson.com>
Wed, 27 Mar 2013 18:05:53 +0000 (12:05 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 6 Mar 2015 04:48:25 +0000 (21:48 -0700)
This involves skipping much of the tests, because it would be painful to
generalize for the different EBCDIC code pages.

ext/XS-APItest/t/utf8.t

index bc5a7ed..8322cb9 100644 (file)
@@ -5,13 +5,15 @@ use Test::More;
 
 use XS::APItest;
 
+my $pound_sign = chr utf8::unicode_to_native(163);
+
 foreach ([0, '', '', 'empty'],
         [0, 'N', 'N', '1 char'],
         [1, 'NN', 'N', '1 char substring'],
         [-2, 'Perl', 'Rules', 'different'],
-        [0, chr 163, chr 163, 'pound sign'],
-        [1, chr (163) . 10, chr (163) . 1, '10 pounds is more than 1 pound'],
-        [1, chr(163) . chr(163), chr 163, '2 pound signs are more than 1'],
+        [0, $pound_sign, $pound_sign, 'pound sign'],
+        [1, $pound_sign . 10, $pound_sign . 1, '10 pounds is more than 1 pound'],
+        [1, $pound_sign . $pound_sign, $pound_sign, '2 pound signs are more than 1'],
         [-2, ' $!', " \x{1F42B}!", 'Camels are worth more than 1 dollar'],
         [-1, '!', "!\x{1F42A}", 'Initial substrings match'],
        ) {
@@ -24,6 +26,8 @@ foreach ([0, '', '', 'empty'],
     is(bytes_cmp_utf8($right, $left), -$expect, "$desc reversed");
 }
 
+if (ord("A") == 65) { # EBCDIC is too hard to test for malformations
+
 # Test uft8n_to_uvchr().  These provide essentially complete code coverage.
 
 # Copied from utf8.h
@@ -319,5 +323,6 @@ foreach my $test (@tests) {
         }
     }
 }
+}
 
 done_testing;