automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.12.2-11


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.12.2-116-g7eccbf4
Date: Fri, 13 Jul 2012 13:26:24 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=7eccbf44fcee432c20ccd95b384f1c3494e4712c

The branch, master has been updated
       via  7eccbf44fcee432c20ccd95b384f1c3494e4712c (commit)
       via  19d4b87d970e316a7e13c8895ed0ffe62df5f00e (commit)
       via  312c7dcbd349f86574f835debdd619314341d0ee (commit)
       via  5dd21f9af052cfd2fa3dddb7f2ff4c5f7437a657 (commit)
       via  9df354ac9834f319c1faeef11748b7f1f7afdfae (commit)
       via  1bc5acb2df2fdf297bc101f36589ab9f932647bf (commit)
       via  65e7ac8c3556d1895ee597811856710143cfc4ac (commit)
       via  cf80959825ac3b18271d0c15ce7345e64410c2f0 (commit)
      from  bdb984ba47508ac1d44d173d8d99c95254ef98e9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 7eccbf44fcee432c20ccd95b384f1c3494e4712c
Merge: bdb984b 19d4b87
Author: Stefano Lattarini <address@hidden>
Date:   Fri Jul 13 14:58:17 2012 +0200

    Merge branch 'maint'
    
    * maint:
      news: mention fixed testsuite weaknesses
      news: bump, for future 1.12.3
      tests: verify the shell test scripts are syntactically valid
      tests: don't use C instead of C++ compiler on case-insensitive platforms
      tests: avoid spurious TAP errors on Mac OS X 10.7
      tests: fix spurious failure in aclocal7.sh on fast machines
    
    Signed-off-by: Stefano Lattarini <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 Makefile.am           |   35 +++++++++++++++++++++++++++++++++++
 NEWS                  |   10 +++++++++-
 THANKS                |    1 +
 configure.ac          |   13 ++++++++++++-
 t/aclocal7.sh         |    5 +++++
 t/self-check-exit.tap |    8 +-------
 t/suffix10.tap        |   13 ++++++++++++-
 t/suffix8.tap         |   15 +++++++++++++--
 8 files changed, 88 insertions(+), 12 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 8e66894..a5332d3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -426,6 +426,41 @@ check-no-repeated-test-name:
 check-local: check-no-repeated-test-name
 .PHONY: check-no-repeated-test-name
 
+# Check that our test cases are syntactically correct.
+# See automake bug#11898.
+check-tests-syntax:
+       @st=0; \
+       err () { echo "$@: $$*" >&2; st=1; }; \
+## The user might do something like "make check TESTS=t/foo" or
+## "make check TESTS_LOGS=t/foo.log" and expect (say) the test
+## 't/foo.sh' to be run; this has worked well until today, and
+## we want to continue supporting this use case.
+       bases=`for log in : $(TEST_LOGS); do echo $$log; done \
+         | sed -e '/^:$$/d' -e 's/\.log$$//'`; \
+       for bas in $$bases; do \
+         for suf in sh tap pl; do \
+           tst=$$bas.$$suf; \
+## Emulate VPATH search.
+           if test -f $$tst; then \
+             break; \
+           elif test -f $(srcdir)/$$tst; then \
+             tst=$(srcdir)/$$tst; \
+             break; \
+           else \
+             tst=''; \
+           fi; \
+         done; \
+         test -n "$$tst" || err "couldn't find test '$$bas'"; \
+## Don't check that perl tests are valid shell scripts!
+         test $$suf = pl && continue; \
+         $(AM_V_P) && echo " $(AM_TEST_RUNNER_SHELL) -n $$tst"; \
+         $(AM_TEST_RUNNER_SHELL) -n "$$tst" \
+           || err "test '$$tst' syntactically invalid"; \
+       done; \
+       exit $$st
+check-local: check-tests-syntax
+.PHONY: check-tests-syntax
+
 ## Checking the list of tests.
 test_subdirs = t t/pm t/perf contrib/t
 include $(srcdir)/t/CheckListOfTests.am
diff --git a/NEWS b/NEWS
index c5ea50f..d2fc46d 100644
--- a/NEWS
+++ b/NEWS
@@ -104,7 +104,7 @@ New in 1.13:
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-New in 1.12.2:
+New in 1.12.3:
 
 * WARNING: Future backward-incompatibilities!
 
