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

Re: PATCH: Block device tests



On May 28, 10:50am, Andrej Borsenkow wrote:
} Subject: Re: PATCH: Block device tests
}
} > 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).

Hmm.  Are there other platforms that don't HAVE_PATH_FD where process
substitution does work?

} +  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
} +    if whence mkfifo >/dev/null; then
} +      mkfifo pipe
} +    else
} +      mknod pipe p
} +    fi
} +    [[ ( $nopipe == true || -p pipe ) && ! -p zerolength ]]
}    fi
}  0:-p cond

That $nopipe looks like it drifted in from another patch.  Also, I've
begun to prefer using `0d' and `0D' and even (in this case) `0dD' as
the result key rather than redirecting the output of the "setup" code,
because then with ZTST_verbose=2 one actually gets to see the results
of the find/grep/whence/etc., which can be helpful in debugging.

Perhaps printing the stdout/stderr should move up to ZTST_verbose == 3.

Anyway, I'm going to commit the following and credit Andrej.

diff -u zsh-forge/current/Test/C02cond.ztst zsh-4.0/Test/C02cond.ztst
--- zsh-forge/current/Test/C02cond.ztst	Sun May 27 15:43:53 2001
+++ zsh-4.0/Test/C02cond.ztst	Mon May 28 08:57:22 2001
@@ -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,13 +68,18 @@
   [[ -o rcs && ! -o norcs && -o noerrexit && ! -o errexit ]]
 0:-o cond
 
-  if whence mkfifo >/dev/null; then
-    mkfifo pipe
+  if ! grep '#define HAVE_FIFOS' $ZTST_testdir/../config.h; then
+    print -u8 'Warning: Not testing [[ -p pipe ]] (FIFOs not supported)'
+    [[ ! -p zerolength ]]
   else
-    mknod pipe p
+    if whence mkfifo && mkfifo pipe || mknod pipe p; then
+      [[ -p pipe && ! -p zerolength ]]
+    else
+      print -u8 'Warning: Not testing [[ -p pipe ]] (cannot create FIFO)'
+      [[ ! -p zerolength ]]
+    fi
   fi
-  [[ -p pipe && ! -p zerolength ]]
-0:-p cond
+0dD:-p cond
 
   [[ -r zerolength && ! -r unmodish ]]
 0:-r cond

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   



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