From: Stefano Lattarini Date: Thu, 20 Oct 2011 21:20:54 +0000 (+0200) Subject: Merge branch 'master' into testsuite-work X-Git-Tag: ng-0.5a~89^2~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c45ea72003cb51d76ea222d59e2966c18edbf7c;p=thirdparty%2Fautomake.git Merge branch 'master' into testsuite-work * 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 --- 3c45ea72003cb51d76ea222d59e2966c18edbf7c diff --cc ChangeLog index b1011ef03,8dea9ebe2..6db782157 --- a/ChangeLog +++ b/ChangeLog @@@ -1,178 -1,92 +1,267 @@@ + 2011-10-18 Stefano Lattarini + + 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 + + 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 + + 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 + + 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 + + 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 + + tests: fix aclocal-print-acdir.test + * tests/aclocal-print-acdir.test: Adjust to pass. + + 2011-10-19 Stefano Lattarini + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 parallel-tests: warn on conditional TEST_EXTENSIONS definition diff --cc tests/parallel-tests3.test index fd33564ad,14839a9a9..69ce1c1d1 --- a/tests/parallel-tests3.test +++ b/tests/parallel-tests3.test @@@ -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