From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1641 invoked from network); 28 May 2001 16:06:58 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 28 May 2001 16:06:58 -0000 Received: (qmail 10322 invoked by alias); 28 May 2001 16:06:50 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 14510 Received: (qmail 10289 invoked from network); 28 May 2001 16:06:48 -0000 From: "Bart Schaefer" Message-Id: <1010528160638.ZM5969@candle.brasslantern.com> Date: Mon, 28 May 2001 16:06:38 +0000 In-Reply-To: <000701c0e742$6f9f1bd0$21c9ca95@mow.siemens.ru> Comments: In reply to "Andrej Borsenkow" "Re: PATCH: Block device tests" (May 28, 10:50am) References: <000701c0e742$6f9f1bd0$21c9ca95@mow.siemens.ru> X-Mailer: Z-Mail (5.0.0 30July97) To: "Andrej Borsenkow" , "ZSH Workers Mailing List" Subject: Re: PATCH: Block device tests MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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