APItest/t/utf8_warn_base.pl: Do test on all platforms
authorKarl Williamson <khw@cpan.org>
Mon, 19 Jun 2017 17:47:54 +0000 (11:47 -0600)
committerKarl Williamson <khw@cpan.org>
Thu, 13 Jul 2017 03:14:25 +0000 (21:14 -0600)
This modifies and moves a test so it gets done on all platforms, not
just 32-bit ASCII.  It is an edge case on all platforms, but gives
differing results, overflowing on 32-bit ones.

ext/XS-APItest/t/utf8_warn_base.pl

index 7e3d2ef..c6596cd 100644 (file)
@@ -285,16 +285,19 @@ my @tests;
             0xFFFFFFFF,
             (isASCII) ? 1 : 8,
         ],
+        [ "Lowest 33 bit code point",
+            (isASCII)
+            ?  "\xfe\x84\x80\x80\x80\x80\x80"
+            : I8_to_native(
+                "\xff\xa0\xa0\xa0\xa0\xa0\xa0\xa4\xa0\xa0\xa0\xa0\xa0\xa0"),
+            ($::is64bit) ? 0x100000000 : -1,   # Overflows on 32-bit systems
+            (isASCII && ! $::is64bit) ? 2 : 1,
+        ],
     );
 
     if (! $::is64bit) {
         if (isASCII) {
             push @tests,
-                [ "Lowest 33 bit code point: overflow",
-                    "\xFE\x84\x80\x80\x80\x80\x80",
-                    -1,
-                    1,
-                ],
                 [ "overflow that old algorithm failed to detect",
                     "\xfe\x86\x80\x80\x80\x80\x80",
                     -1,