Hello Jim. Just a minor nit, since your fix will have to be ported to automake's `tests/defs' too ...
On Monday 13 June 2011, Jim Meyering wrote: > Bruno Haible wrote: > > On HP-UX 11.31, built with cc, coreutils-8.12 gives 3 test suite failures: > > > > FAIL: misc/printf-surprise (exit: 1) > > FAIL: dd/nocache (exit: 1) > > FAIL: du/inaccessible-cwd (exit: 1) > > > > Find attached the log file. > > > ... > > FAIL: misc/printf-surprise (exit: 1) > > ==================================== > > > > ./init.sh: line 77: 1: Bad file number > > printf (GNU coreutils) 8.12 > > Copyright (C) 2011 Free Software Foundation, Inc. > > License GPLv3+: GNU GPL version 3 or later > > <http://gnu.org/licenses/gpl.html>. > > This is free software: you are free to change and redistribute it. > > There is NO WARRANTY, to the extent permitted by law. > ... > > Hi Bruno > > Thank you for the testing and report. > That "bad file number" error comes from this code in init.sh: > > : ${stderr_fileno_=2} > warn_ () { echo "$@" 1>&$stderr_fileno_; } > > Because of that, the log contains less information than usual. > If you can easily apply this patch and rerun the failing tests, > I'd appreciate it. It should avoid the error and let us see > more details about what is failing. > > > From 25e7bded3f2abff58540b0fcead2ba110d344bb0 Mon Sep 17 00:00:00 2001 > From: Jim Meyering <[email protected]> > Date: Mon, 13 Jun 2011 12:07:14 +0200 > Subject: [PATCH] init.sh: accommodate shells for which 1>&$stderr_fileno_ > fails > > * tests/init.sh (warn_): Use eval to work around a bug in some shells, > like those of Solaris 10 and HP-UX 11.11. > --- > tests/init.sh | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/tests/init.sh b/tests/init.sh > index 14f2e26..7a701f6 100644 > --- a/tests/init.sh > +++ b/tests/init.sh > @@ -74,7 +74,7 @@ Exit () { set +e; (exit $1); exit $1; } > # the reason for skip/failure to console, rather than to the .log files. > : ${stderr_fileno_=2} > > -warn_ () { echo "$@" 1>&$stderr_fileno_; } > +warn_ () { eval 'echo "'"$@"'" 1>&'"$stderr_fileno_"; } > Wouldn't it be simpler, and potentially more correct, to use simply: warn_ () { eval 'echo "$@" 1>&'"$stderr_fileno_"; } With your new implementation, I see this on Debian with bash and dash: $ stderr_fileno_=2; warn_ () { eval 'echo "'"$@"'" 1>&'"$stderr_fileno_"; } $ $ warn_ '$HOME' /home/stefano which is not intended behaviour IMHO. > fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; } > skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; } > framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; } > -- > 1.7.6.rc0.293.g40857 > > Regards, Stefano
