APItest/t/utf8_warn_base.pl: Standardize overflow test detection
authorKarl Williamson <khw@cpan.org>
Wed, 14 Jun 2017 21:24:29 +0000 (15:24 -0600)
committerKarl Williamson <khw@cpan.org>
Thu, 13 Jul 2017 03:14:24 +0000 (21:14 -0600)
There are two methods currently for detecting if a test is for overflow.
This standardizes on the one where the expected code point is 0, and
uses the already existing variable instead of qr//

ext/XS-APItest/t/utf8_warn_base.pl

index 419c2ce..a7d9484 100644 (file)
@@ -436,7 +436,7 @@ my @tests = (
         $::UTF8_WARN_ABOVE_31_BIT,
         $::UTF8_DISALLOW_ABOVE_31_BIT,
         $::UTF8_GOT_ABOVE_31_BIT,
-        'utf8', 0,
+        'utf8', -1,
         (! isASCII || $::is64bit) ? $::max_bytes : 7,
         (isASCII || $::is64bit) ? 2 : 8,
         qr/overflows/
@@ -451,7 +451,7 @@ if (! $::is64bit) {
                 "\xFE\x84\x80\x80\x80\x80\x80",
                 $::UTF8_WARN_ABOVE_31_BIT, $::UTF8_DISALLOW_ABOVE_31_BIT,
                 $::UTF8_GOT_ABOVE_31_BIT,
-                'utf8', 0x100000000,
+                'utf8', -1,
                 7, 1,
                 qr/and( is)? not portable/
             ];
@@ -545,7 +545,7 @@ foreach my $test (@tests) {
        ) = @$test;
 
     my $length = length $bytes;
-    my $will_overflow = $testname =~ /overflow/ ? 'overflow' : "";
+    my $will_overflow = $allowed_uv < 0;
 
     {
         use warnings;
@@ -620,7 +620,7 @@ foreach my $test (@tests) {
             # bit.  It is really testing other things than the partial
             # character tests, for which other tests in this file are
             # sufficient
-            last if $testname =~ /overflow/;
+            last if $will_overflow;
 
             foreach my $disallow_flag (0, $disallow_flags) {
                 my $partial = substr($bytes, 0, $j);