This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
uni/variables.t: Add TODO tests
authorKarl Williamson <khw@cpan.org>
Sat, 11 Jul 2015 18:03:20 +0000 (12:03 -0600)
committerKarl Williamson <khw@cpan.org>
Mon, 13 Jul 2015 18:17:41 +0000 (12:17 -0600)
These show a bug in perl parsing where utf8ness makes a difference.
in what happens.  In this case, a syntax error is accompanied by warning
messages when in 'use utf8', and no warnings when not.  I'm not filing a
bug report, as I don't think it is worth fixing, as it is a syntax error
after all.  But I did make tests for it, as TODOs.

t/uni/variables.t

index e87e1f6..24e755a 100644 (file)
@@ -136,6 +136,11 @@ for ( 0x0 .. 0xff ) {
             like($@, qr/ syntax\ error | Unrecognized\ character /x,
                      "$name as a length-1 variable generates a syntax error");
             $tests++;
+            utf8::upgrade($chr);
+            evalbytes "no strict; use utf8; \$$chr = 4;",
+            like($@, qr/ syntax\ error | Unrecognized\ character /x,
+                     "  ... and the same under 'use utf8'");
+            $tests++;
         }
         elsif ($ord < 32 || $chr =~ /[[:punct:][:digit:]]/a) {
 
@@ -243,7 +248,11 @@ for ( 0x0 .. 0xff ) {
                 splice @warnings, $i, 1 if $warnings[$i] =~ /is no longer supported/;
             }
         }
-        if (! ok(@warnings == 0, "  ... and doesn't generate any warnings")) {
+        my $message = "  ... and doesn't generate any warnings";
+        $message = "  TODO $message" if    $ord == 0
+                                        || $chr =~ /\s/a;
+
+        if (! ok(@warnings == 0, $message)) {
             note join "\n", @warnings;
         }
         $tests++;