On 07/10/2012 03:56 PM, Max Horn wrote: > > This fixes most of the errors, except for > > PASS: t/suffix8.tap 10 > ERROR: t/suffix8.tap 10 - make distcheck # UNPLANNED > ERROR: t/suffix8.tap - too many tests run (expected 10, got 11) > > I looked at the log, this is again the same issue, configure > is run once again > Of course, by "make distcheck"! *faceplam* I should have been more careful.
> and once again suffers from the same problem. > Does the attached patch fares better? Thanks, Stefano
>From 65e7ac8c3556d1895ee597811856710143cfc4ac Mon Sep 17 00:00:00 2001 Message-Id: <65e7ac8c3556d1895ee597811856710143cfc4ac.1341929183.git.stefano.lattar...@gmail.com> From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Tue, 10 Jul 2012 15:29:57 +0200 Subject: [PATCH] tests: avoid spurious TAP errors on Mac OS X 10.7 Fixes automake bug#1897. Reported by Max Horn. * t/suffix8.tap: The libtool bug#11895 was causing the ./configure script to output a stray "ok" string on a line of its own, confusing the TAP driver into thinking this was an extra test result (which resulted in the next, real test results being flagged as "OUT-OF-ORDER"). Fix this by protecting configure output. * t/suffix10.tap: Likewise, and for the "make distcheck" output as well. * THANKS: Update. Signed-off-by: Stefano Lattarini <stefano.lattar...@gmail.com> --- THANKS | 1 + t/suffix10.tap | 13 ++++++++++++- t/suffix8.tap | 15 +++++++++++++-- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/THANKS b/THANKS index 01b78c1..afdd33a 100644 --- a/THANKS +++ b/THANKS @@ -245,6 +245,7 @@ Matthew D. Langston langs...@slac.stanford.edu Matthias Andree matthias.and...@gmx.de Matthias Clasen cla...@mathematik.uni-freiburg.de Matthias Klose d...@ubuntu.com +Max Horn m...@quendi.de Maxim Sinev g...@goods.ru Maynard Johnson mayna...@us.ibm.com Merijn de Jonge m.de.jo...@cwi.nl diff --git a/t/suffix10.tap b/t/suffix10.tap index a650924..7e19e04 100755 --- a/t/suffix10.tap +++ b/t/suffix10.tap @@ -57,11 +57,22 @@ cat > foo.x_ << 'END' int foo (void) { return yyparse(); } END +# We must protect the TAP driver from the output of configure, since +# that might output a stray "ok" on a line of its own (due to a +# libtool bug on Mac OS X), thus causing a spurious test result to +# be seen. See automake bug#11897. +run_configure () +{ + st=0; ./configure >output 2>&1 || st=1 + sed 's/^/ /' output + test $st -eq 0 +} + command_ok_ "libtoolize" libtoolize --force command_ok_ "aclocal" $ACLOCAL command_ok_ "autoconf" $AUTOCONF command_ok_ "automake" $AUTOMAKE --add-missing -command_ok_ "configure" ./configure +command_ok_ "configure" run_configure command_ok_ "make test" $MAKE test directive=''; make_can_chain_suffix_rules || directive=TODO diff --git a/t/suffix8.tap b/t/suffix8.tap index fdaf087..516c9b2 100755 --- a/t/suffix8.tap +++ b/t/suffix8.tap @@ -75,11 +75,22 @@ END echo 'int main (void) { return 0; }' > foo.x_ echo 'int bar (void) { return 0; }' > bar.x_ +# We must protect the TAP driver from the output of configure, since +# that might output a stray "ok" on a line of its own (due to a +# libtool bug on Mac OS X), thus causing a spurious test result to +# be seen. See automake bug#11897. +protect_output () +{ + st=0; "$@" >output 2>&1 || st=1 + sed 's/^/ /' output + test $st -eq 0 +} + command_ok_ "libtoolize" libtoolize command_ok_ "aclocal" $ACLOCAL command_ok_ "autoconf" $AUTOCONF command_ok_ "automake" $AUTOMAKE -a -command_ok_ "configure" ./configure +command_ok_ "configure" protect_output ./configure command_ok_ "make test0" env OBJEXT=foo $MAKE -e test0 command_ok_ "make test1" $MAKE test1 @@ -88,7 +99,7 @@ directive=''; make_can_chain_suffix_rules || directive=TODO for target in test2 all distcheck; do command_ok_ "make $target" \ -D "$directive" -r "suffix rules not chained" \ - $MAKE $target + protect_output $MAKE $target done : -- 1.7.9.5