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-14


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.12.2-143-g43619a0
Date: Mon, 23 Jul 2012 12:46:02 +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=43619a0fa3edc6c0c4ce3b49835d2c48c4afb862

The branch, master has been updated
       via  43619a0fa3edc6c0c4ce3b49835d2c48c4afb862 (commit)
       via  54a47b07f8385136ed85626093cdff94dc7124fd (commit)
       via  47388dbc2c169a4f594801fdb8660ff8e31ef300 (commit)
       via  15fa9fba94f55e8aa5508d23d23413d04a2ffe79 (commit)
       via  7519d2634bdac6763ef2d57b3aff00f37c086a30 (commit)
       via  587e0c6b4f9c422b26faeecee8b35c3eb741ab8a (commit)
       via  2dcf8c29a21ae95eeceff080c4d538229d9de1b8 (commit)
       via  e3f7885c0c9e686762d5dd0470dc93eb0f7aca06 (commit)
      from  094b83a641e3b5b4aedf8820cb2af9d1c32cb476 (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 43619a0fa3edc6c0c4ce3b49835d2c48c4afb862
Author: Stefano Lattarini <address@hidden>
Date:   Mon Jul 23 13:35:28 2012 +0200

    tests: avoid a spurious failure with Solaris /bin/sh
    
    The /bin/sh shell on Solaris is dumb enough not to set the exit
    status to 127 after the execution of a non-existing command is
    attempted:
    
      $ /bin/sh -c 'nonesuch'; echo stat = $?
      /bin/sh: nonesuch: not found
      stat = 1
    
    This means that the missing script, when run through that shell,
    cannot discriminate between a real failure of a maintainer tool
    and a failure due to its absence.  This is not a big deal in
    practice (especially because all the 'missing' invocations in
    our Makefiles are done with $(SHELL), and that is almost surely
    set by configure to a proper POSIX shell), but was causing an
    annoying failure in our testsuite.  Fix it.
    
    * t/missing3.sh: If 'missing' is run with a /bin/sh shell suffering
    from the just-described bug, skip the check that would spuriously
    fail due to that bug.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 54a47b07f8385136ed85626093cdff94dc7124fd
Author: Stefano Lattarini <address@hidden>
Date:   Mon Jul 23 13:15:13 2012 +0200

    tests: fix buglet in t/missing3.sh
    
    * t/missing3.sh: Be sure to use 'run_cmd' also in the first invocation
    of 'missing', to ensure the stderr will actually be saved in a file we
    can later grep.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 47388dbc2c169a4f594801fdb8660ff8e31ef300
Merge: 094b83a 15fa9fb
Author: Stefano Lattarini <address@hidden>
Date:   Mon Jul 23 12:27:15 2012 +0200

    Merge branch 'maint'
    
    * maint:
      self tests: avoid spurious failures on older bash
      tests: remove t/parallel-tests-many.sh (fixes spurious failure)
      typofix: in a comment in the automake script
      news: minor fixlets and reordering
    
    Signed-off-by: Stefano Lattarini <address@hidden>

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

Summary of changes:
 NEWS                           |    6 +-
 automake.in                    |    2 +-
 t/list-of-tests.mk             |    2 -
 t/missing3.sh                  |   11 ++-
 t/parallel-tests-many.sh       |  190 ----------------------------------------
 t/self-check-explicit-skips.sh |   11 +--
 6 files changed, 17 insertions(+), 205 deletions(-)
 delete mode 100755 t/parallel-tests-many.sh

diff --git a/NEWS b/NEWS
index 6c39a7d..71771cf 100644
--- a/NEWS
+++ b/NEWS
@@ -139,16 +139,16 @@ New in 1.12.3:
     giving more useful warnings than a bare "command not found" from a
     make recipe would.
 
-* M4 files:
+* Miscellaneous changes:
 
   - The '.m4' files provided by Automake does not define serial numbers
     anymore.  This should cause no difference in the behaviour of aclocal
     though.
 
-* Automake Testsuite:
-
   - Some testsuite weaknesses and spurious failures have been fixed.
 
+Bugs fixed in 1.12.3:
+
 * Long-standing bugs:
 
   - Instead of renaming only self-references of files (typically for
diff --git a/automake.in b/automake.in
index 15d545d..4858a39 100644
--- a/automake.in
+++ b/automake.in
@@ -6849,7 +6849,7 @@ sub transform ($$)
 # preprocess_file ($MAKEFILE, [%TRANSFORM])
 # -----------------------------------------
 # Load a $MAKEFILE, apply the %TRANSFORM, and return the result.
-# No extra parsing of post-processing is done (i.e., recognition of
+# No extra parsing or post-processing is done (i.e., recognition of
 # rules declaration or of make variables definitions).
 sub preprocess_file ($%)
 {
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index 2a28992..7a3aa34 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -37,7 +37,6 @@ t/dist-pr109765.sh \
 t/instdir-cond2.sh \
 t/java-nobase.sh \
 t/objext-pr10128.sh \
-t/parallel-tests-many.sh \
 t/pr8365-remake-timing.sh \
 t/lex-subobj-nodep.sh \
 t/remake-am-pr10111.sh \
@@ -770,7 +769,6 @@ t/parallel-tests-exit-statuses.sh \
 t/parallel-tests-console-output.sh \
 t/parallel-tests-once.sh \
 t/parallel-tests-trailing-bslash.sh \
-t/parallel-tests-many.sh \
 t/tests-environment.sh \
 t/am-tests-environment.sh \
 t/tests-environment-backcompat.sh \
diff --git a/t/missing3.sh b/t/missing3.sh
index 3a9ba01..b2cacf9 100755
--- a/t/missing3.sh
+++ b/t/missing3.sh
@@ -31,10 +31,17 @@ run_cmd ()
   return $st
 }
 
-./missing b7cb8259 --version && exit 1
+run_cmd ./missing b7cb8259 --version && exit 1
 grep WARNING stderr && exit 1
 run_cmd ./missing b7cb8259 --grep && exit 1
-grep 'WARNING:.*missing on your system' stderr
+
+if test x"$am_test_prefer_config_shell" != x"yes"; then
+  # The /bin/sh from Solaris 10 is a spectacular failure.  After a failure
+  # due to a "command not found", it sets '$?' to '1'.
+  if (st=0; /bin/sh -c 'no--such--command' || st=$?; test $st -eq 127); then
+    grep 'WARNING:.*missing on your system' stderr
+  fi
+fi
 
 # missing itself it known to exist :)
 
diff --git a/t/parallel-tests-many.sh b/t/parallel-tests-many.sh
deleted file mode 100755
index a12f534..0000000
--- a/t/parallel-tests-many.sh
+++ /dev/null
@@ -1,190 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# 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 that the parallel testsuite harness does not hit errors due
-# to an exceeded command line length when there are many tests.
-# For automake bug#7868.  This test is currently expected to fail.
-
-. ./defs || exit 1
-
-cat >> configure.ac << 'END'
-AC_OUTPUT
-END
-
-cat > Makefile.am <<'END'
-# Sanity check that the $(TESTS) is going to exceed the system
-# command line length.
-# Extra quoting and indirections below are required to ensure the
-# various make implementations (e.g, GNU make or Sun Distributed Make)
-# will truly spawn a shell to execute this command, instead of relying
-# on optimizations that might mask the "Argument list too long" error
-# we expect.
-this-will-fail:
-       @":" && ":" $(TEST_LOGS)
-TEST_LOG_COMPILER = true
-include list-of-tests.am
-# So that we won't have to create a ton of dummy test cases.
-$(TESTS):
-END
-
-# The real instance will be dynamically created later.
-echo TESTS = foo.test > list-of-tests.am
-
-$ACLOCAL && $AUTOCONF && $AUTOMAKE -a \
-  || framework_failure_ "unexpected autotools failure"
-./configure \
-  || framework_failure_ "unexpected configure failure"
-
-# We want to hit the system command-line length limit without hitting
-# the filename length limit or the PATHMAX limit; so we use longish
-# (but not too long) names for the testcase, and place them in a nested
-# (but not too deeply) directory.
-# We also prefer to use the minimal(ish) number of test cases that can
-# make us hit the command-line length limit, since the more the test
-# cases are, the more time "automake" and "make check" will take to run
-# (especially on Cygwin and MinGW/MSYS).
-
-tname="wow-this-is-a-very-long-name-for-a-simple-dummy-test-case"
-dname="and-this-too-is-a-very-long-name-for-a-dummy-directory"
-
-deepdir=.
-depth=0
-for i in 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 29 21 22 23 24; do
-  new_deepdir=$deepdir/$dname.d$i
-  mkdir $new_deepdir || break
-  tmpfile=$new_deepdir/$tname-some-more-chars-for-good-measure
-  if touch $tmpfile; then
-    rm -f $tmpfile || exit 99
-  else
-    rmdir $new_deepdir || exit 99
-  fi
-  deepdir=$new_deepdir
-  unset tmpfile new_deepdir
-  depth=$i
-done
-
-cat <<END
-*********************************************************************
-Our tests will be in the following directory (depth = $depth)
-*********************************************************************
-$deepdir
-*********************************************************************
-END
-
-setup_data ()
-{
-  # Use perl, not awk, to avoid errors like "awk: string too long"
-  # (seen e.g. with Solaris 10 /usr/bin/awk).
-  count=$count deepdir=$deepdir tname=$tname $PERL -e '
-    use warnings FATAL => "all";
-    use strict;
-    print "TESTS = \\\n";
-    my $i = 0;
-    while (++$i)
-      {
-        print "  $ENV{deepdir}/$ENV{tname}-$i.test";
-        if ($i >= $ENV{count})
-          {
-            print "\n";
-            last;
-          }
-        else
-          {
-            print " \\\n";
-          }
-      }
-  ' > list-of-tests.am || exit 99
-  sed 20q list-of-tests.am || exit 99 # For debugging.
-  $AUTOMAKE Makefile \
-    || framework_failure_ "unexpected automake failure"
-  ./config.status Makefile \
-    || framework_failure_ "unexpected config.status failure"
-}
-
-for count in 1 2 4 8 12 16 20 24 28 32 48 64 96 128 E_HUGE; do
-  test $count = E_HUGE && break
-  count=$(($count * 100))
-  setup_data
-  if $MAKE this-will-fail; then
-    continue
-  else
-    # We have managed to find a number of test cases large enough to
-    # hit the system command-line limits; we can stop.  But first, for
-    # good measure, increase the number of tests of some 20%, to be
-    # "even more sure" of really tickling command line length limits.
-    count=$(($count * 12))
-    count=$(($count / 10))
-    setup_data
-    break
-  fi
-done
-
-if test $count = E_HUGE; then
-  framework_failure_ "system has a too-high limit on command line length"
-else
-  cat <<END
-*********************************************************************
-               Number of tests we will use: $count
-*********************************************************************
-END
-fi
-
-env TESTS=$deepdir/$tname-1.test $MAKE -e check \
-  && test -f $deepdir/$tname-1.log \
-  || framework_failure_ "\"make check\" with one single tests"
-
-rm -f $deepdir/* || exit 99
-
-$MAKE check > stdout || { cat stdout; exit 1; }
-cat stdout
-
-grep "^# TOTAL: $count$" stdout
-grep "^# PASS:  $count$" stdout
-
-grep "^PASS: .*$tname-[0-9][0-9]*\.test" stdout > grp
-ls -1 $deepdir | grep '\.log$' > lst
-
-sed 20q lst # For debugging.
-sed 20q grp # Likewise.
-
-test $(cat <grp | wc -l) -eq $count
-test $(cat <lst | wc -l) -eq $count
-
-# We need to simulate a failure of two tests.
-st=0
-env TESTS="$deepdir/$tname-1.test $deepdir/$tname-2.test" \
-    TEST_LOG_COMPILER=false $MAKE -e check > stdout && st=1
-cat stdout
-test $(grep -c '^FAIL:' stdout) -eq 2 || st=1
-test $st -eq 0 || fatal_ "couldn't simulate failure of two tests"
-unset st
-
-$MAKE recheck > stdout || { cat stdout; exit 1; }
-cat stdout
-grep "^PASS: .*$tname-1\.test" stdout
-grep "^PASS: .*$tname-2\.test" stdout
-test $(LC_ALL=C grep -c "^[A-Z][A-Z]*:" stdout) -eq 2
-grep "^# TOTAL: 2$" stdout
-grep "^# PASS:  2$" stdout
-
-# "make clean" might ignore some failures, so we prefer to also grep its
-# output to ensure that no "Argument list too long" error was encountered.
-$MAKE clean >output 2>&1 || { cat output; exit 1; }
-cat output
-grep -i 'list.* too long' output && exit 1
-ls $deepdir | grep '\.log$' && exit 1
-
-:
diff --git a/t/self-check-explicit-skips.sh b/t/self-check-explicit-skips.sh
index 24687a8..97f5288 100755
--- a/t/self-check-explicit-skips.sh
+++ b/t/self-check-explicit-skips.sh
@@ -36,22 +36,19 @@ run_dummy_test ()
   " dummy.sh
 }
 
-run_dummy_test '(exit 77); exit 77'
+run_dummy_test 'exit 77'
 test $? -eq 77 || exit 1
 
 run_dummy_test 'sh -c "exit 77"' am_explicit_skips=no
 test $? -eq 77 || exit 1
 
-run_dummy_test '(exit 77); exit 77' am_explicit_skips=yes
+run_dummy_test '$PERL -e "exit 77"; true' am_explicit_skips=yes
 test $? -eq 78 || exit 1
 
-run_dummy_test 'sh -c "exit 77"' am_explicit_skips=y
+run_dummy_test 'sh -c "exit 77"; exit 0' am_explicit_skips=y
 test $? -eq 78 || exit 1
 
-run_dummy_test 'exit 77' am_explicit_skips=yes
-test $? -eq 77 || exit 1
-
-run_dummy_test 'skip_ "foo"' am_explicit_skips=y
+run_dummy_test 'skip_ "foo"; :' am_explicit_skips=y
 test $? -eq 77 || exit 1
 
 :


hooks/post-receive
-- 
GNU Automake



reply via email to

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