This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
t/op/bop.t: Re-add in some tests
authorKarl Williamson <khw@cpan.org>
Wed, 7 Jun 2017 20:20:08 +0000 (14:20 -0600)
committerKarl Williamson <khw@cpan.org>
Wed, 7 Jun 2017 21:05:17 +0000 (15:05 -0600)
Commit 5d09ee1cb7b68f5e6fd15233bfe5048612e8f949 fatalized above 0xFF
code points in the bitwise operators.  It removed a bunch of tests in
t/op/bop.t.  I had independently been working on this task.  An issue
with removing such tests is are they there to be testing wide
characters, or are they there to test UTF-8, and the use of above-FF was
merely incidental?  I had undertaken the tedious work of looking through
the commits for all the tests that now fail to determine which category
they were in.  I concur mostly with the previous commit, but there were
a few tests that I found that should have been retained, and modified to
pass under the new scheme.  This commit does that.

Deprecated warnings no longer have to be turned off, as they were
because of the previous tests that have now been removed.

t/op/bop.t

index c3f0085..541d671 100644 (file)
@@ -5,7 +5,6 @@
 #
 
 use warnings;
-no warnings 'deprecated';
 
 BEGIN {
     chdir 't' if -d 't';
@@ -19,7 +18,7 @@ BEGIN {
 # If you find tests are failing, please try adding names to tests to track
 # down where the failure is, and supply your new names as a patch.
 # (Just-in-time test naming)
-plan tests => 341;
+plan tests => 471;
 
 # numerics
 ok ((0xdead & 0xbeef) == 0x9ead);
@@ -303,12 +302,12 @@ SKIP: {
     $a &= "a";
     ok($a =~ /a+$/, 'ASCII "a" is NUL-terminated');
 
-    $b = "bb\x{100}";
+    $b = "bb\x{FF}";
+    utf8::upgrade($b);
     $b &= "b";
     ok($b =~ /b+$/, 'Unicode "b" is NUL-terminated');
 }
 
-
 # New string- and number-specific bitwise ops
 {
   use feature "bitwise";
@@ -361,7 +360,8 @@ SKIP: {
 
 my %res;
 
-for my $str ("x", "\x{100}") {
+for my $str ("x", "\x{B6}") {
+    utf8::upgrade($str) if $str !~ /x/;
     for my $chr (qw/S A H G X ( * F/) {
         for my $op (qw/| & ^/) {
             my $co = ord $chr;
@@ -401,8 +401,9 @@ for (
 ) {
     my ($val, $orig, $type) = @$_;
 
-    for (["x", "string"]) {
+    for (["x", "string"], ["\x{B6}", "utf8"]) {
         my ($str, $desc) = @$_;
+        utf8::upgrade($str) if $desc =~ /utf8/;
 
         $warn = 0;