]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
Merge branch 'master' into testsuite-work
authorStefano Lattarini <stefano.lattarini@gmail.com>
Thu, 20 Oct 2011 21:20:54 +0000 (23:20 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Thu, 20 Oct 2011 21:20:54 +0000 (23:20 +0200)
* master:
  tests: fix spurious failures with "chatty" make implementations
  tests: fix aclocal-print-acdir.test
  tests: fix spurious failure on fast machines
  tests: avoid spurious failure of 'uninstall-fail.test' on Solaris
  tests: avoid spurious failure of 'uninstall-fail.test' on Cygwin
  tests: avoid spurious failure in 'parallel-tests3.test'
  tests: fix spurious failure with FreeBSD make and Yacc in VPATH
  tests: fix spurious failure with autoconf 2.62
  refactor: improve signature of 'check_directory' sub in automake
  docs: avoid using colon character inside arguments of @pxref

1  2 
ChangeLog
THANKS
automake.in
doc/automake.texi
tests/distcheck-missing-m4.test
tests/distcheck-outdated-m4.test
tests/parallel-tests3.test
tests/subpkg.test

diff --cc ChangeLog
index b1011ef03c0a2ffac81242499aa3f6d9d9bd3ae6,8dea9ebe2e0a5404769aae74b83dc953694bc6bb..6db782157b45e5d153dee019c1bb4766b82e0125
+++ b/ChangeLog
+ 2011-10-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: fix spurious failure with FreeBSD make and Yacc in VPATH
+       * tests/subpkg.test: Some cosmetic adjustments.  Move the tests
+       checking that $(YLWRAP) is defined and installed properly when
+       ylwrap is in a default auxdir found in a parent package ...
+       * tests/subpkg-yacc.test: ... into this new test, which carefully
+       avoids to trigger the known bug#7884 (combo FreeBSD make plus Yacc
+       plus VPATH build).
+       * tests/Makefile.am (TESTS): Update.
+ 2011-10-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: avoid spurious failure in 'parallel-tests3.test'
+       This fixes automake bug#8788.
+       * tests/parallel-tests3.test: To ensure that the serial run of
+       the dummy testsuite is still ongoing when the parallel run has
+       terminated, use `kill -0', not a bare `kill'.  This will prevent
+       a testsuite crash on NetBSD 5.1, and a testsuite hang on FreeBSD
+       8.2.  Also, since we are at it, try harder to avoid possible
+       hangs of the script in other unusual situations.
+ 2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: fix spurious failures with "chatty" make implementations
+       * tests/distcheck-missing-m4.test: On failure, some make
+       implementations (such as Solaris make) print the whole failed
+       recipe on standard output.  This was causing a spurious failure
+       in the checks grepping the output from make.  Work around this.
+       * tests/distcheck-outdated-m4.test: Likewise.
+ 2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: fix spurious failure on fast machines
+       * tests/aclocal-path-precedence.test: Also remove the `configure'
+       script between different test runs, to ensure it is always remade
+       by autoconf.  Add proper explicative comments.
+ 2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: avoid spurious failure of 'uninstall-fail.test' on Solaris
+       * tests/uninstall-fail.test: All the Solaris 10 shells (/bin/sh,
+       /bin/ksh, and /usr/xpg4/bin/sh), upon failing to chdir to a
+       directory with the `cd' builtin, print a message like:
+         "sh: /root: permission denied"
+       which doesn't report the `cd' builtin anywhere.  Relax the grepping
+       of the error message accordingly.
+ 2011-10-20  Jim Meyering  <meyering@redhat.com>
+       tests: fix aclocal-print-acdir.test
+       * tests/aclocal-print-acdir.test: Adjust to pass.
+ 2011-10-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: avoid spurious failure of 'uninstall-fail.test' on Cygwin
+       * tests/uninstall-fail.test: Be sure to really skip this test
+       on systems that allows files to be removed from unwritable
+       directories.  Motivated by a spurious failure on Cygwin 1.5.
+ 2011-10-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       tests: fix spurious failure with autoconf 2.62
+       * tests/aclocal-path-precedence.test: Rewrite configure.in,
+       rather than appending to it, to avoid spurious failures (at
+       least with autoconf 2.62) due to repeated calls to AC_INIT.
+       Also, add package name and version arguments to AC_INIT, to
+       avoid spurious errors from automake.
+ 2011-10-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       docs: avoid using colon character inside arguments of @pxref
+       Fixes automake bug#9753
+       * doc/automake.texi (VPATH Builds): Avoid using colon character
+       `:' inside arguments of @pxref, as this can cause problems in
+       the generated `.info' files, and such an usage will be explicitly
+       forbidden by future texinfo documentation.
+       * THANKS: Update.
+       Reported by Дилян Палаузов.
+ 2011-10-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
+       refactor: improve signature of 'check_directory' sub in automake
+       * automake.in (check_directory): Take the relative directory
+       the directory to be checked is expected to be found into as
+       an optional parameter, rather than reading it from the global
+       variable `$relative_dir'.
+       (scan_autoconf_traces, check_directories_in_var): Adjust.
 +2011-10-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      cosmetics: remove obsolete comment
 +      * automake.in (push_required_file): Remove "FIXME" comment stating
 +      that the special handling of `$config_aux_dir' breaks threaded
 +      automake: this is not true anymore after the recent commits (see
 +      in particular commit `v1.11-1225-gf672944').
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      tests: fix spurious failure with Solaris /bin/sh
 +      * tests/dist-auxfile.test: Don't use redirected `:' in a loop,
 +      it hits a bug in Solaris 10 /bin/sh.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      threaded-am: better serialization for required config files
 +      With this change, we make serialization/de-serialization of
 +      required config files installs more granular, and in the process
 +      fix the bug introduced by commit `v1.11-1219-g326ecba'.
 +      * automake.in ($required_conf_file_queue): Move its declaration
 +      earlier.
 +      (require_file_internal): Add a new argument telling whether the
 +      function should act immediately or queue its action for the master
 +      thread to handle.
 +      (queue_required_conf_file): Renamed ...
 +      (queue_required_file_check_or_copy): ... to this.
 +      (require_queued_conf_file): Renamed ...
 +      (require_queued_file_check_or_copy): ... to this, and make it call
 +      `required_file_check_or_copy' instead of `require_file_internal'.
 +      (require_conf_file, handle_makefiles_threaded): Adjust and simplify
 +      accordingly.
 +      * tests/Makefile.am (XFAIL_TESTS): Remove `parallel-am.test'.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      automake: refactor, break up 'require_file_internal'
 +      This refactoring is only required in view of future changes.
 +      * automake.in (require_file_internal): Move the guts of this
 +      function ...
 +      (required_file_check_or_copy): ... into this new function.  This
 +      ensures that calls to `push_required_file' and code that copies
 +      required files are placed in separate functions; this will be
 +      very useful for reorganizing de-serialization of file installs
 +      in future changes.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      dist: separate auxiliary file instantiation from DIST_COMMON update
 +      This change simplifies the automake internals dealing with the
 +      checking, copying and distributing of required auxiliary files.
 +      With this change, a required auxiliary file is *unconditionally*
 +      added to the contents of the DIST_COMMON variable in the generated
 +      Makefile.in, before checking whether it exists, or trying to copy
 +      it (if `--add-missing' is in use).  This shouldn't be a problem,
 +      since if the checking or copying of the file fails, automake will
 +      bail out, the Makefile.in won't be created, and thus its content
 +      will not matter.  OK, this is not completely true when threaded
 +      automake is in use, but then, such a situation was also possible
 +      before this patch, so no regression here, which is enough for us.
 +      This change is the first of a series of steps aimed at fixing
 +      the regression introduced in threaded automake usage by commit
 +      `v1.11-1219-g326ecba'.
 +      * automake.in (require_file_internal): Add the required file to
 +      DIST_COMMON unconditionally.
 +      * tests/missing-auxfile-stops-makefiles-creation.test: New test.
 +      * tests/Makefile.am (TESTS): Add it.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      refactor: rename a subroutine to a more proper name
 +      * automake.in (maybe_push_require_file): Renamed ...
 +      (push_required_file): ... to this.
 +      All callers adjusted.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      dist: truly always distribute files in AC_REQUIRE_AUX_FILE
 +      This change fixes automake bug#9651.
 +      * automake.in (handle_dist): Files whose distribution is required
 +      by configure.ac are now correctly distributed even if the build-aux
 +      directory coincides with the top-level directory.
 +      * tests/Makefile.am (XFAIL_TESTS): Remove `dist-auxfile.test'.
 +      * NEWS: Update.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      dist: simplify automake code accordingly to the previous changes
 +      After the previous change `v1.11-1219-g326ecba', every Makefile.am
 +      requiring a file in the "config auxdir" will cause it to be listed
 +      in the DIST_COMMON variable of the corresponding generated
 +      Makefile.in, not only of the top-level Makefile.in.  Thus we don't
 +      need to worry anymore about trying to distribute files in the
 +      config auxdir from the top-level Makefile or the Makefile in
 +      config auxdir (if any).  This allows us to carry out some useful
 +      simplifications in the automake script.
 +      This will however cause some changes in the generated Makefile;
 +      for example, if the `PROGRAMS' primary is used only in a subdir
 +      Makefile.am, the `depcomp' script will be distributed only by
 +      `subdir/Makefile', not by the top-level Makefile.  This change
 +      can be seen as an internal detail though, and definitely warranted
 +      by the nice simplifications the current commit provides.
 +      * automake.in ($automake_will_process_aux_dir): Variable removed.
 +      (scan_autoconf_files): Adjust and simplify.
 +      (handle_makefiles_threaded): Likewise.
 +      (get_number_of_threads): Likewise.
 +      (require_file_internal): Likewise.
 +      (maybe_push_required_file): Its return value is not used anymore,
 +      so return nothing.  Add special handling for distributed files from
 +      `$config_libobj_dir'.  Also, catch "this can't happen" situations,
 +      and abort accordingly.  Fix function description to better fit its
 +      new role.
 +      * tests/libobj19.test: Extend to also check situations where the
 +      Makefile.am using $(LIBOBJS) is not the top-level one.
 +      * tests/distcom6.test: Delete, merged into ...
 +      * tests/distcom2.test: ... this test, which has been update to
 +      account for the changed automake semantics.
 +      * tests/Makefile.am (TESTS): Update.
 +      * NEWS: Update.
 +
 +2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      dist: auxiliary files can be distributed from subdir Makefiles
 +      With this change, we make it possible for a subdir Makefile.am
 +      to distribute files in the config auxdir; while this means that
 +      some files might be copied multiple times, it simplify some logic
 +      in the automake script, and fix at least one important bug.  In
 +      fact, before this change, the auxiliary script `test-driver' was
 +      not being distributed as expected when TESTS was defined only in
 +      a subdir Makefile (which is a pretty common setup indeed).  Now
 +      this does not happen anymore: so the present change fixes automake
 +      bug#9546.
 +      Another welcome collateral effect is that `dist-auxfile-2.test'
 +      now passes.
 +      OTOH, the present changes *breaks threaded automake*.  The reason
 +      is that automake needs to serialize file installations spawned
 +      by `--add-missing' (this isn't for cosmetic reasons, but is
 +      really needed to avoid possible race conditions and botched output
 +      files).  Currently the code that installs required files is
 +      intertwined with the code that declares the DIST_COMMON variables;
 +      so, upon de-serialization, the definition of DIST_COMMON might get
 +      emitted in the wrong Makefile.in.
 +      Some follow-up refactoring in automake will soon take care of
 +      remedying this situation.  For the moment, we just declare some
 +      "parallel-am" tests as xfailing.
 +      * automake.in (maybe_push_required_file): Add ad-hoc handling for
 +      the case where the directory part of the required file is different
 +      from the subdir where the current Makefile.am resides, but is equal
 +      to the "config-aux directory" ($config_auxdir).  This is needed to
 +      allow a construct in a non-top-level Makefile.am to require a file
 +      in the config-aux directory.
 +      * tests/test-driver-is-distributed.test: Extend and adjust.  This
 +      test now passes.
 +      * tests/java-compile-run-nested.test: Call automake with the `-a'
 +      option to ensure that the `test-driver' auxiliary script gets
 +      correctly installed.  This test now passes.
 +      * tests/distcom-subdir.test: New test.
 +      * tests/dist-readonly.test: Likewise.
 +      * tests/dist-repeated.test: Likewise.
 +      * tests/dist-auxdir-many-subdirs.test: Likewise.
 +      * tests/distcom7.test: Removed, it's obsolete now.
 +      * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
 +
 +2011-10-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: conditional contents in LOG_DRIVER variables
 +      * tests/test-driver-cond.test: New test.
 +      * tests/Makefile.am (TESTS): Add it.
 +
 +2011-10-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
 +
 +      coverage: LOG_DRIVER variables can be defined through AC_SUBST
 +      * tests/test-driver-acsubst.test: New test.
 +      * tests/Makefile.am (TESTS): Add it.
 +
  2011-10-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
  
        parallel-tests: warn on conditional TEST_EXTENSIONS definition
diff --cc THANKS
Simple merge
diff --cc automake.in
Simple merge
Simple merge
Simple merge
Simple merge
index fd33564ad8749abd31ff44293cb55e747baa7c69,14839a9a953f12a07c17d6c0a7c8204c4709da3b..69ce1c1d19f9af504873631c6621a777826b7e1a
@@@ -66,15 -68,21 +66,21 @@@ $slee
  : >stdout
  $MAKE -j4 check >> stdout
  cd ..
- kill $!
+ # Ensure the tests are really being run in parallel mode: if this is
+ # the case, the serial run of the dummy testsuite started above should
+ # still be ongoing when the parallel one has terminated.
+ kill -0 $!
  cat parallel/stdout
 -test `grep -c PASS parallel/stdout` -eq 8
 +test `grep -c '^PASS:' parallel/stdout` -eq 8
  
- # Wait long enough so that there are no open files any more
- # when the post-test cleanup runs.
- while test ! -f serial/test-suite.log
- do
-   $sleep
+ # Wait long enough so that there are no open files any more when the
+ # post-test cleanup runs.  But exit after we've waited for two minutes
+ # or more, to avoid testsuite hangs in unusual situations (this has
+ # already happened).
+ i=1
+ while test ! -f serial/test-suite.log && test $i -le 120; do
+   i=`expr $i + 1`
+   sleep '1' # Extra quoting to please maintainer-check.
  done
  $sleep
  
Simple merge