I pushed the attached patch to maint, and merged into master and branch-1.11.
See "real-world" motivations for this patch at: <http://lists.gnu.org/archive/html/automake-patches/2010-11/msg00222.html> <http://lists.gnu.org/archive/html/automake-patches/2010-11/msg00223.html> Regards, Stefano -*-*-*- Fix spurious silent*.test failures for $CC != gcc In some tests on automake-produced silent rules, we forced the use of gcc depmode to improve testsuite coverage; but this has unsurprisingly led to spurious failures when some non-GNU C compilers were used. So we are now careful to require GCC in tests that force gcc depmode. From reports by Ralf Wildenhues. * silent5.test: Test removed, its content split into ... * silent-many-generic.test, silent-many-gcc.test: ... these new sister tests, the latter of which forces gcc depmode and lists "gcc" in $required. * silentlex.test: Test removed, its content split into ... * silent-lex-generic.test, silent-lex-gcc.test: ... these new sister tests, the latter of which forces gcc depmode and lists "gcc" in $required. * silentyacc.test: Test removed, its content split into ... * silent-yacc-generic.test, silent-yacc-gcc.test: ... these new sister tests, the latter of which forces gcc depmode and lists "gcc" in $required. * tests/Makefile.am (TESTS): Updated.
From 22ee3bdfb7d140f61e276eae28fbabe321f6c32a Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Thu, 25 Nov 2010 22:06:14 +0100 Subject: [PATCH] Fix spurious silent*.test failures for $CC != gcc In some tests on automake-produced silent rules, we forced the use of gcc depmode to improve testsuite coverage; but this has unsurprisingly led to spurious failures when some non-GNU C compilers were used. So we are now careful to require GCC in tests that force gcc depmode. From reports by Ralf Wildenhues. * silent5.test: Test removed, its content split into ... * silent-many-generic.test, silent-many-gcc.test: ... these new sister tests, the latter of which forces gcc depmode and lists "gcc" in $required. * silentlex.test: Test removed, its content split into ... * silent-lex-generic.test, silent-lex-gcc.test: ... these new sister tests, the latter of which forces gcc depmode and lists "gcc" in $required. * silentyacc.test: Test removed, its content split into ... * silent-yacc-generic.test, silent-yacc-gcc.test: ... these new sister tests, the latter of which forces gcc depmode and lists "gcc" in $required. * tests/Makefile.am (TESTS): Updated. --- ChangeLog | 23 ++++++++++++++++++++ tests/Makefile.am | 9 +++++-- tests/Makefile.in | 9 +++++-- tests/{silentlex.test => silent-lex-gcc.test} | 13 ++++++----- tests/{silentlex.test => silent-lex-generic.test} | 9 ++++--- tests/{silent5.test => silent-many-gcc.test} | 15 +++++++------ tests/{silent5.test => silent-many-generic.test} | 13 +++++++---- tests/{silentyacc.test => silent-yacc-gcc.test} | 13 ++++++----- .../{silentyacc.test => silent-yacc-generic.test} | 9 ++++--- 9 files changed, 75 insertions(+), 38 deletions(-) copy tests/{silentlex.test => silent-lex-gcc.test} (90%) rename tests/{silentlex.test => silent-lex-generic.test} (92%) copy tests/{silent5.test => silent-many-gcc.test} (91%) rename tests/{silent5.test => silent-many-generic.test} (91%) copy tests/{silentyacc.test => silent-yacc-gcc.test} (90%) rename tests/{silentyacc.test => silent-yacc-generic.test} (92%) diff --git a/ChangeLog b/ChangeLog index 2cbce3b..7024f4b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,26 @@ +2010-11-25 Stefano Lattarini <stefano.lattar...@gmail.com> + + Fix spurious failures in `silent*.test' for $CC != gcc + In some tests on automake-produced silent rules, we forced the + use of gcc depmode to improve testsuite coverage; but this has + unsurprisingly led to spurious failures when some non-GNU C + compilers were used. So we are now careful to require GCC in + tests that force gcc depmode. + From reports by Ralf Wildenhues. + * silent5.test: Test removed, its content split into ... + * silent-many-generic.test, silent-many-gcc.test: ... these new + sister tests, the latter of which forces gcc depmode and lists + "gcc" in $required. + * silentlex.test: Test removed, its content split into ... + * silent-lex-generic.test, silent-lex-gcc.test: ... these new + sister tests, the latter of which forces gcc depmode and lists + "gcc" in $required. + * silentyacc.test: Test removed, its content split into ... + * silent-yacc-generic.test, silent-yacc-gcc.test: ... these new + sister tests, the latter of which forces gcc depmode and lists + "gcc" in $required. + * tests/Makefile.am (TESTS): Updated. + 2010-11-21 Stefano Lattarini <stefano.lattar...@gmail.com> Tests: consistently use "|| Exit 1" after ". ./defs". diff --git a/tests/Makefile.am b/tests/Makefile.am index 5f1ab9e..dab04e3 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -632,15 +632,18 @@ silent.test \ silent2.test \ silent3.test \ silent4.test \ -silent5.test \ silent6.test \ silent7.test \ silent9.test \ silentcxx.test \ silentf77.test \ silentf90.test \ -silentlex.test \ -silentyacc.test \ +silent-many-gcc.test \ +silent-many-generic.test \ +silent-lex-gcc.test \ +silent-lex-generic.test \ +silent-yacc-gcc.test \ +silent-yacc-generic.test \ sinclude.test \ srcsub.test \ srcsub2.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 140b178..de21f43 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -899,15 +899,18 @@ silent.test \ silent2.test \ silent3.test \ silent4.test \ -silent5.test \ silent6.test \ silent7.test \ silent9.test \ silentcxx.test \ silentf77.test \ silentf90.test \ -silentlex.test \ -silentyacc.test \ +silent-many-gcc.test \ +silent-many-generic.test \ +silent-lex-gcc.test \ +silent-lex-generic.test \ +silent-yacc-gcc.test \ +silent-yacc-generic.test \ sinclude.test \ srcsub.test \ srcsub2.test \ diff --git a/tests/silentlex.test b/tests/silent-lex-gcc.test similarity index 90% copy from tests/silentlex.test copy to tests/silent-lex-gcc.test index 5ad430e..426dc50 100755 --- a/tests/silentlex.test +++ b/tests/silent-lex-gcc.test @@ -14,9 +14,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -# Check silent-rules mode for Lex. +# Check silent-rules mode for Lex, forcing gcc depmode. +# Keep this in sync with sister test `silent-lex-generic.test'. -required='flex' +required='flex gcc' . ./defs || Exit 1 set -e @@ -63,11 +64,11 @@ $ACLOCAL $AUTOMAKE --add-missing $AUTOCONF -# configure once for fastdep, once for non-fastdep, once for nodep +# Force gcc ("fast") depmode. +# This apparently useless "for" loop is here to simplify the syncing +# with sister test `silent-lex-gcc.test'. for config_args in \ - '' \ - am_cv_CC_dependencies_compiler_type=gcc \ - --disable-dependency-tracking + am_cv_CC_dependencies_compiler_type=gcc do ./configure $config_args --enable-silent-rules diff --git a/tests/silentlex.test b/tests/silent-lex-generic.test similarity index 92% rename from tests/silentlex.test rename to tests/silent-lex-generic.test index 5ad430e..66535e8 100755 --- a/tests/silentlex.test +++ b/tests/silent-lex-generic.test @@ -15,6 +15,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # Check silent-rules mode for Lex. +# Keep this in sync with sister test `silent-lex-gcc.test'. required='flex' . ./defs || Exit 1 @@ -63,11 +64,11 @@ $ACLOCAL $AUTOMAKE --add-missing $AUTOCONF -# configure once for fastdep, once for non-fastdep, once for nodep +# Force dependency tracking explicitly, so that slow dependency +# extractors are not rejected. Try also with dependency tracking +# explicitly disabled. for config_args in \ - '' \ - am_cv_CC_dependencies_compiler_type=gcc \ - --disable-dependency-tracking + --enable-dependency-tracking --disable-dependency-tracking do ./configure $config_args --enable-silent-rules diff --git a/tests/silent5.test b/tests/silent-many-gcc.test similarity index 91% copy from tests/silent5.test copy to tests/silent-many-gcc.test index 49039b8..d770a46 100755 --- a/tests/silent5.test +++ b/tests/silent-many-gcc.test @@ -14,13 +14,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -# Check silent-rules mode, languages other than C. +# Check silent-rules mode, with gcc depmode and many languages at once. # This test partly overlaps with other silent*.test, but it serves as # a stress test by using many different languages at once -- so don't # remove this test script. +# This test requires the GNU compilers; keep it in sync with sister test +# `silent-many-generic.test', which should work with generic compilers. -# FIXME: generic C++/Fortran compilers should suffice here -required='g++ gfortran flex bison' +required='gcc g++ gfortran flex bison' . ./defs || Exit 1 set -e @@ -181,11 +182,11 @@ $ACLOCAL $AUTOMAKE --add-missing $AUTOCONF -# configure once for fastdep, once for non-fastdep, once for nodep +# Force gcc ("fast") depmode. +# This apparently useless "for" loop is here to simplify the syncing +# with sister test `silent-many-gcc.test'. for config_args in \ - '' \ - am_cv_CC_dependencies_compiler_type=gcc \ - --disable-dependency-tracking + am_cv_CC_dependencies_compiler_type=gcc do ./configure $config_args --enable-silent-rules diff --git a/tests/silent5.test b/tests/silent-many-generic.test similarity index 91% rename from tests/silent5.test rename to tests/silent-many-generic.test index 49039b8..223a97c 100755 --- a/tests/silent5.test +++ b/tests/silent-many-generic.test @@ -14,10 +14,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -# Check silent-rules mode, languages other than C. +# Check silent-rules mode, with many languages at once. # This test partly overlaps with other silent*.test, but it serves as # a stress test by using many different languages at once -- so don't # remove this test script. +# This test should work with generic compilers; keep it in sync with +# sister test `silent-many-gcc.test', which requires the GNU compilers +# and forces the use of gcc depmode. # FIXME: generic C++/Fortran compilers should suffice here required='g++ gfortran flex bison' @@ -181,11 +184,11 @@ $ACLOCAL $AUTOMAKE --add-missing $AUTOCONF -# configure once for fastdep, once for non-fastdep, once for nodep +# Force dependency tracking explicitly, so that slow dependency +# extractors are not rejected. Try also with dependency tracking +# explicitly disabled. for config_args in \ - '' \ - am_cv_CC_dependencies_compiler_type=gcc \ - --disable-dependency-tracking + --enable-dependency-tracking --disable-dependency-tracking do ./configure $config_args --enable-silent-rules diff --git a/tests/silentyacc.test b/tests/silent-yacc-gcc.test similarity index 90% copy from tests/silentyacc.test copy to tests/silent-yacc-gcc.test index d311e3d..33ae8ae 100755 --- a/tests/silentyacc.test +++ b/tests/silent-yacc-gcc.test @@ -14,9 +14,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -# Check silent-rules mode for Yacc. +# Check silent-rules mode for Yacc, forcing gcc depmode. +# Keep this in sync with sister test `silent-yacc-generic.test'. -required='bison' +required='gcc bison' . ./defs || Exit 1 set -e @@ -65,11 +66,11 @@ $ACLOCAL $AUTOMAKE --add-missing $AUTOCONF -# configure once for fastdep, once for non-fastdep, once for nodep +# Force gcc ("fast") depmode. +# This apparently useless "for" loop is here to simplify the syncing +# with sister test `silent-yacc-gcc.test'. for config_args in \ - '' \ - am_cv_CC_dependencies_compiler_type=gcc \ - --disable-dependency-tracking + am_cv_CC_dependencies_compiler_type=gcc do ./configure $config_args --enable-silent-rules diff --git a/tests/silentyacc.test b/tests/silent-yacc-generic.test similarity index 92% rename from tests/silentyacc.test rename to tests/silent-yacc-generic.test index d311e3d..b7489da 100755 --- a/tests/silentyacc.test +++ b/tests/silent-yacc-generic.test @@ -15,6 +15,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # Check silent-rules mode for Yacc. +# Keep this in sync with sister test `silent-yacc-gcc.test'. required='bison' . ./defs || Exit 1 @@ -65,11 +66,11 @@ $ACLOCAL $AUTOMAKE --add-missing $AUTOCONF -# configure once for fastdep, once for non-fastdep, once for nodep +# Force dependency tracking explicitly, so that slow dependency +# extractors are not rejected. Try also with dependency tracking +# explicitly disabled. for config_args in \ - '' \ - am_cv_CC_dependencies_compiler_type=gcc \ - --disable-dependency-tracking + --enable-dependency-tracking --disable-dependency-tracking do ./configure $config_args --enable-silent-rules -- 1.7.1