shared hash keys and ++/--
[p5sagit/p5-mst-13.2.git] / t / op / stat.t
index 20dbd90..5711236 100755 (executable)
@@ -9,7 +9,7 @@ BEGIN {
 
 use Config;
 
-print "1..58\n";
+print "1..59\n";
 
 $Is_MSWin32 = $^O eq 'MSWin32';
 $Is_NetWare = $^O eq 'NetWare';
@@ -93,13 +93,13 @@ else             { `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";}
 
-$Is_MSWin32 ? `cmd /c echo hi > Op.stat.tmp` : `echo hi >Op.stat.tmp`;
+`echo hi >Op.stat.tmp`;
 if (! -z 'Op.stat.tmp') {print "ok 7\n";} else {print "not ok 7\n";}
 if (-s 'Op.stat.tmp') {print "ok 8\n";} else {print "not ok 8\n";}
 
 unlink 'Op.stat.tmp' or print "# unlink failed: $!\n";
 $olduid = $>;          # can't test -r if uid == 0
-$Is_MSWin32 ? `cmd /c echo hi > Op.stat.tmp` : `echo hi >Op.stat.tmp`;
+`echo hi >Op.stat.tmp`;
 chmod 0,'Op.stat.tmp';
 eval '$> = 1;';                # so switch uid (may not be implemented)
 if (!$> || $Is_Dos || $Is_Cygwin || ! -r 'Op.stat.tmp') {print "ok 9\n";} else {print "not ok 9\n";}
@@ -180,9 +180,9 @@ if ($Is_MPE or $^O eq 'amigaos' or $Is_Dosish or $Is_Cygwin) {
 $cnt = $uid = 0;
 
 die "Can't run op/stat.t test 35 without pwd working" unless $cwd;
-my @bin = grep {-d} ($^O eq 'machten' ?
-                    qw(/usr/bin /bin) :
-                    qw(/sbin /usr/sbin /bin /usr/bin));
+my @bin = grep {-d && -r && -x} ($^O eq 'machten' ?
+                                 qw(/usr/bin /bin) :
+                                 qw(/sbin /usr/sbin /bin /usr/bin));
 unless (@bin) { print ("not ok 35\n"), goto tty_test; }
 for my $bin (@bin) {
     opendir BIN, $bin or die "Can't opendir $bin: $!";
@@ -208,14 +208,11 @@ tty_test:
 # can be set to skip the tests that need a tty.
 unless($ENV{PERL_SKIP_TTY_TEST}) {
     if ($Is_MSWin32 || $Is_NetWare) {
-       print "ok 36\n";
-       print "ok 37\n";
+       print "ok 36 # Skip: $^O\n";
+       print "ok 37 # Skip: $^O\n";
     }
     else {
-       my $TTY = "/dev/tty";
-
-       $TTY = "/dev/ttyp0" if $^O eq 'rhapsody';
-
+       my $TTY = $^O eq 'rhapsody' ? "/dev/ttyp0" : "/dev/tty";
        if (defined $TTY) {
            unless (open(TTY, $TTY)) {
                print STDERR "Can't open $TTY--run t/TEST outside of make.\n";
@@ -232,10 +229,7 @@ unless($ENV{PERL_SKIP_TTY_TEST}) {
     if (-t)       {print "ok 39\n";} else {print "not ok 39\n";}
 }
 else {
-    print "ok 36\n";
-    print "ok 37\n";
-    print "ok 38\n";
-    print "ok 39\n";
+    for (36..39) { print "ok $_ # Skip: PERL_SKIP_TTY_TEST\n" }
 }
 open(null,"/dev/null");
 if (! -t null || -e '/xenix' || $^O eq 'machten' || $Is_MSWin32 || $Is_NetWare)
@@ -287,3 +281,7 @@ if (-f) {print "ok 57\n";} else {print "not ok 57\n";}
 if (-f()) {print "ok 58\n";} else {print "not ok 58\n";}
 
 unlink 'Op.stat.tmp' or print "# unlink failed: $!\n";
+
+# bug id 20011101.069
+my @r = \stat(".");
+if (@r == 13) { print "ok 59\n" } else { print "not ok 59\n" }