This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
As the test is about the parser, not actually running the code, better
[perl5.git] / lib / if.t
index 12ad0b0..d09de58 100644 (file)
--- a/lib/if.t
+++ b/lib/if.t
@@ -1,15 +1,26 @@
 #!./perl
 
 BEGIN {
-    chdir 't' if -d 't';
-    @INC = '../lib';
+    chdir 't' and @INC = '../lib' if $ENV{PERL_CORE};
 }
 
-use Test::More tests => 4;
+my $t = 1;
+print "1..5\n";
+sub ok {
+  print "not " unless shift;
+  print "ok $t # ", shift, "\n";
+  $t++;
+}
 
 my $v_plus = $] + 1;
 my $v_minus = $] - 1;
 
+unless (eval 'use open ":std"; 1') {
+  # pretend that open.pm is present
+  $INC{'open.pm'} = 'open.pm';
+  eval 'sub open::foo{}';              # Just in case...
+}
+
 
 ok( eval "use if ($v_minus > \$]), strict => 'subs'; \${'f'} = 12" eq 12,
     '"use if" with a false condition, fake pragma');
@@ -24,3 +35,7 @@ ok( (not defined eval "use if ($v_plus > \$]), strict => 'refs'; \${'f'} = 12"
      and $@ =~ /while "strict refs" in use/),
     '"use if" with a true condition and a pragma');
 
+# Old version had problems with the module name `open', which is a keyword too
+# Use 'open' =>, since pre-5.6.0 could interpret differently
+ok( (eval "use if ($v_plus > \$]), 'open' => IN => ':crlf'; 12" || 0) eq 12,
+    '"use if" with open');