automake-patches
[Top][All Lists]
Advanced

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

[FYI] {maint} Tests: fix spurious failures in silent*.test for $CC != gc


From: Stefano Lattarini
Subject: [FYI] {maint} Tests: fix spurious failures in silent*.test for $CC != gcc
Date: Thu, 25 Nov 2010 23:00:41 +0100
User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )

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 <address@hidden>
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  <address@hidden>
+
+       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  <address@hidden>
 
        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


reply via email to

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