automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug#8846: coreutils-8.12 on HP-UX 11.31: 3 of 365 tests failed


From: Stefano Lattarini
Subject: Re: bug#8846: coreutils-8.12 on HP-UX 11.31: 3 of 365 tests failed
Date: Sat, 18 Jun 2011 14:55:22 +0200
User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )

On Thursday 16 June 2011, Stefano Lattarini wrote:
> On Tuesday 14 June 2011, Stefano Lattarini wrote:
> > [adding automake-patches on CC:]
> > 
> > Reference to original thread(s), mostly duplicated:
> >  <http://lists.gnu.org/archive/html/bug-coreutils/2011-06/msg00051.html>
> >  <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00002.html>
> > 
> > Reference to last relevant message there:
> >  <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00018.html>
> >  <http://lists.gnu.org/archive/html/bug-coreutils/2011-06/msg00082.html>
> >  
> > On Tuesday 14 June 2011, Eric Blake wrote:
> > > On 06/13/2011 04:29 PM, Stefano Lattarini wrote:
> > > > If this work, then using a bare `>&2' *at the end of TESTS_ENVIRONMENT* 
> > > > and
> > > 
> > > You meant a bare `9>&2',
> > >
> > Yes, sorry.
> > 
> > > but yes that does seem to be workable for what we want!
> > > 
> > > > *without a following semicolon* might give a portable workaround, as if 
> > > > I'm
> > > > not mistaken POSIX mandates that redirections can be specified anywere 
> > > > on
> > > > the command line, and are to be evaluated from left to right.
> > > 
> > > Yes, all shells support these as equivalent:
> > > 
> > > 9>&2 sh k
> > > sh k 9>&2
> > > 
> > > > 
> > > > UPDATE: Yes, it seems to work.  I'll add a testcase to the 'maint' 
> > > > branch in
> > > > case you and Jim decide to go with this solution (and you can confirm 
> > > > that it
> > > > really works).
> > > 
> > > Cool!  Definitely worth documenting in the automake manual, as owner of
> > > TESTS_ENVIRONMENT and as a client of init.sh functionality, as well as
> > > your proposed automake testcase addition to ensure we don't break it.
> > > 
> >  
> > I'll then push the attached patch to automake master soonish (by tomorrow
> > or so) if there is no objection by then.
> > 
> I've pushed the patch now.
> 
> Regards,
>   Stefano
> 
I've applied the attached follow-up too, to increase coverage to situations
where not all the test scripts are shell scripts.

Regards,
  Stefano
From 964b785be1682bbd465feca4aa28d06f2909d4e6 Mon Sep 17 00:00:00 2001
Message-Id: <address@hidden>
From: Stefano Lattarini <address@hidden>
Date: Sat, 18 Jun 2011 14:53:08 +0200
Subject: [PATCH] tests: more checks on portable fd redirection in 
TESTS_ENVIRONMENT

* tests/tests-environment-fd-redirect.test: Extend by also using
a perl script among the tests.  Run the test shell script with
the `errexit' flag active.  Export `VERBOSE' to yes when running
"make check", to give more debugging information in case of
failures.  Look for a Korn Shell also in `/usr/bin', not on only
in `/bin'.
---
 ChangeLog                                |   10 +++++++
 tests/tests-environment-fd-redirect.test |   40 +++++++++++++++++++++--------
 2 files changed, 39 insertions(+), 11 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index e482cbd..5e97dfd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2011-06-18  Stefano Lattarini  <address@hidden>
+
+       tests: more checks on portable fd redirection in TESTS_ENVIRONMENT
+       * tests/tests-environment-fd-redirect.test: Extend by also using
+       a perl script among the tests.  Run the test shell script with
+       the `errexit' flag active.  Export `VERBOSE' to yes when running
+       "make check", to give more debugging information in case of
+       failures.  Look for a Korn Shell also in `/usr/bin', not on only
+       in `/bin'.
+
 2011-06-14  Stefano Lattarini  <address@hidden>
 
        tests: check portable fd redirection in TESTS_ENVIRONMENT
diff --git a/tests/tests-environment-fd-redirect.test 
b/tests/tests-environment-fd-redirect.test
index f9e6d2b..6c87cb6 100755
--- a/tests/tests-environment-fd-redirect.test
+++ b/tests/tests-environment-fd-redirect.test
@@ -33,41 +33,59 @@ cat >> configure.in << 'END'
 AC_OUTPUT
 END
 
+# Use both a shell script and a perl script as tests,
+# for better coverage.
+
 cat >foo.test <<'END'
 #! /bin/sh
 echo " " $0: foofoofoo >&8
 echo " " $0: barbarbar >&9
 END
-chmod a+x foo.test
+
+echo "#! $PERL -w" > bar.test
+cat >>bar.test <<'END'
+use warnings FATAL => 'all';
+use strict;
+open(FD8, ">&=8") or die "$!";
+open(FD9, ">&=9") or die "$!";
+print FD8 "  $0: 8888\n";
+print FD9 "  $0: 9999\n";
+END
+
+chmod a+x foo.test bar.test
 
 $ACLOCAL
 $AUTOCONF
 
-# /bin/ksh seems more vulnerable to the issue highlighted in coreutils
+# Korn Shells seem more vulnerable to the issue highlighted in coreutils
 # bug#8846 than other shells are.  In particular, the default Korn Shell
 # on Debian GNU/Linux is affected by the issue.  So let's try to run our
-# test with /bin/ksh too, if that's available.
-if test "$SHELL" != /bin/ksh && test -f /bin/ksh; then
-  bin_ksh=/bin/ksh
-else
-  bin_ksh=:
-fi
+# test with a system Korn Shell too, if that's available.
+bin_ksh=:
+case $SHELL in
+  ksh|*/ksh) ;;
+  *) for d in /bin /usr/bin; do
+       test -f $d/ksh && { bin_ksh=$d/ksh; break; }
+     done;;
+esac
 
 for sh in "$SHELL" "$bin_ksh"; do
   test "$sh" = : && continue
   for pfx in AM_ ''; do
     unindent > Makefile.am <<END
-      TESTS = foo.test
+      TESTS = foo.test bar.test
       ## No trailing semicolon here, *deliberately*.
       ${pfx}TESTS_ENVIRONMENT = 8>&1 9>&8
 END
     $AUTOMAKE -a
     CONFIG_SHELL="$sh" $sh ./configure CONFIG_SHELL="$sh"
-    $MAKE check >stdout || { cat stdout; Exit 1; }
+    VERBOSE=y $MAKE check >stdout || { cat stdout; Exit 1; }
     cat stdout
     grep '[ /]foo\.test: foofoofoo$' stdout
     grep '[ /]foo\.test: barbarbar$' stdout
-    $EGREP '(foofoofoo|barbarbar)' foo.log && Exit 1
+    grep '[ /]bar\.test: 8888$' stdout
+    grep '[ /]bar\.test: 9999$' stdout
+    $EGREP '(foofoofoo|barbarbar|8888|9999)' foo.log && Exit 1
     : # For shells with buggy 'set -e'.
   done
 done
-- 
1.7.2.3


reply via email to

[Prev in Thread] Current Thread [Next in Thread]