This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
signatures.t: To-do tests for #123010
authorFather Chrysostomos <sprout@cpan.org>
Sun, 19 Oct 2014 20:51:25 +0000 (13:51 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Mon, 20 Oct 2014 00:06:31 +0000 (17:06 -0700)
t/op/signatures.t

index f9c6770..861371b 100644 (file)
@@ -2,10 +2,9 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    @INC = '../lib';
     require './test.pl';
+    set_up_inc('../lib');
 }
-plan 912;
 
 eval "#line 8 foo\nsub t004 :method (\$a) { }";
 is $@, "Experimental subroutine signatures not enabled at foo line 8\.\n",
@@ -1303,4 +1302,24 @@ is scalar(t117()), undef;
 is scalar(@{[ t117(333, 444) ]}), 0;
 is scalar(t117(333, 444)), undef;
 
+use File::Spec::Functions;
+my $keywords_file = catfile(updir,'regen','keywords.pl');
+open my $kh, $keywords_file
+   or die "$0 cannot open $keywords_file: $!";
+while(<$kh>) {
+    if (m?__END__?..${\0} and /^[+-]/) {
+        chomp(my $word = $');
+        # $y should be an error after $x=foo.  The exact error we get may
+        # differ if this is __END__ or s or some other special keyword.
+        eval 'sub ($x = ' . $word . ', $y) {}';
+        local $::TODO = 'does not work yet'
+          if $word =~ /^(?:chmod|chown|die|exec|glob|kill|mkdir|print
+                          |printf|return|reverse|select|setpgrp|sort|split
+                          |system|unlink|utime|warn)\z/x;
+        isnt $@, "", "$word does not swallow trailing comma";
+    }
+}
+
+done_testing;
+
 1;