t/ax


Log

Author Commit Date CI Message
Mike Frysinger cd995fe6 2022-01-24T01:02:41 tests: clear autotools env vars Fixes automake bug https://bugs.gnu.org/16714. The testsuite will try and retain these env vars when recursively running itself, but doesn't distinguish between vars coming from the env where the tests were launched. This breaks if the user happens to `export ACLOCAL=alocal` before `make check`. This gets a little more confusing in that the Makefile appears to export these already: ACLOCAL = ".../automake/pre-inst-env" aclocal-1.16 In reality, while those are set in the make execution environment, they aren't exported into the process environment, so children (i.e. shell processes in make rules) don't have them set. That's why tests work for most people today. However, if the user has first exported "ACLOCAL" in the parent make environment (regardless of value), then make's value will reset the process environment, and then that will leak into the children. That's why we see errors that look like the makefile env vars are leaking for these people. At any rate, the fix is to update the test harness to clear these vars that the test suite relies upon, especially the ones that are also set in the Makefiles. That includes AUTOUPDATE even though it currently isn't used inside any of the tests. * t/local.mk: Add ACLOCAL, AUTOCONF, AUTOHEADER, AUTOMAKE, and AUTOUPDATE to the env unset list. * t/ax/runtest.in: Likewise.
Jim Meyering 6c8ff6a8 2022-01-12T14:15:12 maint: make update-copyright
Jim Meyering a470a47f 2021-07-11T19:19:42 maint: make update-copyright
Karl Berry 216d1834 2020-06-06T15:42:54 automake: support AM_TESTSUITE_SUMMARY_HEADER override. This change handles https://bugs.gnu.org/11745. * lib/am/check.am (AM_TESTSUITE_SUMMARY_HEADER): new variable. Default value is " for $(PACKAGE_STRING)", including quotes, to keep the default output the same. ($(TEST_SUITE_LOG)): use it, unquoted. * doc/automake.texi (Scripts-based Testsuites): document it. * NEWS: mention it. * t/testsuite-summary-header.sh: new test. * t/list-of-tests.mk (handwritten_tests): add it. * t/ax/testsuite-summary-checks.sh: fix typo.
Karl Berry 40415b21 2020-01-18T18:06:23 tests: use find+rm, not perl, to remove temporary directories. This change fixes automake bug#39078: https://debbugs.gnu.org/39078 * t/ax/test-lib.sh (rm_rf_): run chmod -R u+rwx and rm -rf, instead of calling our t/ax/deltree.pl script. This reverses the change of 2013-05-16. It made sense to write and use deltree at that point, but unfortunately as of perl-5.28.0 (File::Path.pm version 2.15), rmtree no longer removes a tree with unreadable subdirectories, such as we (intentionally) have. So we might as well go back to rm -rf. The unconditional recursive chmod instead of the previously-used more complex find command will hopefully prove portable. See the bug report for more details. Our deltree.pl is not used for anything else, but nevertheless leaving it in our source tree for now, for ease of reversion and comparison.
Jim Meyering cf27a3df 2020-01-01T11:44:41 maint: make update-copyright
Paul Eggert 5ae02cc8 2019-10-14T13:46:55 maint: make update-copyright
Mathieu Lirzin bbaa4cdc 2018-01-04T16:19:30 maint: Update copyright years to 2018 This update has been made with 'make update-copyright'.
Mathieu Lirzin c2757b97 2017-09-19T13:43:07 maint: Reset master
Paul Eggert 3562e384 2017-09-16T13:03:36 Prefer https: URLs In Gnulib, Emacs, etc. we are changing ftp: and http: URLs to use https:, to discourage man-in-the-middle attacks when downloading software. The attached patch propagates these changes upstream to Automake. This patch does not affect files that Automake is downstream of, which I'll patch separately. Althouth the resources are not secret, plain HTTP is vulnerable to malicious routers that tamper with responses from GNU servers, and this sort of thing is all too common when people in some other countries browse US-based websites. See, for example: Aceto G, Botta A, Pescapé A, Awan MF, Ahmad T, Qaisar S. Analyzing internet censorship in Pakistan. RTSI 2016. https://dx.doi.org/10.1109/RTSI.2016.7740626 HTTPS is not a complete solution here, but it can be a significant help. The GNU project regularly serves up code to users, so we should take some care here.
Paul Eggert 199e7a44 2017-09-16T13:03:36 Prefer https: URLs In Gnulib, Emacs, etc. we are changing ftp: and http: URLs to use https:, to discourage man-in-the-middle attacks when downloading software. The attached patch propagates these changes upstream to Automake. This patch does not affect files that Automake is downstream of, which I'll patch separately. Althouth the resources are not secret, plain HTTP is vulnerable to malicious routers that tamper with responses from GNU servers, and this sort of thing is all too common when people in some other countries browse US-based websites. See, for example: Aceto G, Botta A, Pescapé A, Awan MF, Ahmad T, Qaisar S. Analyzing internet censorship in Pakistan. RTSI 2016. https://dx.doi.org/10.1109/RTSI.2016.7740626 HTTPS is not a complete solution here, but it can be a significant help. The GNU project regularly serves up code to users, so we should take some care here.
Mathieu Lirzin f389ecb8 2017-08-31T19:23:42 Merge branch 'minor'
Mathieu Lirzin ab2d33e6 2017-08-29T21:15:14 aclocal: Support ACLOCAL_AUTOMAKE_DIR environment variable * bin/aclocal.in: Reset '@automake_includes' and '@system_includes' in for build environment. Allow setting '@automake_includes' with ACLOCAL_AUTOMAKE_DIR environment variable. (parse_arguments): Ignore 'dirlist' when '@system_includes' is empty. * doc/automake.texi (aclocal Options): Document ACLOCAL_AUTOMAKE_DIR. * bin/wrap-aclocal.in: Remove extra command line options. * pre-inst-env.in: Set ACLOCAL_AUTOMAKE_DIR and ACLOCAL_PATH environment variables. * t/ax/test-defs.in: Adapt. * t/ansi2knr-no-more.sh (warn_rx): Likewise.
Mathieu Lirzin bb64793a 2017-08-29T11:27:52 build: Move wrapped scripts in "bin" directory Those scripts are used both in the build process and for the tests, so it seems clearer to not hide them in "t/wrap" directory. * t/wrap/aclocal.in: Rename to ... * bin/wrap-aclocal.in: ... this. * t/wrap/automake.in: Rename to ... * bin/wrap-automake.in: ... this. * configure.ac: Generate "bin/aclocal-${APIVERSION}" and "bin/automake-${APIVERSION}" at configure time. * t/Makefile.inc (nodist_noinst_SCRIPTS): Move wrapped scripts ... * bin/Makefile.inc (nodist_noinst_SCRIPTS): ... here. * Makefile.am (extend_PATH): Use "bin" directory. * t/ax/test-defs.in (am_bindir): Likewise. * t/get-sysconf.sh: Likewise. * .gitignore: Update.
Mathieu Lirzin d8add592 2017-03-02T18:55:53 maint: Update copyright years to 2017. This update has been made with 'make update-copyright'.
Jim Meyering 1370ce5f 2017-01-01T08:34:49 maint: update copyright dates for 2017 * all files: Run this command, using update-copyright from gnulib: UPDATE_COPYRIGHT_FORCE=1 \ UPDATE_COPYRIGHT_USE_INTERVALS=2 \ UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79 \ update-copyright $(git ls-files)
Peter Rosin 0bc7d215 2015-11-24T12:42:15 Merge branch 'minor' * minor: compile: add icl to compile wrapper script tests: fix a typo-induced bug
Jonathan L Peyton c40e27e1 2015-11-24T12:19:19 compile: add icl to compile wrapper script * lib/compile: Have icl be treated similarly to cl (scriptversion): Update. * t/ax/am-test-lib.sh (require_tool): Handle icl. * t/compile7.sh: Add new test file for icl... * t/list-of-tests.mk (handwritten_TESTS): ...and use it. * NEWS: Update. * THANKS: Update. Copyright-paperwork-exempt: yes Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Stefano Lattarini 2f0293e1 2015-01-05T22:55:51 Merge branch 'minor' * minor: maint: update copyright years to 2015 (branch 'micro')
Stefano Lattarini 5de75f07 2015-01-05T22:48:33 maint: update copyright years to 2015 (branch 'micro') Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 36812809 2014-12-30T20:59:22 Merge branch 'minor' * minor: docs: "make distcheck" implementation details are not to be abused NEWS: improve and adjust in light of the oncoming 1.15 release shell-no-trail-bslash: improve diagnostic in case of failure Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 545e5740 2014-12-30T14:49:46 Merge branch 'micro' into minor * micro: shell-no-trail-bslash: improve diagnostic in case of failure
Stefano Lattarini b8aa9fc0 2014-12-30T14:28:52 shell-no-trail-bslash: improve diagnostic in case of failure * t/ax/shell-no-trail-bslash.in: Here, by fixing a typo in a variable name and a logic error. * t/self-check-shell-no-trail-bslash.sh: Enhance to catch the issue. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini adc17cc4 2014-12-28T16:54:41 Merge branches 'texi-in-builddir-remove-distclean-hack' and 'minor' * texi-in-builddir-remove-distclean-hack: texinfo: remove hack about info files in CLEANFILES variables * minor: tests: make script 'shell-no-trail-bslash' simpler and more robust
Stefano Lattarini 269893bb 2014-12-28T16:25:28 Merge branch 'micro' into minor * micro: tests: make script 'shell-no-trail-bslash' simpler and more robust
Stefano Lattarini 0fae5905 2014-12-28T14:02:30 tests: make script 'shell-no-trail-bslash' simpler and more robust This solves spurious failure in the 'check-no-trailing-backslash-in-recipes' target for Automake-NG. This is basically a backport of Automake-NG commit v1.14.1-1010-g85aae58; the point is to minimize the amount of spurious diffs between the mainline Automake and the Automake-NG source trees. * t/ax/shell-no-trail-bslash.in: Simplify and fortify. * t/self-check-shell-no-trail-bslash.sh: Enhance. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a000546b 2014-04-21T15:12:29 Merge branch 'minor' * minor: maint: update copyright years maint: sync files from upstream ("make fetch") Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a78f63c5 2014-04-21T15:10:54 maint: update copyright years We've been in 2014 already for few months now... Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini bd31e343 2013-12-26T21:01:30 Merge branch 'minor' * minor: Allow user to extend .PRECIOUS target cosmetics: remove a couple of extra trailing white spaces tests: fix a spurious failure on Mac OS X docs: make clear the JAVA primary is frozen install-sh: a slightly better diagnostic, and tests enhancements install-sh: be stricter in catching invalid usages tests: more significant names for some tests tests: some cosmetic fixes tests: more significant names for a test docs: drop a few obsolescent FIXME/TODO comments, and associated text testsuite harness: report test exit status in log file TAP driver: no need to invoke AC_PROG_AWK directly TAP driver: remove perl implementation (move it into contrib/) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b04ea3e9 2013-12-25T16:44:17 Merge branches 'fix-pr11814' and 'drop-perl-tap-driver' into minor * fix-pr11814: docs: drop a few obsolescent FIXME/TODO comments, and associated text testsuite harness: report test exit status in log file * drop-perl-tap-driver: TAP driver: remove perl implementation (move it into contrib/) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini c7e2fb2e 2013-12-24T17:45:18 testsuite harness: report test exit status in log file The exit status of a test should be reported in the test logs, so that one can see at a glance whether the test has succeeded or failed, without having to look also into the corresponding .trs file. This fixes automake bug#11814. * lib/test-driver: Also report the test script exit status in the test log (as the last line). * t/check-exit-status-reported.sh: Test this new behaviour. * t/list-of-tests.mk: Add the new test. * t/ax/test-lib.sh( am_exit_trap): No longer log the test exit status; this has been made redundant by the change to 'test-driver'. While at it, fix an imperfect quoting. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a6d6734f 2013-12-24T16:27:28 TAP driver: remove perl implementation (move it into contrib/) That implementation was only meant as a standard against which the portable awk+shell implementation was to be measured. Now, since Automake 1.12, the latter implementation is fully functional and already used in the wild, and in fact feature-par with the perl implementation. So the perl implementation is now just slowing down and complicating our testsuite. Let's move it to 'contrib/' (we don't want to remove it, in case someone is actually using it in the wild). * lib/tap-driver.pl: Move it ... * contrib/tap-driver.pl: ... here. While at it, convert quoting `like this' to quoting 'like this', and remove an obsolescent FIXME comment. * lib/Makefile.inc (dist_script_DATA): Drop '%D%/tap-driver.pl'. * Makefile.am (EXTRA_DIST): Add 'contrib/tap-driver.pl'. * doc/automake.texi: Remove one stray reference to 'tap-driver.pl', and reference 'tap-driver.sh' instead, as intended. * t/ax/am-test-lib.sh ($am_tap_implementation): Delete definition and uses. (fetch_tap_driver): Simplify to unconditionally assume the shell+awk implementation of the TAP driver is used. (get_shell_script): Make more flexible so that it can cater to the needs of 'fetch_tap_driver()'. * t/tap-bad-prog.tap: Likewise. * t/tap-bailout-leading-space.sh: Likewise. * t/tap-signal.tap: Likewise. * t/tap-test-number-0.sh: Likewise. * t/test-driver-cond.sh: Use 'tap-driver.sh' instead of 'tap-driver.pl'. * gen-testsuite-part (%test_generators): Do not generate sister tests that use the perl TAP driver rather than the shell+awk one. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b7bdb2c3 2013-10-30T01:04:24 Merge branch 'minor' * minor: tests: fix spurious failure when zip is present but unzip is not tests: fix spurious failure due to localization issues NEWS: update with the changes since v1.14 docs: correct typos in the fix-timestamp.sh script python: byte-compile nobase_*_PYTHON files only once cosmetics: typofix in the 'missing' script test: avoid false positives in 'cc-no-c-o' script test harness: improve catching of usage errors in script 'test-driver' tests: fix a spurious failure on NetBSD-current am-ft: make the environment available earlier NEWS: post-release tweaks (for 1.14.x series) tests: avoid a spurious failure on MacOS X 10.6.8 tests: don't risk hanging on the 'cl' requirement
Stefano Lattarini db6cb184 2013-07-21T13:46:48 test: avoid false positives in 'cc-no-c-o' script Fixes automake bug#14911. * t/ax/cc-no-c-o.in: Be more careful in determining whether both the '-c' and '-o' options have been passed on the command line to the compiler. In particular, do not spuriously complain in the face of options like '-compatibility_version' or '-current_version' (seen on Mac OS X 10.7). * THANKS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ec163633 2013-06-27T11:11:35 tests: don't risk hanging on the 'cl' requirement On the GNU/Linux boxes of some users that run our testsuite there is a '/usr/local/bin/cl' executable, from the IRAF package: <http://iraf.noao.edu/> The test 'compile4.sh' (and other tests) try to invoke the 'cl' command to check whether it's a Microsoft compiler; the IRAF cl is an interactive program, so it hangs on such invocation. In conclusion, the testsuite hangs for those users which have the IRAF cl early in PATH. Fix the issue by redirecting the input of cl from /dev/null when invoking it, which is enough to prevent the cl program from IRAF from hanging, and should have no effect on the behaviour of the Microsoft compiler. This change fixes automake bug#14707. * t/ax/am-test-lib.sh (require_tool): Adjust the handling of the 'cl' requirement. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini f61b6ef9 2013-06-13T01:48:54 Merge branch 'maint' * maint: THANKS: update e-mall address for Ralf Corsepius lang, suffix rules: don't require C stuff needlessly tests: expose automake bug#14560 maint: add a missing copyright notice sync: update config.guess from upstream tests: expose automake bug#13928 comments: fix some out-of-sync refs to test scripts tests: expose automake bug#13940
Stefano Lattarini 9892eb78 2013-06-09T11:37:01 Merge branch 'micro' into maint * micro: maint: add a missing copyright notice sync: update config.guess from upstream tests: expose automake bug#13928 comments: fix some out-of-sync refs to test scripts tests: expose automake bug#13940
Stefano Lattarini 2d6fec69 2013-06-09T11:31:58 maint: add a missing copyright notice * t/ax/deltree.pl: Here. Issue revealed by "make update-copyright". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini d2d3b76a 2013-06-03T21:20:51 Merge branch 'maint' * maint: configure: remove an obsolete TODO comment post-release: micro version bump (1.13.3a) release: stable micro release 1.13.3 typofix: fix grammaro in comments in t/tags-pr12372.sh NEWS: minor fixlets, re-wording, and better text wrapping tests: slightly stricter checks in t/cxx-demo.sh tests: fix spurious failure when 'etags' program is Exuberant Ctags tests: fix spurious failure due to missing sleeps maint: version bump after beta release 1.13b release: beta release 1.13b (will become 1.14) maint: support new Automake versioning scheme in tagging/uploading rules announcement: can be generated from development snapshots as well announcement: can be generated from development snapshots as well announcement: be less strict in the paring of NEWS maint: version bump after beta release 1.13.2b release: beta release 1.13.2b (will become 1.13.3) sync: update config.guess from upstream automake: assume we can always pass '-o' to the C compiler NEWS: document recent testsuite fixes (MinGW/MSYS related) depcomp: avoid trailing backslash in depfile for depmode=msvc7 tests: prune some weed in a non-POSIX test tests: avoid a spurious failure on MSYS t/README: document "run_make", discourage "make -e" cosmetics: tiny whitespace fixlets tests: avoid a spurious failure with MSVC tests: avoid a spurious failure on non-POSIX systems Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 649c03b4 2013-05-29T14:54:47 Merge branch 'micro' into maint * micro: t/README: document "run_make", discourage "make -e" cosmetics: tiny whitespace fixlets tests: avoid a spurious failure with MSVC tests: avoid a spurious failure on non-POSIX systems
Stefano Lattarini 88b04360 2013-05-29T13:55:48 cosmetics: tiny whitespace fixlets Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini fefd26d9 2013-05-28T21:05:30 Merge branch 'maint' * maint: NEWS: report recent documentation fix about AM_PROG_MKDIR_P NEWS: Automake 2.0 will assume "rm -f" without args work NEWS: on assuming "rm -f" without arguments work NEWS: fix a couple of typos in older entries docs: AM_PROG_MKDIR_P: will not be removed in 2.0 release of Automake docs: AM_PROG_CC_C_O: correct imprecise statements about it maint: sanity checks in 'check-minimal-autoconf' convenience target maint: test minimal supported autoconf through convenience target maint: install minimal supported autoconf through convenience targets test-lib: typofix in comments Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 94d57f3d 2013-05-28T17:53:03 Merge branch 'micro' into maint * micro: docs: AM_PROG_MKDIR_P: will not be removed in 2.0 release of Automake maint: sanity checks in 'check-minimal-autoconf' convenience target maint: test minimal supported autoconf through convenience target maint: install minimal supported autoconf through convenience targets test-lib: typofix in comments
Stefano Lattarini 3fd6f164 2013-05-26T20:51:57 test-lib: typofix in comments * t/ax/am-test-lib.sh: In here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 4a4f39cf 2013-05-26T14:10:49 Merge branch 'maint' * maint: NEWS: document deprecation of 'shar' and 'compress' dist formats m4: rename minuso.m4 -> prog-cc-c-o.m4 tests: adjust or remove some obsolete comments tests: remove some useless 'unset' of variables tests: avoid a couple of extra sleep with GNU make NEWS: document testsuite work for 1.13.3 lint: remove a couple of obsolete syntax checks lint: cosmetics: use #-comments, not ##-comments lint: cosmetics: some reordering lint: recipes of syntax check require GNU grep; ensure it is used lint: better name for a syntax check tests: rename $am_make_rc_got -> $am_make_rc tests: some tests make no sense if "$CC -c -o" doesn't work AM_PROG_CC_C_O: don't rely on AC_PROG_CC_C_O, re-implement similar logic compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents tests: ensure $required is not set too late Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 3f19ee5f 2013-05-26T14:09:20 Merge branch 'micro' into maint * micro: tests: adjust or remove some obsolete comments tests: remove some useless 'unset' of variables
Stefano Lattarini e5b40a3e 2013-05-26T13:30:52 Merge branch 'prog-cc-c-o-work' into maint * prog-cc-c-o-work: tests: some tests make no sense if "$CC -c -o" doesn't work AM_PROG_CC_C_O: don't rely on AC_PROG_CC_C_O, re-implement similar logic compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents
Stefano Lattarini 2ea48f45 2013-05-26T12:42:04 tests: adjust or remove some obsolete comments * t/ax/am-test-lib.sh: Here. * t/distcheck-configure-flags.sh: And here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini d81424aa 2013-05-26T12:04:48 Merge branch 'micro' into maint * micro: tests: avoid a couple of extra sleep with GNU make NEWS: document testsuite work for 1.13.3 lint: remove a couple of obsolete syntax checks lint: cosmetics: use #-comments, not ##-comments lint: cosmetics: some reordering lint: recipes of syntax check require GNU grep; ensure it is used lint: better name for a syntax check tests: rename $am_make_rc_got -> $am_make_rc tests: ensure $required is not set too late Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 74c1336d 2013-05-24T20:54:41 tests: rename $am_make_rc_got -> $am_make_rc The latter is more natural More importantly, I keep misspelling the former over and over. * t/ax/am-test-lib.sh (run_make): Update. * t/ax/tap-summary-aux.sh: Adjust. * t/ax/testsuite-summary-checks.sh: Likewise. * t/parallel-tests-exit-statuses.sh: Likewise. * t/parallel-tests-extra-programs.sh: Likewise. * t/parallel-tests-fd-redirect-exeext.sh: Likewise. * t/parallel-tests-fd-redirect.sh: Likewise. * t/parallel-tests-fork-bomb.sh: Likewise. * t/parallel-tests-no-spurious-summary.sh: Likewise. * t/parallel-tests-recheck-pr11791.sh: Likewise. * t/parallel-tests-reset-term.sh: Likewise. * t/tap-signal.tap: Likewise. * t/test-driver-acsubst.sh: Likewise. * t/test-driver-cond.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b2b6269f 2013-05-15T15:48:08 tests: some tests make no sense if "$CC -c -o" doesn't work So just skip them, to avoid spurious failures when running "make check-no-cc-c-o". * t/ax/am-test-lib.sh (require_tool): New requirement '-c-o'. * t/subobj10.sh ($required): Add it. * gen-testsuite-part (%depmodes): Adjust so that tests that use 'makedepend' will be skipped if the compiler is being forced not to grasp "-c -o". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini f6b9a22e 2013-05-24T12:46:17 tests: ensure $required is not set too late And do so in a safer way, with a runtime check rather than a brittle static maintainer check. * t/ax/test-init.sh: Set the 'required' variable to readonly. * syntax-checks.mk (sc_tests_required_after_defs): Remove. (syntax_check_rules): No longer list it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ef098fa6 2013-05-24T12:26:34 Merge branch 'maint' * maint: tests: use append mode to capture parallel make output tests: new convenience target 'check-parallel'
Stefano Lattarini ac13ca50 2013-05-24T12:17:59 Merge branch 'micro' into maint * micro: tests: use append mode to capture parallel make output tests: new convenience target 'check-parallel' Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini d19eb85c 2013-05-24T01:13:40 tests: use append mode to capture parallel make output This will allow us to run the Automake testsuite forcing all the make invocations in the test cases to run in parallel mode [1], but without hitting the spurious failure reported in automake bug#11413. See also: <http://lists.gnu.org/archive/html/bug-make/2013-05/msg00135.html> The make invocations in the test cases can be forced to run in parallel mode by, e.g., invoking "make check" like this: make check AM_TESTSUITE_MAKE="make -j16" The possible spurious failures hinted above are due to the fact that the redirected output of parallel make can racily lose lines. For example, if GNU make (3.82) is run with -j10 on a Makefile like this: all = 0 1 2 3 4 5 6 7 8 9 default: $(all) $(all): @sleep 0.$$(($RANDOM % 10)); echo $@ and has its standard output redirected in overwrite-mode to a regular file, it looses a line of that output every 15 runs or so on a Fedora 17 system with 64 ppc64 cores. Redirection in append mode does not suffer of this problem, as explained here: <http://lists.gnu.org/archive/html/automake-patches/2009-03/msg00073.html> See also previous commits v1.12-63-g45c1fcd of 2012-05-05 (tests: use append mode to capture parallel make output) and Release-1-10-280-g6426999 of 2009-03-10 (Use append mode to capture parallel test output). * t/ax/am-test-lib.sh (run_make): Adjust and enhance. * t/lisp8.sh: Take advantage of the enhancement, nd stop doing output redirection for $MAKE by hand. * t/tap-more.sh: Likewise. * t/parallel-tests-concurrency.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a0db09fe 2013-05-23T20:49:39 Merge branch 'maint' * maint: tests: avoid few lingering $MAKE redirections tests: avoid '$MAKE' redirections, use 'run_make' instead tests: avoid use of redirected 'run_make' invocations lint: warn against redirected 'run_make' invocations comments: next GNU make release 4.0, not 3.83 tests: fix a potential spurious failure due to global config.site HACKING: it's OK to do testsuite refactoring in a micro version Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 86e45fe1 2013-05-23T20:12:17 Merge branch 'micro' into maint * micro: tests: avoid '$MAKE' redirections, use 'run_make' instead tests: avoid use of redirected 'run_make' invocations lint: warn against redirected 'run_make' invocations comments: next GNU make release 4.0, not 3.83 tests: fix a potential spurious failure due to global config.site HACKING: it's OK to do testsuite refactoring in a micro version Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 3ce4015f 2013-05-23T12:10:18 tests: avoid '$MAKE' redirections, use 'run_make' instead The use 'run_make' with the -E, -O and -M option, it is more idiomatic now. Also, this way, centralized fixes and improvements done in 'run_make' will automatically propagate through most of the testsuite. * syntax-checks.mk (sc_tests_no_run_make_redirect): Also check against '$MAKE' invocations that uses output redirections (and not only against 'run_make' invocation that do so). * Several tests: Adjust (and few minor cosmetic changes as well, while at it). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini e2a000cc 2013-05-22T23:29:47 tests: avoid use of redirected 'run_make' invocations Instead, properly use the -E, -O, or -M options of run_make. The occurrences of the 'run_make' invocations using output redirection has been found by the recently-introduced maintainer check 'sc_tests_no_run_make_redirect'. * t/ax/tap-summary-aux.sh: Adjust. * t/ax/testsuite-summary-checks.sh: Likewise. * Several other tests: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 439ca6b3 2013-05-22T17:45:27 Merge branch 'maint' * maint: tests: remove some code duplication cosmetics: remove a couple of extra whitespaces in tests tests: two minor fixups
Stefano Lattarini 8d710870 2013-05-22T15:59:06 Merge branch 'micro' into maint * micro: tests: remove some code duplication cosmetics: remove a couple of extra whitespaces in tests tests: two minor fixups
Stefano Lattarini 15996acc 2013-05-22T13:00:48 tests: remove some code duplication * t/ax/am-test-lib (null_install): New function. * t/instdir-java.sh: Use it instead of copied & pasted code. * t/instdir-lisp.sh: Likewise. * t/instdir-ltlib.sh: Likewise. * t/instdir-prog.sh: Likewise. * t/instdir-python.sh: Likewise. * t/instdir-texi.sh: Likewise. * t/instdir.sh: Likewise. * t/instdir2.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini baf8a1c2 2013-05-22T00:23:14 Merge branch 'maint' * maint: tests: run_make: options to do command redirection tests: only activate 'unset' alias if required tests: better idiom to override make macro defs on the cmdline test-lib: minor style changes test-lib: fix botched function name in an error message
Stefano Lattarini 4d56c0f3 2013-05-22T00:09:30 Merge branch 'micro' into maint * micro: tests: run_make: options to do command redirection tests: only activate 'unset' alias if required tests: better idiom to override make macro defs on the cmdline test-lib: minor style changes test-lib: fix botched function name in an error message Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini c7cfa093 2013-05-21T20:22:17 tests: run_make: options to do command redirection Let's improve the API of the 'run_make()' helper shell function by adding three new options: -O Save the standard output from make on disk, in a regular file named 'stdout'. -E Save the standard error from make on disk, in a regular file named 'stderr'. -M Save both the standard output and standard error from make on disk, in a regular file named 'output'. This option supersedes both the '-O' and '-E' options. This new API has two main advantages. 1. Its use will allow us to get rid of more cumbersome idioms like, e.g., $MAKE check >stdout && { cat stdout; exit 1; } cat stdout That can now be substituted with a simpler one: run_make -e FAIL -O check 2. More importantly, using the new API we will prevent any extra output from the shell traces of the code in run_make to be redirected along with the make stderr (where that was redirected). This problem was present in usages like, e.g., run_make TESTS=foo.test check 2>stderr && exit 1 grep 'expected error message' stderr Such usages are now to be rewritten as follows: run_make -e FAIL -E TESTS=foo.test check grep 'expected error message' stderr ensuring that 'stderr' won't end up containing unrelated stuff. Note that we do not convert in bulk the old idioms and the use of redirected 'run_make' invocations with this patch. We only convert some occurrences, to ensure that the new implementation of 'run_make' is sound enough. More sweeping conversions will likely be done in follow-up patches. * t/ax/am-test-lib.sh (run_make): Enhance and implement the extended API. * t/tap-xfail-tests.sh: Use the new 'run_make' API. * t/test-driver-cond.sh: Likewise. * t/tests-environment-fd-redirect.sh: Likewise. * t/uninstall-fail.sh: Likewise. * t/yacc-dist-nobuild.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini a422365b 2013-05-21T11:59:21 tests: only activate 'unset' alias if required This makes the test logs easier to read for most shells (which do not actually require that alias). This is especially important now that 'unset' is used in the new 'run_make()' function, and that function is likely going to be used more and more in the future. * t/ax/test-lib.sh (_am_unset, unset): Only define this function and alias if "unset VAR" returns a non-zero exit status when VAR is already unset. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ffd4ecc9 2013-05-20T11:23:01 tests: better idiom to override make macro defs on the cmdline We now do so with a new wrapper shell function 'run_make()', which relies on the use of AM_MAKEFLAGS, avoiding the use of the '-e' make option. The use of that option (that causes the environment variables to take precedence over the macro definitions in the Makefile) has proved to be quite brittle in the past, causing annoying and sometimes problematic spurious failures. This has worsened in some still unpublished work going on in development branches. It's time to solve the issue once and for all. Note that we do not convert all uses of $MAKE in the testsuite right away; we might do so in follow-up changes, with leisure, to avoid a "patch bomb" effect (this commit is already too much of a bomb itself). What we do in this commit is to get rid of all "$MAKE -e" invocations. We admit that the implementation and feature-set of 'run_make()' are far from perfect, but good enough for our current purposes. We'll improve 'run_make()' if and when the need arises. * syntax-checks.mk (sc_tests_no_make_e): New syntax check, guard against the use of "$MAKE -e". (syntax_check_rules): Add it. (sc_tests_overriding_macros_on_cmdline): Adjust. (lint): New, alias for 'maintainer-check', for lazy typists. Idea backported from the 'maint' branch (Automake 1.13a). * t/ax/am-test-lib.sh (run_make): New function. Run $MAKE with the given command-line arguments, handling command-line override of variable definitions in a smart way (using AM_MAKEFLAGS if a non-GNU make implementation is detected to be in use). (useless_vpath_rebuild): Adjust to use 'run_make', to avoid a spurious maintainer check failure. (yl_distcheck): Use 'run_make' rather than bare '$MAKE'. (single_quote, append_single_quoted, is_valid_varname): New auxiliary function, used, directly or indirectly, by it. * Many tests: Adjust to avoid the use of "$MAKE -e", and prefer the use of 'run_make' in few other contexts as well, where it makes sense. Other minor fixlets while at it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 12cfd38f 2013-05-20T15:17:11 test-lib: minor style changes * t/ax/am-test-lib.sh (require_tool): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 8a39c6de 2013-05-20T15:07:48 test-lib: fix botched function name in an error message * t/ax/am-test-lib.sh (useless_vpath_rebuild): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 5fe99e28 2013-05-18T19:27:28 Merge branch 'maint' * maint: lisp: fix a failure with Solaris /usr/xpg4/bin/sh tests: sanitize 'unset' usages tests: fix some botched/outdated comments tests: use perl, not find+rm, to remove temporary directories
Stefano Lattarini 0cca184f 2013-05-18T15:23:20 Merge branch 'micro' into maint * micro: lisp: fix a failure with Solaris /usr/xpg4/bin/sh tests: sanitize 'unset' usages tests: fix some botched/outdated comments tests: use perl, not find+rm, to remove temporary directories Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 84e12c32 2013-05-17T13:45:44 tests: sanitize 'unset' usages In some shells (e.g., Solaris 10 /bin/ksh, or NetBSD 5.1 /bin/sh), "unset VAR" returns a non-zero exit status in case the VAR variable is already unset. This doesn't interact well with our usage of "set -e" in the testsuite. So far, we've avoided spurious failures by either explicitly ignoring the exit status from unset: unset VAR || : or explicitly ensuring that a variable is set, before trying to unset it: VAR=; unset VAR But we can do better, by aliasing the 'unset' command to a custom function that will take care of these details for us. This will avoid us annoying spurious failures in the future, failures that have already bitten us too much times. For an example, refer to commit 'v1.12.2-88-g5b1dae5' of 2012-08-05 (tests: avoid tons of spurious failures on NetBSD). * t/ax/test-lib.sh (_am_unset): New function. (unset): New alias to it. (_am_exit): Adjust comments. * t/ax/am-test-lib.sh: No need to temporary disable the 'errexit' shell flag when unsetting variables that are potentially already unset. (am_process_requirements): Adjust to remove a now-useless workaround related to unset. * t/aclocal-macrodir.tap: Likewise. * t/aclocal-macrodirs.tap: Likewise. * t/auxdir-autodetect.sh: Likewise. * t/ax/am-test-lib.sh: Likewise. * t/ax/test-lib.sh: Likewise. * t/check-tests-in-builddir.sh: Likewise. * t/dist-formats.tap: Likewise. * t/distcheck-configure-flags-am.sh: Likewise. * t/distcheck-configure-flags.sh: Likewise. * t/java-empty-classpath.sh: Likewise. * t/javaflags.sh: Likewise. * t/lflags.sh: Likewise. * t/lflags2.sh: Likewise. * t/lisp-flags.sh: Likewise. * t/lisp6.sh: Likewise. * t/missing-auxfile-stops-makefiles-creation.sh: Likewise. * t/parallel-am.sh: Likewise. * t/parallel-am2.sh: Likewise. * t/parallel-am3.sh: Likewise. * t/parallel-tests-log-override-recheck.sh: Likewise. * t/pkg-config-macros.sh: Likewise. * t/python-missing.sh: Likewise. * t/python-too-old.sh: Likewise. * t/python11.sh: Likewise. * t/self-check-dir.tap: Likewise. * t/self-check-report.sh: Likewise. * t/self-check-seq.tap: Likewise. * t/silent-configsite.sh: Likewise. * t/suffix6c.sh: Likewise. * t/tar-override.sh: Likewise. * t/tests-environment-and-log-compiler.sh: Likewise. * t/vala-configure.sh: Likewise. * t/werror3.sh: Likewise. * t/yflags-cmdline-override.sh: Likewise. * t/yflags.sh: Likewise. * t/yflags2.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 176d229b 2013-05-16T14:49:44 tests: fix some botched/outdated comments * t/ax/test-defs.in: Here. Also, fix a couple of grammaros while at it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 361430c0 2013-05-16T14:18:55 tests: use perl, not find+rm, to remove temporary directories The File::Path::rmtree function from perl, if used right, is more reliable and more portable of our past idiom: find $dirs -type d ! -perm -700 -exec chmod u+rwx {} ';'; rm -rf $$dirs || exit 1 at least of the face of unreadable dirs/files and other similar permission issues (and we have those in our test directories). In fact, this change fixes some spurious failures seen in "make distcheck" on Solaris 10. * t/ax/deltree.pl: New. * Makefile.am (EXTRA_DIST): Add it. (clean-local-check): Use it. * t/ax/test-lib.sh (rm_rf_): Use it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini c91f24a5 2013-05-15T23:31:54 Merge branch 'maint' * maint: post-release: micro version bump (1.13.2a) release: stable micro release 1.13.2 vala tests: skip in a cross compiler setup HACKING: miscellaneous fixes, updates and enhancements NEWS: minor improvements to wording (about new versioning scheme) THANKS: update Akim's e-mail address tests: less uses of "make -e"; avoid spurious failures in 'check-cc-no-c-o' build: be more respectful of user-specified verbosity check-cc-no-c-o: unify initializations in a single place check-cc-no-c-o: avoid a spurious failure
Stefano Lattarini 52a76013 2013-05-15T22:54:15 Merge branch 'micro' into maint * micro: post-release: micro version bump (1.13.2a) release: stable micro release 1.13.2 vala tests: skip in a cross compiler setup HACKING: miscellaneous fixes, updates and enhancements NEWS: minor improvements to wording (about new versioning scheme) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 4348577b 2013-05-15T22:05:21 vala tests: skip in a cross compiler setup The "vala + pkg-config" doesn't interact well with cross-compilation: <https://mail.gnome.org/archives/vala-list/2012-September/msg00094.html> That is causing annoying failures in our testsuite when it's run in cross-compilation mode. It's not worth trying too be overly smart and work around these problems; just skip the affected tests instead. * t/ax/am-test-lib.sh (require_tool): A new requirement 'valac', telling that the test needs to compile Vala-generated C files. In particular, this causes the test to be skipped when using a cross-compiler. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini cce6192b 2013-05-14T13:40:48 check-cc-no-c-o: unify initializations in a single place * t/ax/test-defs.in: That is, by setting CC and GNU_CC here, in accord with the value of the variable 'AM_TESTSUITE_SIMULATING_NO_CC_C_O'. * t/Makefile.in (check-cc-no-c-o) : No need to reset CC and GNU_CC any longer in the recursive "make check" invocation. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 6653939c 2013-05-14T13:17:50 check-cc-no-c-o: avoid a spurious failure * t/am-prog-cc-c-o.sh: In this test, by relying on the knowledge that we are running under the aegis of the 'check-cc-no-c-o' maintainer-specific target, knowledge given us by ... * t/Makefile.in (check-cc-no-c-o) : ... the new environment variable 'AM_TESTSUITE_SIMULATING_NO_CC_C_O', set to a value of "yes" by this rule. * t/ax/test-defs.in: Initialize the new variable to "no" by default, and add an explanatory comment. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 0dd95c8d 2013-05-10T13:33:52 Merge branch 'maint' * maint: automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/ am: prefer a shorter idiom where possible cosmetics: fix few typos, grammaros and missing whitespace fixup: remove an obsolete comment docs: we still don't have the promised better Java interface build: move automake and aclocal in 'bin' subdir build: break up monolithic Makefile.am in subdir-specific fragments + Extra non-trivial edits: * m4/Makefile.inc (dist_automake_ac_DATA): Drop lead-dot.m4 and mkdirp.m4. * lib/Automake/Makefile.inc (dist_perllib_DATA): Drop Configure_ac.pm. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ce70cf4b 2013-05-09T11:57:20 build: move automake and aclocal in 'bin' subdir * automake.in: Rename ... * bin/automake.in: ... like this. * aclocal.in: Rename ... * bin/aclocal.in: ... like this. * Makefile.am: Move parts that dealt with the building/distribution of aclocal and Automake .. * bin/Makefile.inc): ... in this new included fragment. Adjust as needed, and make deliberate use of the '%D%' substitution. * lib/gen-perl-protos: Move ... * bin/gen-perl-protos: ... here. * bootstrap.sh, configure.ac, maintainer/rename-tests, t/wrap/aclocal.in, t/wrap/automake.in, doc/Makefile.inc, t/ax/tap-setup.sh, .gitignore: Adjust. * maintainer/syntax-checks.mk: Likewise, and enhance a little. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 73e9f71c 2013-02-15T15:39:02 Merge branch 'maint' * maint: typofix: in comments in 't/ax/test-lib.sh' tests on TAP: don't run the driver with perl unconditionally typofix: in comments in 'automake.in' tests: remove obsolete (and now wrong) comment typofix: in diagnostic in test 't/tap-realtime.sh' automake: fix reference to relevant tests in comments NEWS: we no longer plan to drop $(INCLUDES) support in next major version
Stefano Lattarini f637fc39 2013-02-15T15:06:19 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: typofix: in comments in 't/ax/test-lib.sh' tests on TAP: don't run the driver with perl unconditionally typofix: in comments in 'automake.in' tests: remove obsolete (and now wrong) comment typofix: in diagnostic in test 't/tap-realtime.sh' automake: fix reference to relevant tests in comments NEWS: we no longer plan to drop $(INCLUDES) support in next major version
Stefano Lattarini 24dbfd93 2013-01-29T13:24:50 typofix: in comments in 't/ax/test-lib.sh' Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini d3844bbf 2013-02-14T12:32:27 tests on TAP: don't run the driver with perl unconditionally * t/ax/tap-setup.sh: When a 'Makefile.am' was pre-existent in the test directory at the moment the client test script sourced this file, said 'Makefile.am' was tweaked to provide it with a proper definition of TEST_LOG_DRIVER. However, there was an error in this automatic definition, since it caused the TAP test driver to be unconditionally invoked with perl. This wasn't an issue in most situations, since perl is smart enough to re-execute a given script with the proper interpreter if it sees a she-bang line that doesn't seem to point to perl itself. Still, there is no reason to do something blatantly wrong even if our tools correct the dumb mistake for us. So fix the TEST_LOG_DRIVER definition. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 43e25e38 2013-02-14T11:46:58 tests: remove obsolete (and now wrong) comment * t/ax/am-test-lib.sh: Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 3d9ee5ed 2013-01-16T13:20:12 Merge branch 'maint' * maint: subdir-objects: complain if it isn't enabled plans: update w.r.t. latest changes
Stefano Lattarini 4864af66 2013-01-13T17:50:30 subdir-objects: complain if it isn't enabled Since the next major automake version will make the behaviour so far only activated with the 'subdir-object' option mandatory, it's better if we start warning users not using that option. As suggested by Peter Johansson, we strive to avoid the warning when it would be irrelevant, i.e., if all source files sit in "current" directory. See automake bug#13378. * automake.in (handle_single_transform): Print the warning when necessary. * t/subobj.sh: Enhance. * t/ax/depcomp.sh: Adjust. * t/cscope.tap: Likewise. * t/depcomp8a.sh: Likewise. * t/depcomp8b.sh: Likewise. * t/ext2.sh: Likewise. * t/extra-portability.sh: Likewise. * t/fort2.sh: Likewise. * t/fort4.sh: Likewise. * t/fort5.sh: Likewise. * t/lex-line.sh: Likewise. * t/libtool3.sh: Likewise. * t/ltinstloc.sh: Likewise. * t/ltlibsrc.sh: Likewise. * t/ltorder.sh: Likewise. * t/parallel-tests-suffix-prog.sh: Likewise. * t/sourcefile-in-subdir.sh: Likewise. * t/specflg9.sh: Likewise. * t/subobj4.sh: Likewise. * t/subobj7.sh: Likewise. * t/subpkg-yacc.sh: Likewise. * t/subpkg.sh: Likewise. * t/suffix-custom-subobj-and-specflg.sh: Likewise. * t/vala-libs.sh: Likewise. * t/vala-non-recursive-setup.sh: Likewise. * t/yacc-grepping2.sh: Likewise. * t/yacc-line.sh: Likewise.
Stefano Lattarini 84d77cd6 2013-01-12T13:54:43 Merge branch 'maint' * maint: tests: remove most uses of the AM_PROG_CC_C_O obsolete macro coverage: obsolete macro AM_PROG_CC_C_O should cause no warning nor errors INSTALL: update copyright years ithreads: use runtime (not configure time) detection of perl threads copyright: add few missing copyright notices maint: files in PLANS are to be exempted from copyright notice maint: consistently honor the UPDATE_COPYRIGHT_YEAR environment variable copyright: update some copyright years Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 1e44f853 2013-01-12T12:53:21 tests: remove most uses of the AM_PROG_CC_C_O obsolete macro Our NEWS file says its use will no longer be required in Automake 1.13, so better make sure that is actually the case. * Several tests: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 9cb18f18 2013-01-11T21:53:19 Merge branch 'maint' * maint: compile: use 'compile' script when "-c -o" is used with losing compilers HACKING: suggest more checks before releasing tests: can fake a compiler not grasping "-c -o" -- globally in all tests sync: update files from upstream with "make fetch" typofix: in comments in GNUmakefile Rename 'maint/' -> 'maintainer/', for Git's sake HACKING: minor typofix HACKING: bug-tracker, the PLANS directory, and how to plan "big" changes HACKING: rewindable branches should live in the 'experimental/*' namespace HACKING: fixlets about git branch rewinding policy HACKING: commit messages are not to follow GCS ChangeLog rules too strongly HACKING: "detailed explanation" in commit messages is almost mandatory HACKING: we use "merge --log" even when merging master HACKING: typofix depend2.am: fix comments on verbosity of compilation rules depend2.am: improve comments a little plans: automake 1.14 is to assume "rm -f" with no args is OK plans: we want to active subdir-objects unconditionally in automake 1.14 Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 34001a98 2013-01-09T23:16:53 compile: use 'compile' script when "-c -o" is used with losing compilers Do so seen when only source files in the "current" directory are present. This commit is part of a series of related changes addressing automake bug#13378 (see also the plan 'PLANS/subdir-objects.txt'). Before this change, Automake-generated C compilation rules mistakenly passed the "-c -o" options combination unconditionally (even to losing compiler) when the 'subdir-objects' was used but sources were only present in the top-level directory. Issue spotted by Nick Bowler: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44> We fix this by having Automake redefine AC_PROG_CC to take over the role of AM_PROG_CC_C_O and to require the 'compile' script unconditionally (albeit that will continue to be invoked only when inferior compilers are detected). Among other things, this means AM_PROG_CC_C_O explicitly is no longer required; that macro is still supported for backward-compatibility, but calling it is basically a no-op now. This change has some pros and some cons (obviously, we believe the former outweighs the latter). Here are the most relevant ones: + Pros 1: Some logic in the Automake script has been simplified. + Pros 2: That simplification has automatically fixed an actual bug (see Nick's mails referenced above; admittedly, that was present only in corner-case situations, but still); the test 't/ccnoco4.sh', which demonstrated the bug and has been failing so far, now passes. + Pros 3: Things works more "automagically" now (no need to manually add the AM_PROG_CC_C_O macro to configure.ac anymore). * Cons 1: The 'compile' script will be required in all projects using C compilation; this will only be a problem for packages not using '--add-missing'. However, such packages are definitely more rare than the ones using '--add-missing', and adjusting them will be trivial -- just copy the compile script over from the new Automake installation. * Cons 2: The copy & paste of autoconf internals hack this change has introduced in our "rewrite" of AC_PROG_CC is really an egregious abomination. It can only be justified with the fact that we expect future versions of autoconf to implement the semantics we need directly in AC_PROG_CC, so that we'll be able to leverage that (since Automake 1.14 will require the latest Autoconf version released). Now, the detailed list of file-by-file changes ... * automake.in ($seen_cc_c_o): Remove this global variable. (scan_autoconf_traces): Don't set it, and do not trace the 'AM_PROG_CC_C_O' m4 macro. (lang_c_rewrite): Remove, no longer needed. * doc/automake.texi: Adjust expected "autoreconf --install" output in the amhello example. Remove statements about the need for the AM_PROG_CC_C_O macro. Report it is obsolete now. * m4/init.m4: Re-write AC_PROG_CC to append checks about whether the C compiler supports "-c -o" together. These checks have basically been ripped out (with adaptations) from the 'AC_PROG_CC_C_O' macro of Autoconf and ... * m4/minuso.m4 (AM_PROG_CC_C_O): ... this macro of ours, which has thus basically become a no-op. * t/ax/am-test-lib.sh (am_setup_testdir): Also copy the 'compile' script in the test directory; if we don't do so, every test using AC_PROG_CC should call automake with the "--add-missing" option, or copy the 'compile' script itself. * t/cond11.sh: No need to create a dummy 'compile' script: that is already brought in by 'am_setup_testdir()', that is automatically invoked when 'test-lib.sh' is sourced. * t/add-missing.tap: Adjust: we expect the 'compile' script to be required by a mere AC_PROG_CC call now. * t/dist-auxdir-many-subdirs.sh: Likewise. * t/specflg6.sh: Likewise. * t/subobj4.sh: Likewise. * t/cxx-lt-demo.sh: Likewise, and update comments to match. * t/distcom2.sh: Enhance a little. * t/dollarvar2.sh: Adjust. * t/extra-portability.sh: Likewise. * t/libobj19.sh: Likewise. * t/per-target-flags.sh: Likewise. * t/repeated-options.sh: Likewise. * t/subobj.sh: Likewise, and enhance a little. * t/ccnoco2.sh: Remove as obsolete. * t/list-of-tests.mk (handwritten_TESTS): Adjust. (XFAIL_TESTS): Remove 't/ccnoco4.sh'. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b670a66a 2013-01-11T18:26:03 tests: can fake a compiler not grasping "-c -o" -- globally in all tests The ability to easily do so will be quite important in upcoming changes about C compilation handling and semantics of the 'subdir-objects' option. Refer to the extensive discussion about automake bug#13378 for more details: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378>. See also commit 'v1.13.1-34-g744cd57' of 2013-01-08, "coverage: compile rules used "-c -o" also with losing compilers". * t/ax/cc-no-c-o.in: New, a "C compiler" that chokes when the '-c' and '-o' options are passed together to it on the command line. * Makefile.am (t/ax/cc-no-c-o): Generate this script from it. (noinst_SCRIPTS, CLEANFILES): Add it. (EXTRA_DIST): Add 't/ax/cc-no-c-o.in'. (check-cc-no-c-o): New target, runs the whole testsuite with 'cc-no-c-o' as the C compiler (bot GNU and non-GNU). * .gitignore: Update. * t/ccnoco.sh: Use the new script instead of duplicating it. * t/ccnoco3.sh: Likewise. * t/ccnoco4.sh: Likewise. * t/self-check-cc-no-c-o.sh: New testsuite self-check. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini e4fc1dad 2013-01-03T14:42:55 Merge branch 'maint' * maint: build: don't enable 'color-tests' automake option explicitly build: enable all warnings as fatal in our own build system texi: Texinfo sources and CLEANFILES definition should co-exist peacefully tests: make two new test executable runtest: better command line API tests: move runtest.in away from the top-lever directory maint: move more maintainer files in the 'maint/' subdir tests: more significant names for some tests maint: add some of my maintainer-specific scripts texi: deprecate hack about info files in CLEANFILES variables texi: info files can be generated in the builddir
Stefano Lattarini a59ac344 2013-01-03T13:16:14 runtest: better command line API * t/ax/runtest.in: Accept options '-k' and '--keep-testdirs' (same as exporting '$keep_testdirs' to "yes"). To improve compatibility with the "make check" interface, allow environment variables to be passes on the command line. Minor adjustments while at it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini da0dfbe7 2013-01-03T12:54:07 tests: move runtest.in away from the top-lever directory Not only this leaves the top-lever directory less cluttered, but helps in keeping the testsuite-related files more "centralized". * runtest.in: Move ... * t/ax/runtest.in: ... here. While at it, add customary '@configure_input@' comment line. * Makefile.am (runtest, EXTRA_DIST): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini b98aab9f 2012-12-31T18:24:03 Merge branch 'maint' * maint: maint: update copyright year for 2013 (in branch maint) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7df8b28c 2012-12-31T18:18:37 maint: update copyright year for 2013 (in branch maint) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7d989ddd 2012-09-23T01:24:12 ACLOCAL_AMFLAGS: fully deprecate, with warnings in the 'obsolete' category Users are expected to use the AC_CONFIG_MACRO_DIR{,S} autoconf macros instead. And the use of the '--install' aclocal option in ACLOCAL_AMFLAGS has proved to be a bad idea anyway -- see automake bug#9037. * NEWS: Update. * t/aclocal-amflags.sh: Enhance and adjust. * t/acloca14b.sh: Adjust. * t/acloca22b.sh: Likewise. * t/ax/distcheck-hook-m4.am: Likewise. * t/dist-missing-m4.sh: Likewise. * t/remake-renamed-m4-macro.sh: Likewise. * t/remake-renamed-m4-macro-and-file.sh: Likewise. * t/remake-renamed-m4-file.sh: Likewise. * t/remake-moved-m4-file.sh: Likewise. * t/remake-gnulib-remove-header.sh: Likewise. * t/remake-gnulib-add-acsubst.sh: Likewise. * t/remake-deleted-m4-file.sh: Likewise. * t/remake-deleted-m4-file.sh: Likewise. * t/libtool-macros.sh: Likewise. * t/gettext-macros.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini de736a22 2012-12-14T10:43:21 Merge branch 'maint' * maint: docs: fixlet about xz compression levels and command line options maint: more files excluded in 'update-copyright' maint: adapt 'update-copyright' recipe to the new $(FETCHFILES) format HACKING: update instructions to update the manuals at www.gnu.org maint: add an explicative comment in Makefile maint: factor out the name of the dir where web manuals are generated maint: rename rules to build/upload web manuals cosmetic: minor variable and rules reordering in Makefile.am docs: build the web manuals for CVS in the builddir, not in the srcdir release: automate uploading of web manuals in CVS docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc tests: avoid two spurious failures on FreeBSD tests: improve 'pkg-config' requirement