This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 5.003: t/op/stat.t
[perl5.git] / t / op / stat.t
old mode 100644 (file)
new mode 100755 (executable)
index 1d1b22c..0ec3168
@@ -1,7 +1,8 @@
 #!./perl
 
-# $RCSfile: stat.t,v $$Revision: 4.0.1.2 $$Date: 91/11/05 18:44:44 $
-
+# $RCSfile: stat.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:28 $
+# 950521 DFD    This version hacked to make test 39 succeed on MachTen
+#               though the O.S. wrongly thinks /dev/null is a terminal
 print "1..56\n";
 
 chop($cwd = `pwd`);
@@ -11,6 +12,8 @@ $DEV = `ls -l /dev`;
 unlink "Op.stat.tmp";
 open(FOO, ">Op.stat.tmp");
 
+$junk = `ls Op.stat.tmp`;      # hack to make Apollo update link count
+
 ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
     $blksize,$blocks) = stat(FOO);
 if ($nlink == 1) {print "ok 1\n";} else {print "not ok 1\n";}
@@ -32,10 +35,13 @@ if (($mtime && $mtime != $ctime) || $cwd =~ m#/afs/#) {
 }
 else {
     print "not ok 4\n";
+    print '#4 If test op/stat.t fails test 4, check if you are on a tmpfs';
+    print '#4 of some sort.  Building in /tmp sometimes has this problem.';
 }
 print "#4      :$mtime: != :$ctime:\n";
 
-`cp /dev/null Op.stat.tmp`;
+`rm -f Op.stat.tmp`;
+`touch Op.stat.tmp`;
 
 if (-z 'Op.stat.tmp') {print "ok 5\n";} else {print "not ok 5\n";}
 if (! -s 'Op.stat.tmp') {print "ok 6\n";} else {print "not ok 6\n";}
@@ -110,6 +116,7 @@ if (! -b '.') {print "ok 34\n";} else {print "not ok 34\n";}
 $cnt = $uid = 0;
 
 die "Can't run op/stat.t test 35 without pwd working" unless $cwd;
+print ("not ok 35\n"), goto tty_test unless -d '/usr/bin';
 chdir '/usr/bin' || die "Can't cd to /usr/bin";
 while (defined($_ = <*>)) {
     $cnt++;
@@ -119,7 +126,12 @@ while (defined($_ = <*>)) {
 chdir $cwd || die "Can't cd back to $cwd";
 
 # I suppose this is going to fail somewhere...
-if ($uid > 0 && $uid < $cnt) {print "ok 35\n";} else {print "not ok 35\n";}
+if ($uid > 0 && $uid < $cnt)
+    {print "ok 35\n";}
+else
+    {print "not ok 35 \n# ($uid $cnt)\n";}
+
+tty_test:
 
 unless (open(tty,"/dev/tty")) {
     print STDERR "Can't open /dev/tty--run t/TEST outside of make.\n";
@@ -129,7 +141,8 @@ if (-c tty) {print "ok 37\n";} else {print "not ok 37\n";}
 close(tty);
 if (! -t tty) {print "ok 38\n";} else {print "not ok 38\n";}
 open(null,"/dev/null");
-if (! -t null || -e '/xenix') {print "ok 39\n";} else {print "not ok 39\n";}
+if (! -t null || -e '/xenix' || -e '/MachTen')
+       {print "ok 39\n";} else {print "not ok 39\n";}
 close(null);
 if (-t) {print "ok 40\n";} else {print "not ok 40\n";}
 
@@ -138,8 +151,8 @@ if (-t) {print "ok 40\n";} else {print "not ok 40\n";}
 if (-T 'op/stat.t') {print "ok 41\n";} else {print "not ok 41\n";}
 if (! -B 'op/stat.t') {print "ok 42\n";} else {print "not ok 42\n";}
 
-if (-B './perl') {print "ok 43\n";} else {print "not ok 43\n";}
-if (! -T './perl') {print "ok 44\n";} else {print "not ok 44\n";}
+if (-B './perl' || -B './perl.exe') {print "ok 43\n";} else {print "not ok 43\n";}
+if (! -T './perl' && ! -T './perl.exe') {print "ok 44\n";} else {print "not ok 44\n";}
 
 open(FOO,'op/stat.t');
 eval { -T FOO; };