[Top][All Lists]
[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