@@ -139,6 +139,14 @@ New in 1.12.2:
     giving more useful warnings than a bare "command not found" from a
     make recipe would.
 
+* Automake Testsuite:
+
+  - Some testsuite weaknesses and spurious failures have been fixed.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+New in 1.12.2:
+
 * Warnings and deprecations:
 
   - Automake now issues a warning (in the 'portability' category) if
diff --git a/THANKS b/THANKS
index 01b78c1..afdd33a 100644
--- a/THANKS
+++ b/THANKS
@@ -245,6 +245,7 @@ Matthew D. Langston             address@hidden
 Matthias Andree                 address@hidden
 Matthias Clasen                 address@hidden
 Matthias Klose                  address@hidden
+Max Horn                        address@hidden
 Maxim Sinev                     address@hidden
 Maynard Johnson                 address@hidden
 Merijn de Jonge                 address@hidden
diff --git a/configure.ac b/configure.ac
index 6ad6fdf..bbaf12c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -448,12 +448,23 @@ _AM_COMPILER_CAN_FAIL(dnl
 
 AS_IF([test x"$GCC" = x"yes"], [am_CC_is_GNU=yes], [am_CC_is_GNU=no])
 
+# On case-insensitive file systems (seen e.g. on Cygwin and Mac OS X)
+# we must avoid looking for 'CC', because that would be the same as
+# 'cc', and could cause $CXX to point to the C compiler, instead of
+# to a C++ compiler as expected.  See automake bugs #11893 and #10766.
+if test -f /bIn/rMdIr || test -f /uSr/bIn/rMdIr; then
+  # Case-insensitive file system, don't look for CC.
+  am_CC=
+else
+  am_CC=CC
+fi
+
 # The list of C++ compilers here has been copied, pasted and edited
 # from 'lib/autoconf/c.m4:AC_PROG_CXX' in the Autoconf distribution.
 # Keep it in sync, or better again, find out a way to avoid this code
 # duplication.
 _AM_COMPILER_CAN_FAIL([AC_PROG_CXX(dnl
-  [aCC CC FCC KCC RCC xlC_r xlC c++ cxx cc++ gpp g++])],
+  [aCC $am_CC FCC KCC RCC xlC_r xlC c++ cxx cc++ gpp g++])],
   [CXX=false; _AM_SKIP_COMP_TESTS([C++])])
 
 AS_IF([test x"$GXX" = x"yes"], [am_CXX_is_GNU=yes], [am_CXX_is_GNU=no])
diff --git a/t/aclocal7.sh b/t/aclocal7.sh
index 4c03a0c..c050b07 100755
--- a/t/aclocal7.sh
+++ b/t/aclocal7.sh
@@ -45,6 +45,11 @@ AUTOMAKE_after_aclocal ()
   $AUTOMAKE --no-force
 }
 
+# aclocal will rewrite aclocal.m4 unless the input files are all older than the
+# existing aclocal.m4 -- sleep to ensure somedefs.m4 has an older timestamp
+# than the aclocal.m4 that the next aclocal call will generate.
+$sleep
+
 $ACLOCAL -I m4
 AUTOMAKE_after_aclocal
 
diff --git a/t/self-check-exit.tap b/t/self-check-exit.tap
index 0fbc9d8..19cf27a 100755
--- a/t/self-check-exit.tap
+++ b/t/self-check-exit.tap
@@ -22,7 +22,7 @@
 am_create_testdir=no
 . ./defs || exit 99
 
-plan_ 34
+plan_ 32
 
 # This test becomes more cumbersome if we keep the 'errexit' shell flag
 # set.  And removing it is no big deal, as this test is a TAP-based one,
@@ -79,10 +79,4 @@ test -f Makefile && test ! -x Makefile || \
 $AM_TEST_RUNNER_SHELL -c "$init ./Makefile; :" "$dummy_test_script"
 command_ok_ "permission denied" test $? -gt 0
 
-: Syntax errors in the test code.
-$AM_TEST_RUNNER_SHELL -c "$init if :; then" "$dummy_test_script"
-command_ok_ "syntax error 1" test $? -gt 0
-$AM_TEST_RUNNER_SHELL -c "$init true ( true )" "$dummy_test_script"
-command_ok_ "syntax error 2" test $? -gt 0
-
 :
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
 
 :


hooks/post-receive
-- 
GNU Automake



reply via email to

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