Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: Block device tests



>
> Not finding any block (or character) devices because /dev is inaccessible
> to nonprivileged users -- which has been the cause of at least a few of
> the device test failures reported -- is not the same as "not implemented"
> (which is presumably the issue with mkfifo on ReliantUNIX).
>

It is on Cygwin.

>
> Could we use a grep of config.h as the not-implemented test?
>

Yes; this does it for mkfifo test. For procsubst we need to skip the whole
file (not just a single test) - I cannot see how to do it currently (the
grep shuold be for HAVE_FIFOS or HAVE_PATH_FD).

There are still problems under Cygwin - there is no reliable way to mark a
file as executable. At least, I cannot think about one offhand.

-andrej

Index: Test/C02cond.ztst
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/C02cond.ztst,v
retrieving revision 1.5
diff -u -r1.5 C02cond.ztst
--- Test/C02cond.ztst   2001/05/26 08:41:02     1.5
+++ Test/C02cond.ztst   2001/05/28 06:46:31
@@ -27,7 +27,7 @@
 0:-a cond

   # Find a block special file system.  This is a little tricky.
-  block=$(find /dev(|ices)/ -type b -print 2> /dev/null)
+  block=$(find /dev(|ices)/ -type b -print)
   if [[ -n $block ]]; then
     [[ -b $block[(f)1] && ! -b zerolength ]]
   else
@@ -36,8 +36,9 @@
   fi
 0D:-b cond

-  char=(/dev/tty*([1]))
-  [[ -c $char && ! -c $block ]]
+  # Use hardcoded /dev/tty because globbing inside /dev fails on Cygwin
+  char=/dev/tty
+  [[ -c $char && ! -c $zerolength ]]
 0:-c cond

   [[ -d . && ! -d zerolength ]]
@@ -67,12 +68,17 @@
   [[ -o rcs && ! -o norcs && -o noerrexit && ! -o errexit ]]
 0:-o cond

-  if whence mkfifo >/dev/null; then
-    mkfifo pipe
+  if ! grep '#define HAVE_FIFOS' ../../config.h > /dev/null 2>&1; then
+    print -u8 'Warning: Not testing [[ -p pipe ]] (FIFOs not supported)'
+    [[ ! -p zerolength ]]
   else
-    mknod pipe p
+    if whence mkfifo >/dev/null; then
+      mkfifo pipe
+    else
+      mknod pipe p
+    fi
+    [[ ( $nopipe == true || -p pipe ) && ! -p zerolength ]]
   fi
-  [[ -p pipe && ! -p zerolength ]]
 0:-p cond

   [[ -r zerolength && ! -r unmodish ]]



Messages sorted by: Reverse Date, Date, Thread, Author