develooper Front page | perl.perl5.porters | Postings from July 2001

[PATCH: perl@11373] Win32 update for t/io/fs.t (may effect NetWare)

From:
Prymmer/Kahn
Date:
July 21, 2001 12:08
Subject:
[PATCH: perl@11373] Win32 update for t/io/fs.t (may effect NetWare)
Message ID:
Pine.BSF.4.21.0107211156160.17271-100000@shell8.ba.best.com

Greetings,

The intent of this patch is to turn `nmake test` results that look
like this:

io/fs.................................The system cannot find the path specified.
ok, 12/29 skipped: various reasons
io/inplace............................ok

which can in turn be traced to running io/fs.t.orig by hand like so:

1..29
ok 1 # skipped: bogus umask()
ok 2 # skipped: no link
ok 3 # skipped: no link
ok 4 # skipped: no link
ok 5 # skipped: no link
ok 6
ok 7 # skipped: no link
ok 8 # skipped: no link
ok 9 # skipped: no link
ok 10 # skipped: no link
ok 11 # skipped: no link
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17 # skipped: bogus (stat)[1]
ok 18 # skipped: granularity of the filetime
ok 19
ok 20
The system cannot find the path specified.
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29

into this:

1..29
ok 1 # skipped: bogus umask()
ok 2 # skipped: no link
ok 3 # skipped: no link
ok 4 # skipped: no link
ok 5 # skipped: no link
ok 6
ok 7 # skipped: no link
ok 8 # skipped: no link
ok 9 # skipped: no link
ok 10 # skipped: no link
ok 11 # skipped: no link
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17 # skipped: bogus (stat)[1]
ok 18 # skipped: granularity of the filetime
ok 19
ok 20
ok 21 # skipped: no link
ok 22 # skipped: no link
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29

Note that this patch attempts to be a bit more informative about
skipping reasons for tests 21 and 22 on non MSWin32||NetWare
platforms.  It uses the `2>nul` idiom that was actually employed
elsewhere in the script for MSWin32 and NetWare, but it leaves in place
the mystery about what to do if you do not have an ls utility in your
%PATH%.  Testing by NetWare folk would be appreciated:

--- perl_11373/t/io/fs.t.orig	Sat Jul 21 11:55:03 2001
+++ perl_11373/t/io/fs.t	Sat Jul 21 11:54:58 2001
@@ -136,7 +136,9 @@
 chdir $wd || die "Can't cd back to $wd";
 
 unlink 'c';
-if ((($^O eq 'MSWin32') || ($^O eq 'NetWare')) and `ls -l perl 2>/dev/null` =~ /^l.*->/) {
+# Yet another way to look for links (perhaps those that cannot be created by perl?).
+# Hopefully there is an ls utility in your %PATH%. N.B. that $^O is 'cygwin' on Cygwin.
+if ((($^O eq 'MSWin32') || ($^O eq 'NetWare')) and `ls -l perl 2>nul` =~ /^l.*->/) {
     # we have symbolic links
     system("cp TEST TEST$$");
     # we have to copy because e.g. GNU grep gets huffy if we have
@@ -149,7 +151,12 @@
     unlink("TEST$$");
 }
 else {
-    print "ok 21\nok 22\n";
+    if ( ($^O eq 'MSWin32') || ($^O eq 'NetWare') ) {
+        print "ok 21 # skipped: no link\nok 22 # skipped: no link\n";
+    }
+    else {
+        print "ok 21 # skipped: $^O is neither 'MSWin32' nor 'NetWare'\nok 22 # skipped: $^O is neither 'MSWin32' nor 'NetWare'\n";
+    }
 }
 
 # truncate (may not be implemented everywhere)
End of Patch.

I note BTW that this patch has been changed a bit most recently by # 11198
(MacOS), # 10942 (MPE/iX), 10862 and 10643.  With perhaps more native
shell command substitutions this could be made to work on VMS as well
(changes not included above).

Peter Prymmer





nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About