Merge branch 'maint'
authorStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 30 Jun 2012 19:32:20 +0000 (21:32 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 30 Jun 2012 19:32:20 +0000 (21:32 +0200)
* maint:
  parallel-tests: "recheck" behaves better in case of compilation failures
  scripts: quote 'like this', not `like this'

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1  2 
NEWS
lib/am/check.am
lib/test-driver
t/list-of-tests.mk

diff --combined NEWS
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -1,31 -1,29 +1,31 @@@
 -New in 1.12.2:
 +New in 1.13:
  
 -* WARNING: Future backward-incompatibilities!
 +* Version requirements:
  
 -  - Future versions of Automake will likely drop support for the
 -    long-deprecated 'configure.in' name for the Autoconf input file.
 -    You are advised to use the recommended name 'configure.ac' instead.
 +  - Autoconf 2.65 or greater is required.
  
 -  - Autoconf 2.65 or later will be required by the next major Automake
 -    version (1.13).  Until now, Automake has required Autoconf version
 -    2.62 or later.
 +  - The rules to build PDF and DVI output from Texinfo input now
 +    requires Texinfo 4.9 or later.
  
 -  - Starting from the next major Automake version (1.13), the rules to
 -    build pdf, ps and dvi output from Texinfo input will use the '--tidy'
 -    option by default.  Since such an option was introduced in Texinfo
 -    4.9, this means that Makefiles generated by future Automake versions
 -    will require at least that version of Texinfo.
 +* Obsolete features removed:
  
 -  - Starting from the next major Automake version (1.13), the parallel
 -    testsuite harness (previously only enabled by the 'parallel-tests'
 -    option) will become the default one; the older serial testsuite
 -    harness will still be available through the use of the 'serial-tests'
 -    option.
 +  - Use of the long-deprecated two- and three-arguments invocation forms
 +    of the AM_INIT_AUTOMAKE is not supported anymore.
 +
 +  - Support for the "Cygnus-style" trees (once enabled by the 'cygnus'
 +    option) has been removed.  See discussion about automake bug#11034
 +    for more background.
  
 -  - The following long-obsolete m4 macros will be removed in the
 -    next major Automake version (1.13):
 +  - The automake-provided $(mkdir_p) make variable, @mkdir_p@ configure
 +    time substitution and AM_PROG_MKDIR m4 macro have been removed.  They
 +    had been obsolete since automake 1.10, and actively deprecated since
 +    Automake 1.12.1.
 +
 +  - The deprecated aclocal option '--acdir' has been removed.  You
 +    should use the options '--automake-acdir' and '--system-acdir'
 +    instead (which have been introduced in Automake 1.11.2).
 +
 +  - The following long-obsolete m4 macros have been removed:
  
        AM_PROG_CC_STDC:    superseded by AC_PROG_CC since October 2002
        fp_PROG_CC_STDC:    broken alias for AM_PROG_CC_STDC
                            of the now-removed automatic de-ANSI-fication
                            support of Automake)
  
 -  - All the "old alias" macros in 'm4/obsolete.m4' will be removed in
 -    the next major Automake version (1.13).
 +  - All the "old alias" macros in 'm4/obsolete.m4' have been removed.
 +
 +* Changes to Automake-generated testsuite harnesses:
 +
 +  - The parallel testsuite harness (previously only enabled by the
 +    'parallel-tests' option) is the default one; the older serial
 +    testsuite harness will still be available through the use of the
 +    'serial-tests' option (introduced in Automake 1.12).
 +
 +* Silent rules support:
 +
 +  - Support for silent rules is now always active in Automake-generated
 +    Makefiles.  So, although the verbose output is still the default,
 +    the user can now always use "./configure --enable-silent-rules" or
 +    "make V=0" to enable quieter output in the package he's building.
 +
 +  - The 'silent-rules' option has now become a no-op, preserved for
 +    backward-compatibility only.  In particular, its use does not disable
 +    the warnings in the 'portability-recursive' category anymore.
 +
 +* Texinfo Support:
 +
 +  - The rules to build PDF and DVI files from Texinfo input now use the
 +    ' --build-dir' option, to keep the auxiliary files used by texi2dvi
 +    and texi2pdf around without cluttering the build directory, and to
 +    make it possible to run the "dvi" and "pdf" recipes in parallel.
 +
 +* Automatic remake rules and 'missing' script:
 +
 +  - The 'missing' script does not try anymore to update the timestamp
 +    of out-of-date files that require a maintainer-specific tool to be
 +    remade, in case the user lacks such a tool (or has a too-old version
 +    of it).  It just give a useful warning, and in some cases also a tip
 +    about how to obtain such a tool.
 +
 +  - The missing script has thus become useless as a (poor) way to work
 +    around the sketched-timestamps issues that can happen for projects
 +    that keep generated files committed in their VCS repository.  Such
 +    projects are now encouraged to write a custom "fix-timestamps.sh"
 +    script to avoid such issues; a simple example is provided in the
 +    "CVS and generated files" chapter of the automake manual.
 +
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +New in 1.12.2:
 +
 +* WARNING: Future backward-incompatibilities!
 +
 +  - Future versions of Automake will likely drop support for the
 +    long-deprecated 'configure.in' name for the Autoconf input file.
 +    You are advised to use the recommended name 'configure.ac' instead.
 +
 +  - Starting from the next major Automake version (1.13), the rules to
 +    build pdf, ps and dvi output from Texinfo input will use the '--tidy'
 +    option by default.  Since such an option was introduced in Texinfo
 +    4.9, this means that Makefiles generated by future Automake versions
 +    will require at least that version of Texinfo.
 +
 +  - Starting from the next major Automake version (1.13), the parallel
 +    testsuite harness (previously only enabled by the 'parallel-tests'
 +    option) will become the default one; the older serial testsuite
 +    harness will still be available through the use of the 'serial-tests'
 +    option.
  
    - Support for the two- and three-arguments invocation forms of the
      AM_INIT_AUTOMAKE macro will be deprecated in the next minor version
      of Automake (1.12.1) and removed in the next major version (1.13).
  
 -  - The '--acdir' option of aclocal is deprecated, and will probably
 -    be removed in the next major Automake release (1.13).  You should
 -    use the options '--automake-acdir' and '--system-acdir' instead
 -    (which have been introduced in Automake 1.11.2).
 -
    - The exact order in which the directories in the aclocal macro
      search path are looked up is probably going to be changed in the
      next Automake release (1.13).
      to a shell conditional that can be used in recipes to know whether
      make is being run in silent or verbose mode.
  
+ Bugs fixed in 1.12.2:
+ * Long-standing bugs:
+   - The "recheck" targets behaves better in the face of build failures
+     related to previously failed tests.  For example, if a test is a
+     compiled program that must be rerun by "make recheck", and its
+     compilation fails, it will still be rerun by further "make recheck"
+     invocations.  See automake bug#11791.
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
  New in 1.12.1:
diff --combined lib/am/check.am
@@@ -46,7 -46,7 +46,7 @@@ endif !%?COLOR
  
  .PHONY: check-TESTS
  
 -if %?PARALLEL_TESTS%
 +if !%?SERIAL_TESTS%
  
  include inst-vars.am
  
@@@ -418,7 -418,7 +418,7 @@@ check-TESTS recheck
  ## cannot use '$?' to compute the set of lazily rerun tests, lest
  ## we rely on .PHONY to work portably.
        @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-       @$(am__set_TESTS_bases); \
+       @set +e; $(am__set_TESTS_bases); \
        if test $@ = recheck; then \
  ## If running a "make recheck", we must only consider tests that had an
  ## unexpected outcome (FAIL or XPASS) in the earlier run.
  ## be problematic.  In this particular case, trailing white space is known
  ## to have caused segmentation faults on Solaris 10 XPG4 make:
        log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
- ## Under "make recheck", remove the .log and .trs files associated
- ## with the files to recheck, so that those will be rerun by the
- ## "make test-suite.log" recursive invocation below.  But use a proper
- ## hack to avoid extra files removal when running under "make -n".
+ ## Under "make recheck", move the '.log' and '.trs' files associated
+ ## with the tests to be re-run out of the way, so that those tests will
+ ## be re-run by the "make test-suite.log" recursive invocation below.
+ ## Two tricky requirements:
+ ##   - we must avoid extra files removal when running under "make -n";
+ ##   - in case the test is a compiled program whose compilation fails,
+ ##     we must ensure that any '.log' and '.trs' file referring to such
+ ##     test are preserved, so that future "make recheck" invocations
+ ##     will still try to re-compile and re-run it (automake bug#11791).
+ ## The extra contortions below cater to such requirements.
+       am_backupdir=.am-recheck; \
        if test $@ != recheck || $(am__make_dryrun); then :; else \
-         test -z "$$log_list" || rm -f $$log_list; \
-         test -z "$$trs_list" || rm -f $$trs_list; \
+         if test -n "$$trs_list$$log_list"; then \
+           { test ! -d $$am_backupdir || rm -rf $$am_backupdir; } \
+             && $(MKDIR_P) $$am_backupdir || exit 1; \
+           test -z "$$log_list" \
+             || mv -f $$log_list $$am_backupdir 2>/dev/null; \
+           test -z "$$trs_list" \
+             || mv -f $$trs_list $$am_backupdir 2>/dev/null; \
+         fi; \
+       fi; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+       st=$$?; \
+       if test $@ != recheck || $(am__make_dryrun) || test ! -d $$am_backupdir; then :; else \
+         for f in $$log_list $$trs_list; do \
+           test -f $$f || mv $$am_backupdir/$$f . || exit 1; \
+         done; \
+         rm -rf $$am_backupdir || exit 1; \
        fi; \
-       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"
+ ## Be sure to exit with the proper exit status.  The use of "exit" below
+ ## is required to work around a FreeBSD make bug (present only when
+ ## running in concurrent mode).  See automake bug#9245:
+ ##  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9245>
+ ## and FreeBSD PR bin/159730:
+ ##  <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730>.
+       exit $$st;
  
  ## Recheck must depend on $(check_SCRIPTS), $(check_PROGRAMS), etc.
  ## It must also depend on the 'all' target.  See automake bug#11252.
@@@ -452,9 -479,7 +479,9 @@@ AM_RECURSIVE_TARGETS += check rechec
  
  .PHONY: recheck
  
 -else !%?PARALLEL_TESTS%
 +else %?SERIAL_TESTS%
 +
 +## Obsolescent serial testsuite driver.
  
  check-TESTS: $(TESTS)
        @failed=0; all=0; xfail=0; xpass=0; skip=0; \
          test "$$failed" -eq 0; \
        else :; fi
  
 -endif !%?PARALLEL_TESTS%
 +endif %?SERIAL_TESTS%
diff --combined lib/test-driver
@@@ -1,7 -1,7 +1,7 @@@
  #! /bin/sh
 -# test-driver - basic driver script for the 'parallel-tests' mode.
 +# test-driver - basic testsuite driver script.
  
- scriptversion=2012-05-18.16; # UTC
+ scriptversion=2012-06-27.10; # UTC
  
  # Copyright (C) 2011-2012 Free Software Foundation, Inc.
  #
@@@ -45,7 -45,7 +45,7 @@@ Usage
    test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
                [--expect-failure={yes|no}] [--color-tests={yes|no}]
                [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
- The \`--test-name', \`--log-file' and \`--trs-file' options are mandatory.
+ The '--test-name', '--log-file' and '--trs-file' options are mandatory.
  END
  }
  
@@@ -74,7 -74,7 +74,7 @@@ while test $# -gt 0; d
  done
  
  if test $color_tests = yes; then
-   # Keep this in sync with `lib/am/check.am:$(am__tty_colors)'.
+   # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
    red='\e[0;31m' # Red.
    grn='\e[0;32m' # Green.
    lgn='\e[1;32m' # Light green.
diff --combined t/list-of-tests.mk
@@@ -109,7 -109,6 +109,7 @@@ t/aclocal-install-fail.sh 
  t/aclocal-install-mkdir.sh \
  t/aclocal-no-install-no-mkdir.sh \
  t/aclocal-verbose-install.sh \
 +t/aclocal-autoconf-version-check.sh \
  t/ac-output-old.tap \
  t/acsilent.sh \
  t/acsubst.sh \
@@@ -124,7 -123,7 +124,7 @@@ t/alpha2.sh 
  t/amhello-cflags.sh \
  t/amhello-cross-compile.sh \
  t/amhello-binpkg.sh \
 -t/aminit-moreargs-deprecation.sh \
 +t/aminit-moreargs-no-more.sh \
  t/amassign.sh \
  t/am-macro-not-found.sh \
  t/amopt.sh \
@@@ -159,6 -158,7 +159,6 @@@ t/autodist-configure-no-subdir.sh 
  t/autodist-no-duplicate.sh \
  t/autodist-stamp-vti.sh \
  t/autohdr.sh \
 -t/autohdr2.sh \
  t/autohdr3.sh \
  t/autohdr4.sh \
  t/autohdrdry.sh \
@@@ -172,7 -172,12 +172,7 @@@ t/auxdir-computed.tap 
  t/auxdir-misplaced.sh \
  t/auxdir-nonexistent.sh \
  t/auxdir-unportable.tap \
 -t/backcompat.sh \
 -t/backcompat2.sh \
 -t/backcompat3.sh \
 -t/backcompat4.sh \
 -t/backcompat5.sh \
 -t/backcompat6.sh \
 +t/backcompat-acout.sh \
  t/backsl.sh \
  t/backsl2.sh \
  t/backsl3.sh \
@@@ -215,6 -220,7 +215,6 @@@ t/check-no-test-driver.sh 
  t/check-concurrency-bug9245.sh \
  t/checkall.sh \
  t/clean.sh \
 -t/clean2.sh \
  t/colneq.sh \
  t/colneq2.sh \
  t/colneq3.sh \
@@@ -333,7 -339,13 +333,7 @@@ t/cxxlibobj.sh 
  t/cxxlink.sh \
  t/cxxnoc.sh \
  t/cxxo.sh \
 -t/cygnus-deprecation.sh \
 -t/cygnus-check-without-all.sh \
 -t/cygnus-dependency-tracking.sh \
 -t/cygnus-imply-foreign.sh \
 -t/cygnus-no-dist.sh \
 -t/cygnus-no-installinfo.sh \
 -t/cygnus-requires-maintainer-mode.sh \
 +t/cygnus-no-more.sh \
  t/cygwin32.sh \
  t/dash.sh \
  t/defun.sh \
@@@ -657,6 -669,7 +657,6 @@@ t/makevars.sh 
  t/man.sh \
  t/man2.sh \
  t/man3.sh \
 -t/man4.sh \
  t/man5.sh \
  t/man6.sh \
  t/man7.sh \
@@@ -667,10 -680,15 +667,10 @@@ t/mdate3.sh 
  t/mdate4.sh \
  t/mdate5.sh \
  t/mdate6.sh \
 -t/missing.sh \
 -t/missing2.sh \
 +t/missing-version-mismatch.sh \
  t/missing3.sh \
 -t/missing4.sh \
 -t/missing5.sh \
 -t/missing6.sh \
  t/am-missing-prog.sh \
  t/missing-auxfile-stops-makefiles-creation.sh \
 -t/mkdirp-deprecation.sh \
  t/mkinstall.sh \
  t/mkinst2.sh \
  t/mkinst3.sh \
@@@ -683,6 -701,7 +683,6 @@@ t/nobase.sh 
  t/nobase-libtool.sh \
  t/nobase-python.sh \
  t/nobase-nodist.sh \
 -t/nodef.sh \
  t/nodef2.sh \
  t/nodep.sh \
  t/nodep2.sh \
@@@ -706,6 -725,7 +706,6 @@@ t/objcxx-flags.sh 
  t/objcxx-deps.sh \
  t/objc-megademo.sh \
  t/objext-pr10128.sh \
 -t/obsolete.sh \
  t/oldvars.sh \
  t/order.sh \
  t/output.sh \
@@@ -739,6 -759,7 +739,7 @@@ t/parallel-tests8.sh 
  t/parallel-tests9.sh \
  t/parallel-tests10.sh \
  t/parallel-tests-recheck-depends-on-all.sh \
+ t/parallel-tests-recheck-pr11791.sh \
  t/parallel-tests-exeext.sh \
  t/parallel-tests-suffix.sh \
  t/parallel-tests-suffix-prog.sh \
@@@ -928,7 -949,6 +929,7 @@@ t/remake-deleted-am-2.sh 
  t/remake-deleted-am-subdir.sh \
  t/remake-deleted-am.sh \
  t/remake-renamed-am.sh \
 +t/remake-aclocal-version-mismatch.sh \
  t/pr8365-remake-timing.sh \
  t/req.sh \
  t/reqd.sh \
@@@ -960,12 -980,15 +961,12 @@@ t/silent6.sh 
  t/silent7.sh \
  t/silent8.sh \
  t/silent9.sh \
 -t/silent-obsolescent-warns.sh \
  t/silentcxx.sh \
  t/silentcxx-gcc.sh \
  t/silentf77.sh \
  t/silentf90.sh \
 -t/silent-amopts.sh \
  t/silent-many-gcc.sh \
  t/silent-many-generic.sh \
 -t/silent-nowarn.sh \
  t/silent-configsite.sh \
  t/silent-nested-vars.sh \
  t/silent-lex.sh \
@@@ -1155,6 -1178,8 +1156,6 @@@ t/txinfo.sh 
  t/txinfo2.sh \
  t/txinfo3.sh \
  t/txinfo4.sh \
 -t/txinfo5.sh \
 -t/txinfo5b.sh \
  t/txinfo6.sh \
  t/txinfo7.sh \
  t/txinfo8.sh \
@@@ -1174,6 -1199,7 +1175,6 @@@ t/txinfo26.sh 
  t/txinfo27.sh \
  t/txinfo28.sh \
  t/txinfo29.sh \
 -t/txinfo30.sh \
  t/txinfo31.sh \
  t/txinfo32.sh \
  t/txinfo33.sh \
@@@ -1205,6 -1231,8 +1206,6 @@@ t/vars3.sh 
  t/vartar.sh \
  t/vartypos.sh \
  t/vartypo2.sh \
 -t/version.sh \
 -t/version2.sh \
  t/version3.sh \
  t/version4.sh \
  t/version6.sh \