Use strict and warnings in stat.t
authorDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Thu, 16 Nov 2017 16:09:27 +0000 (16:09 +0000)
committerDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Thu, 16 Nov 2017 16:09:27 +0000 (16:09 +0000)
Either one would have caught the error fixed by the previous commit.

t/op/stat.t

index 9e4def5..905eb85 100644 (file)
@@ -6,6 +6,8 @@ BEGIN {
     set_up_inc('../lib');
 }
 
+use strict;
+use warnings;
 use Config;
 
 my ($Null, $Curdir);
@@ -32,22 +34,22 @@ my $Perl = which_perl();
 $ENV{LC_ALL}   = 'C';          # Forge English error messages.
 $ENV{LANGUAGE} = 'C';          # Ditto in GNU.
 
-$Is_Amiga   = $^O eq 'amigaos';
-$Is_Cygwin  = $^O eq 'cygwin';
-$Is_Darwin  = $^O eq 'darwin';
-$Is_Dos     = $^O eq 'dos';
-$Is_MSWin32 = $^O eq 'MSWin32';
-$Is_NetWare = $^O eq 'NetWare';
-$Is_OS2     = $^O eq 'os2';
-$Is_Solaris = $^O eq 'solaris';
-$Is_VMS     = $^O eq 'VMS';
-$Is_MPRAS   = $^O =~ /svr4/ && -f '/etc/.relid';
-$Is_Android = $^O =~ /android/;
-$Is_Dfly    = $^O eq 'dragonfly';
+my $Is_Amiga   = $^O eq 'amigaos';
+my $Is_Cygwin  = $^O eq 'cygwin';
+my $Is_Darwin  = $^O eq 'darwin';
+my $Is_Dos     = $^O eq 'dos';
+my $Is_MSWin32 = $^O eq 'MSWin32';
+my $Is_NetWare = $^O eq 'NetWare';
+my $Is_OS2     = $^O eq 'os2';
+my $Is_Solaris = $^O eq 'solaris';
+my $Is_VMS     = $^O eq 'VMS';
+my $Is_MPRAS   = $^O =~ /svr4/ && -f '/etc/.relid';
+my $Is_Android = $^O =~ /android/;
+my $Is_Dfly    = $^O eq 'dragonfly';
 
-$Is_Dosish  = $Is_Dos || $Is_OS2 || $Is_MSWin32 || $Is_NetWare;
+my $Is_Dosish  = $Is_Dos || $Is_OS2 || $Is_MSWin32 || $Is_NetWare;
 
-$ufs_no_ctime = ($Is_Dfly || $Is_Darwin) && (() = `df -t ufs . 2>/dev/null`) == 2;
+my $ufs_no_ctime = ($Is_Dfly || $Is_Darwin) && (() = `df -t ufs . 2>/dev/null`) == 2;
 
 if ($Is_Cygwin && !is_miniperl) {
   require Win32;
@@ -371,7 +373,7 @@ SKIP: {
     ok(! -t TTY,    '!-t on closed TTY filehandle');
 
     {
-        local $TODO = 'STDIN not a tty when output is to pipe' if $Is_VMS;
+        local our $TODO = 'STDIN not a tty when output is to pipe' if $Is_VMS;
         ok(-t,          '-t on STDIN');
     }
 }
@@ -480,6 +482,7 @@ like $@, qr/^The stat preceding lstat\(\) wasn't an lstat at /,
     open(FOO, ">$tmpfile") || DIE("Can't open temp test file: $!");
     my @statbuf = stat FOO;
     stat "test.pl";
+    no warnings 'io';
     my @lstatbuf = lstat *FOO{IO};
     is "@lstatbuf", "@statbuf", 'lstat $ioref reverts to regular fstat';
     close(FOO);
@@ -587,7 +590,6 @@ SKIP: {
 
 # [perl #71002]
 {
-    local $^W = 1;
     my $w;
     local $SIG{__WARN__} = sub { warn shift; ++$w };
     stat 'prepeinamehyparcheiarcheiometoonomaavto';
@@ -617,6 +619,7 @@ SKIP:
 
     my $Errno_loaded = eval { require Errno };
     my @statarg = ($statfile, $statfile);
+    no warnings 'syntax';
     ok !stat(@statarg),
     'stat on an array of valid paths should warn and should not return any data';
     my $error = 0+$!;
@@ -627,11 +630,15 @@ SKIP:
 }
 
 # [perl #131895] stat() doesn't fail on filenames containing \0 / NUL
-ok !stat("TEST\0-"), 'stat on filename with \0';
+{
+    no warnings 'syscalls';
+    ok !stat("TEST\0-"), 'stat on filename with \0';
+}
 SKIP: {
     my $link = "stat_t_$$\_TEST.symlink";
     my $can_symlink = eval { symlink "TEST", $link };
     skip "cannot symlink", 1 unless $can_symlink;
+    no warnings 'syscalls';
     ok !lstat("$link\0-"), 'lstat on filename with \0';
     unlink $link;
 }