$Is_Cygwin = $^O eq 'cygwin';
$Is_Darwin = $^O eq 'darwin';
$Is_Dos = $^O eq 'dos';
-$Is_MacOS = $^O eq 'MacOS';
$Is_MPE = $^O eq 'mpeix';
$Is_MSWin32 = $^O eq 'MSWin32';
$Is_NetWare = $^O eq 'NetWare';
my $Curdir = File::Spec->curdir;
-my $tmpfile = 'Op_stat.tmp';
-my $tmpfile_link = $tmpfile.'2';
+my $tmpfile = tempfile();
+my $tmpfile_link = tempfile();
chmod 0666, $tmpfile;
1 while unlink $tmpfile;
my($nlink, $mtime, $ctime) = (stat(FOO))[$NLINK, $MTIME, $CTIME];
+# The clock on a network filesystem might be different from the
+# system clock.
+my $Filesystem_Time_Offset = abs($mtime - time);
+
#nlink should if link support configured in Perl.
SKIP: {
skip "No link count - Hard link support not built in.", 1
SKIP: {
skip "mtime and ctime not reliable", 2
- if $Is_MSWin32 or $Is_NetWare or $Is_Cygwin or $Is_Dos or $Is_MacOS or $Is_Darwin;
+ if $Is_MSWin32 or $Is_NetWare or $Is_Cygwin or $Is_Dos or $Is_Darwin;
ok( $mtime, 'mtime' );
is( $mtime, $ctime, 'mtime == ctime' );
SKIP: {
skip "-x simply determines if a file ends in an executable suffix", 1
- if $Is_Dosish || $Is_MacOS;
+ if $Is_Dosish;
ok(-x $tmpfile, ' -x');
}
unlink $linkname or print "# unlink $linkname failed: $!\n";
}
-print "# Zzz...\n";
-sleep(3);
-my $f = 'tstamp.tmp';
-unlink $f;
-ok (open(S, "> $f"), 'can create tmp file');
-close S or die;
-my @a = stat $f;
-print "# time=$^T, stat=(@a)\n";
-my @b = (-M _, -A _, -C _);
-print "# -MAC=(@b)\n";
-ok( (-M _) < 0, 'negative -M works');
-ok( (-A _) < 0, 'negative -A works');
-ok( (-C _) < 0, 'negative -C works');
-ok(unlink($f), 'unlink tmp file');
+SKIP: {
+ skip "Too much clock skew between system and filesystem", 5
+ if ($Filesystem_Time_Offset > 5);
+ print "# Zzz...\n";
+ sleep($Filesystem_Time_Offset+1);
+ my $f = 'tstamp.tmp';
+ unlink $f;
+ ok (open(S, "> $f"), 'can create tmp file');
+ close S or die;
+ my @a = stat $f;
+ print "# time=$^T, stat=(@a)\n";
+ my @b = (-M _, -A _, -C _);
+ print "# -MAC=(@b)\n";
+ ok( (-M _) < 0, 'negative -M works');
+ ok( (-A _) < 0, 'negative -A works');
+ ok( (-C _) < 0, 'negative -C works');
+ ok(unlink($f), 'unlink tmp file');
+}
{
ok(open(F, ">", $tmpfile), 'can create temp file');