lib/Automake


Log

Author Commit Date CI Message
Stefano Lattarini 96497293 2012-06-01T19:15:29 maint: deprecate 'configure.in' as autoconf input It has been years since that has been deprecated in the documentation, in favour of 'configure.ac': Previous versions of Autoconf promoted the name configure.in, which is somewhat ambiguous (the tool needed to process this file is not described by its extension), and introduces a slight confusion with config.h.in and so on (for which '.in' means "to be processed by configure"). Using configure.ac is now preferred. It's now time to start giving runtime warning about the use of 'configure.in', so that support for it can be removed in future versions of autoconf/automake. See also, in the Autoconf repository, commit 'v2.69-4-g560f16b' of 2012-05-23, "general: deprecate 'configure.in' as autoconf input". * lib/Automake/Configure_ac.pm: Issue a warning in the 'obsolete' category if 'configure.in' is detected. Since this module is synced from Automake, this change is to be backported there (and will be soon). * t/help.sh: Adjust. * t/configure.sh: Adjust and enhance. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 0d1e28a8 2012-05-21T15:44:14 help: fix a typo in the list of warning categories * lib/Automake/ChannelDefs.pm (usage): s/none'/none/. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Peter Breitenlohner df306b52 2012-04-26T15:01:23 objc++: initial support for Objective C++ Original thread (dating back to almost three years ago): <http://lists.gnu.org/archive/html/automake-patches/2009-07/msg00016.html> * automake.in: Register new language 'objcxx'. (lang_objcxx_rewrite): New subroutine. (resolve_linker): Add OBJCXXLINK. (%_am_macro_for_cond): Add am__fastdepOBJCXX and AC_PROG_OBJCXX. (%_ac_macro_for_var): Add OBJCXX and OBJCXXFLAGS. * m4/depend.m4 (_AM_DEPENDENCIES): Add OBJCXX. * m4/init.m4 (AM_INIT_AUTOMAKE): Add AC_PROG_OBJCXX hook. Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 8ea72c74 2012-04-27T16:27:08 build: ensure release year in copyright notice is up-to-date From a suggestion by Eric Blake. See automake bug#11356. This is a follow-up to previous patch 'v1.12-12-gb99b5be'. * configure.ac (RELEASE_YEAR): New AC_SUBST'd variable, should hold the value of the current year. * Makefile.am (update-copyright): Be sure to also update the definition of 'RELEASE_YEAR' in configure.ac. * lib/Automake/Config.in ($RELEASE_YEAR): New exported variable, initialized from the value substituted for '@RELEASE_YEAR@'. (@EXPORT): Add it. * automake.in, aclocal.in: Use '$RELEASE_YEAR' (which will be substituted at make time) instead of hard-coding the release year. This should ensure the copyright range in the version message and in the generated files (Makefile.in and aclocal.m4) are automatically kept up-to-date. * bootstrap (dosubst): Update, also substitute '@RELEASE_YEAR@'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 64b18e07 2012-04-20T10:05:51 refactor: processing of input makefile rules This is a pure refactoring, with no intended functional or semantic changes. It breaks up an overly-long function in three smaller sub-functions. This change will very especially useful for the work on Automake-NG. * lib/Automake/Rule.pm (define): Move quite a lot of code out, into ... (_rule_defn_with_exeext_awareness, _maybe_warn_about_duplicated_target, _conditionals_for_rule): ... these new subroutines. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 2d671e11 2012-03-29T00:31:47 perl refactor: use modern semantics of 'open' * lib/Automake/XFile.pm: Update comments and POD documentation to suggest a more idiomatic/modern usage. (open): Be more robust in detecting whether the created file handle is being opened for writing. * lib/Automake/FileUtils.pm (update_file, contents): Call the 'Automake::XFile' and 'File::IO' constructors with two arguments rather than one; this change obsoletes ... (open_quote): ... this subroutine, which has thus been removed. (@EXPORT): Drop '&open_quote'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 84bf694b 2012-03-28T22:50:27 Merge branch 'maint' * maint: cosmetics: don't make the generated Config.pm executable maint: reduce use of recursion in automake build system + Extra non-trivial extra edits follows. * lib/Makefile.am (amdir): Deleted this definition, it is already provided by a proper AC_SUBST in configure.ac. (dist_am_DATA): Remove 'am/ansi2knr.am', 'am/check-html.am' and 'am/multilib.am'. (dist_perllib_DATA): Remove 'Automake/Struct.pm'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini feeb7f6a 2012-03-28T17:03:25 maint: reduce use of recursion in automake build system Recursive make-based build systems tend to be slower, more fragile and less faithful than "flat" ones. See Peter Miller's article "Recursive Make Considered Harmful" for more a more in-depth discussion: <http://miller.emu.id.au/pmiller/books/rmch/> While in the case of automake this isn't a big problem (given the small size of its build systems), it still creates occasional glitches and annoyances. So, with this change, we start making less use of make recursion in the Automake's own build system (future changes will reduce it even more). * lib/am/Makefile.am, lib/Automake/Makefile.am: Removed, their content merged ... * lib/Makefile.am: ... here, with required adjustments. * configure.ac (AC_CONFIG_FILES): Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ddac0505 2012-03-07T23:26:24 getopt: relax version requirement for perl * lib/Automake/Getopt.pm: Require perl 5.6.0, not 5.6.2: the former is enough. See also commit 'v1.11-2054-g7df05a0' on master (dated 04-03-2012).
Peter Rosin 3a814608 2012-03-07T21:08:06 Merge branch 'msvc' into maint This merge remedies the confusing situation that some changes destined for both the master branch and the release branch (a.k.a. branch-1.11) currently needs to be made on the non-obvious msvc branch and not on the more natural maint branch. This has caused a seemingly endless string of less than optimal commits. The reason for the confusion stems from the fact that the changes made on the msvc branch became too radical and was considered only suitable for the master branch, and was thus written in a form suitable for master and then merged there. Later, the msvc branch was merged directly into branch-1.11, in order to rush the new features to the market and to keep the released scripts (lib/ar-lib, lib/compile and lib/depcomp) consistent with those on the master branch. However, some changes had to be made to the features added by the msvc branch in order for them to fit the requirements of branch-1.11, notably that the warnings issued in the extra-portability class cannot be enabled by -Wall in the 1.11.x maintenance releases. In retrospect, it would have been better to not merge msvc directly into branch-1.11, but instead do it via the maint branch (followed up with a dummy merge from maint into master) the moment it was decided that the msvc changes should make it into branch-1.11. All in all, this merge is going to affect neither the master branch nor branch-1.11, since it is followed up with dummy merges masking all changes. The merge is made to maintain the sanity of the poor developers, who wishes to once again have a working maint branch. Discussion about merging the msvc branch into branch-1.11: http://lists.gnu.org/archive/html/automake/2011-10/msg00030.html Discussion about why this merge hasn't happened before: http://lists.gnu.org/archive/html/automake/2011-12/msg00051.html Extra edits below. * lib/Automake/ChannelDefs.pm: Use the version from branch-1.11. * tests/ar-lib3.test: Likewise. * tests/ar-lib4.test: Likewise. * tests/extra-portability.test: Likewise. * tests/extra-portability2.test: Likewise. * tests/extradep.test: Likewise. * tests/extradep2.test: Likewise. * tests/list-of-tests.mk: Likewise. * HACKING: Backport the version from branch-1.11 while at it (as the change on branch-1.11 is also present on master via an unrelated commit), even though this change has nothing to do with the changes on the msvc branch.
Stefano Lattarini 74a7f492 2012-03-04T16:00:58 maint: drop 'Automake::Struct' module Now that we require Perl 5.6, we can drop the 'Automake::Struct' module, which was basically just a backport of Perl 5.6's 'Class::Struct' to Perl 5.5. * automake.in: Use 'Class::Struct', not 'Automake::Struct'. * lib/Automake/Struct.pm: Delete. * lib/Automake/Makefile.am (dist_perllib_DATA): Remove it.
Stefano Lattarini 7df05a0b 2012-03-04T15:44:46 maint: require perl 5.6 throughout That version of perl is quite old already, so it should be OK to require it. More importantly, it is the older perl versions the developers can currently use for testing, thus it's safer and more honest to just require it throughout. And anyway, we were already requiring it in Automake::Getopt, which implied that both automake and aclocal wouldn't have worked in practice with an older perl version. See also the discussion related to automake bug#10925. * lib/Automake/ChannelDefs.pm: Adjusted to require perl 5.6. * lib/Automake/Channels.pm: Likewise. * lib/Automake/Condition.pm: Likewise. * lib/Automake/Configure_ac.pm: Likewise. * lib/Automake/DisjConditions.pm: Likewise. * lib/Automake/FileUtils.pm: Likewise. * lib/Automake/General.pm: Likewise. * lib/Automake/Item.pm: Likewise. * lib/Automake/ItemDef.pm: Likewise. * lib/Automake/Location.pm: Likewise. * lib/Automake/Options.pm: Likewise. * lib/Automake/Rule.pm: Likewise. * lib/Automake/RuleDef.pm: Likewise. * lib/Automake/Struct.pm: Likewise. * lib/Automake/VarDef.pm: Likewise. * lib/Automake/Variable.pm: Likewise. * lib/Automake/Version.pm: Likewise. * lib/Automake/Wrap.pm: Likewise. * lib/Automake/XFile.pm: Likewise.
Peter Rosin aadd78e9 2012-03-02T11:04:05 Merge branch 'maint' into msvc
Stefano Lattarini 00eb4ac9 2012-02-24T14:35:06 refactor: in Automake::Options (no semantic change) * lib/Automake/Options.pm: Prefer leading spaces to leading tabs throughout. Minor whitespace and comment changes. (_process_option_list): Simple refactoring to make the code more pleasant to read and easier to modify in the future. This refactoring also reduces code duplication, with the help of ... (_option_must_be_from_configure, _is_valid_easy_option): ... these new internal subroutines. * tests/tar3.test: Enhance. * tests/silent-amopts.test: New, checks that automake complains if the 'silent-rules' option is used in AUTOMAKE_OPTIONS. * tests/list-of-tests.mk: Add it.
Stefano Lattarini 3e887a13 2012-02-23T20:25:26 pm: do not quote `like this', as per GCS recommendation This patch converts the internal perl modules used by automake and aclocal to the use of new quoting format 'like this' or "like this" rather than `like this'. * lib/Automake/ChannelDefs.pm, lib/Automake/Channels.pm, lib/Automake/Condition.pm, lib/Automake/Configure_ac.pm, lib/Automake/DisjConditions.pm, lib/Automake/FileUtils.pm, lib/Automake/General.pm, lib/Automake/Item.pm, lib/Automake/Rule.pm, lib/Automake/Getopt.pm, lib/Automake/Options.pm, lib/Automake/Struct.pm, lib/Automake/VarDef.pm, lib/Automake/Variable.pm, lib/Automake/Version.pm, lib/Automake/XFile.pm: Update and adjust quoting format throughout, in comments and diagnostic. Some minor related rewordings and reformatting since we are at it.
Stefano Lattarini deb77738 2012-02-20T18:33:50 automake: new option 'serial-tests' Currently, automake offers a 'parallel-tests' option to enable the use of the parallel testsuite harness in the generated Makefiles, but no option to explicitly state the intention of using the older serial testsuite driver (which is currently the default). This makes the parallel test harness seems like a second-class citizen (while actually it should be the other way around); more importantly, it will prevent us from making the parallel harness be the default one in future automake versions, since the users of the serial harness would then have no way to instruct automake to continue using it. We solve all of this by introducing a new 'serial-tests' option. * lib/Automake/Options.pm (_process_option_list): Recognize the new option, and related minor refactoring. * tests/serial-tests.test: New test. * tests/list-of-tests.mk: Add it. * doc/automake.texi: Update. * NEWS: Likewise.
Stefano Lattarini 641a5a4b 2012-02-16T10:46:23 maint: run "make update-copyright"
Stefano Lattarini e5ae760b 2012-01-21T20:52:43 Merge branch 'maint' * maint: fixup: distribute 'contrib/multilib/multi.m4' multilib: deprecate, will be moved to contrib fixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS cosmetics: fix a botched comment in a maintainer check
Stefano Lattarini 84fbf466 2012-01-20T20:52:02 fixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS This change fixes automake bug#10555. Note that the bug was a minor one, since it didn't affect the compilation rules generated by automake, but only only the "hints" printed by automake in some error messages (e.g., "The usual way to define `FFLAGS' is to add AC_PROG_F77 to configure.ac"). * lib/Automake/Variable.pm (%_ac_macro_for_var): The code generated by AC_PROG_F77 uses FFLAGS, not F77FLAGS, as the variable where to look for switches for the Fortran 77 compiler: adjust accordingly.
Stefano Lattarini 3a7b60b1 2012-01-18T18:42:46 Merge branch 'maint' * maint: cmdline parsing: move into a dedicated perl module
Stefano Lattarini 52246cc7 2012-01-18T17:55:40 cmdline parsing: move into a dedicated perl module With this change, we delegate most of the automake and aclocal code for command-line options parsing to a new module "Automake::Getopt". This allows better code sharing between automake and aclocal, and also with Autoconf, which will sync the new module from us. See also autoconf commit 'v2.68-120-gf4be358' (2012-01-17, "getopt: new Autom4te::Getopt module"), and this mailing list discussion: <http://lists.gnu.org/archive/html/autoconf-patches/2012-01/msg00033.html> This change might interact with the behaviour described in automake bug#7434; for example, starting from now, "automake -Wfoo --version" will cause automake to emit diagnostic like "unknown warning category 'foo'" before actually printing the version number and exiting. This is not a big deal in practice, and the code sharing and simplifications introduced by this patch is certainly worth it. Still, we should revisited the issue in the future. * lib/Automake/Getopt.pm: New module, basically a slightly-edited copy of the 'lib/Autom4te/Getopt.pm' file from the autoconf devel repository (commit v2.68-120-gf4be358). It defines and exports ... (parse_options): ... this new function. * automake.in (parse_arguments): Use the new function. * aclocal.in (parse_arguments): Likewise. * lib/Automake/Makefile.am (dist_perllib_DATA): Add the new file. * tests/getopt.test: Remove. * tests/list-of-tests.mk: Update.
Stefano Lattarini b4ba4e86 2012-01-18T14:08:57 Merge branch 'maint' * maint: cosmetics: move CheckListOfTests.am into tests/ tests: move all under the same hierarchy ('tests/' directory) gitlog-to-changelog: update from upstream changelog: don't cluster multiple entries under the same "date line" + Extra non-trivial edits: * tests/Makefile.am (XFAIL_TESTS): Update with the xfailing tests that were in 'lib/Automake/tests'. Add proper "FIXME" comment.
Stefano Lattarini fbeda3da 2012-01-18T12:17:11 tests: move all under the same hierarchy ('tests/' directory) This simplifies the organization of the Automake source tree and reduces the (lamentably high) number of Makefiles in the Automake build system by one. It also makes the maintainer check that verifies the consistency of list of tests more self-contained and simpler. Finally, it might be a first step forward the transition to a non-recursive build system for automake (if we ever decide to go down that road fully some day). * lib/Automake/tests: All the '*.pl' tests in here moved ... * tests/pm: ... into this new directory. * lib/Automake/tests/Makefile.am: Remove, its meaningful contents moved ... * tests/Makefile.am: ... here, with obvious adjustments. (test_subdirs): New variable, for the sake of the recipe of 'maintainer-check-list-of-tests'. * CheckListOfTests (maintainer-check-list-of-tests): Enhance its recipe to make it able to deal with test script residing in subdirectories. * Makefile.am (maintainer-check-list-of-tests): Simplified. (TEST_SUBDIRS): Remove, no more needed. * tests/list-of-tests.mk (perl_TESTS): New variable, lists the '.pl' tests just moved into 'tests/pm'. (handwritten_TESTS): Add the contents of '$(perl_TESTS)'. * lib/Automake/Makefile.am (SUBDIRS): Remove. * configure.ac (AC_CONFIG_FILES): Update. * .gitignore: Adjust.
Stefano Lattarini 9928ea5c 2012-01-16T20:06:08 Merge branch 'maint' * maint: recheck: fix interaction with "make -n" vala: avoid potential useless remakes (minor bugfix) vala: enhance tests recheck: behave better with non-GNU make check: separate .log -> .html conversion from core testsuite harness docs: deprecate .log -> .html conversion by parallel-tests tests: list some forgotten test cases in $(TESTS) maintcheck: consistency of list of test scripts build: explicitly declare some targets as .PHONY maint: remove obsolete/broken maintainer targets build: improve silencing of automake build system tests: move list of tests in its own Makefile fragment + Extra non-trivial edits: * tests/parallel-tests2.test: Obvious edits to merge the slightly inconsistent enhancements to coverage done in master with those done in maint. * lib/am/check.am (check-TESTS, recheck): Sweeping and rather complex changes to merge the considerable divergences between maint and master in a way that is meaningful and, where possible, retains the semantic changes from both maint and master.
Stefano Lattarini 27f1a1c9 2012-01-16T10:05:59 maintcheck: consistency of list of test scripts This is basically a backport of commit 'v1.11-358-g7b6ab07' and its follow-ups. The possibility of easily checking that the list of test scripts listed in a Makefile equals that of the tests on the filesystem has proved itself so useful that it's worth taking the annoyance of backporting it to maint. * CheckListOfTests.am: New file, backported from master (commit 'v1.11-1736-g083a75b') with minor adjustments. (maintainer-check-list-of-tests): New target, check for consistency between the list of tests defined in the including Makefile and the list of tests on the filesystem. (clean-maintcheck-testslist-tmp): New rule, to clean up temporary files that might be left around by the rules associated with the previous target. (clean-local): Depend on it. * lib/Automake/tests/Makefile.am: Include `CheckListOfTests.am'. * tests/Makefile.am: Likewise. * Makefile.am (maintainer-check-list-of-test): New target, calling recursively into `tests/' and `lib/Automake/tests/', using ... (TEST_SUBDIRS): ... this new variable. (maintainer-check): Added dependency from the new target `maintainer-check-list-of-tests'.
Stefano Lattarini 8856653e 2012-01-15T23:08:21 build: improve silencing of automake build system In this change, we continue the silencing of the automake build system that has been started in commit v1.11-642-g17542c3, but which has been left incomplete there for an (absent-mindness) mistake. * Makefile.am (INSTALL): Silence the recipe. (automake, aclocal): Likewise, and improve them a little since we are at it. * lib/Automake/Makefile.am (Config.pm): Likewise.
Paul Eggert 8f76fd51 2012-01-04T07:53:02 cosmetics: prefer the term "Windows" over "Win32" Microsoft has renamed the Win32 API to "Windows API": <http://msdn.microsoft.com/en-us/library/aa383723.aspx> Also, after some discussion on bug-gnulib, when talking about hosts and platforms we believe it's better to talk about "Windows" or "native Windows" instead: <https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00009.html> <https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00027.html> * doc/automake.texi: Mention "Windows", not "Win32". * lib/Automake/XFile.pm: Likewise. * lib/ar-lib: Likewise. * lib/compile: Likewise. * tests/compile2.test: Mention "Windows", not "w32".
Stefano Lattarini 01fef4ae 2012-01-01T19:20:04 Merge branch 'maint' into msvc * maint: tests: make 'lzip.test' executable dist: obsolete support for lzma (superseded by xz and lzip) test defs: more granular overriding of the make program docs: fix a couple broken anchors dist: add support for lzip compression docs: fix paragraph names for automake and aclocal invocations tests: fix spurious failure due to autom4te caching fix: last entry in ChangeLog tests: tweak tests on silent-rules for makes without nested vars silent-rules: fallback for makes without nested vars
Stefano Lattarini 02e90723 2012-01-01T13:23:19 dist: remove support for lzma (superseded by xz and lzip) See also commit `v1.11-611-ge637fa2' (from maint), where support for lzma compression of distribution archive had been deprecated. * NEWS: Update. * lib/Automake/Options.pm: Error out if the `dist-lzma' option is used. * lib/am/distdir.am: Remove all support for the creation of a lzma-compressed distribution archive. * tests/lzma.test: Update.
Stefano Lattarini c1b14e96 2012-01-01T11:14:27 Merge branch 'maint' * maint: tests: make 'lzip.test' executable dist: obsolete support for lzma (superseded by xz and lzip) test defs: more granular overriding of the make program docs: fix a couple broken anchors dist: add support for lzip compression docs: fix paragraph names for automake and aclocal invocations tests: fix spurious failure due to autom4te caching fix: last entry in ChangeLog tests: tweak tests on silent-rules for makes without nested vars silent-rules: fallback for makes without nested vars
Stefano Lattarini 2a461709 2012-01-01T10:39:10 Merge branch 'deprecate-lzma' into maint * deprecate-lzma: dist: obsolete support for lzma (superseded by xz and lzip)
Stefano Lattarini e637fa2a 2011-12-30T15:54:40 dist: obsolete support for lzma (superseded by xz and lzip) The lzma utilities are today superseded by the xz utilities; in fact, the official site at <http://tukaani.org/lzma/> reads: ``LZMA Utils are legacy data compression software with high compression ratio. LZMA Utils are no longer developed, ... Users of LZMA Utils should move to XZ Utils.'' and the existing automake manual (as of 1.11.2) already says: ``dist-xz Generate an 'xz' tar archive of the distribution. xz archives are frequently smaller than bzip2-compressed archives. The 'xz' format will soon (early 2009) displace the 'lzma' format'' Also, the `dist-lzma' target still suffers of never-solved bugs, due to the too-high compression ratio its uses by default, which might cause an unacceptable memory consumption when one tries to compress or, worse, decompress the created tarballs; see also: <http://lists.gnu.org/archive/html/automake/2011-12/msg00025.html> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9658> * NEWS: Update. * doc/automake.texi (Dist, Options): State that `dist-lzma' will go away in the next major automake version. * lib/Automake/Options.pm (_process_option_list): Deprecate `dist-lzma'. * tests/lzma.test: Update.
Antonio Diaz Diaz 0878bd34 2011-12-30T14:35:18 dist: add support for lzip compression * NEWS: Update. * automake.in (handle_dist): Recognize dist-lzip. (make_paragraphs): Map LZIP to dist-lzip. * doc/automake.texi (Dist, Options): Describe dist-lzip. * lib/Automake/Options.pm (_process_option_list): Recognize `dist-lzip'. * lib/am/distdir.am (dist-lzip): New target. (DIST_ARCHIVES) [?LZIP?]: Add `dist-lzip'. (dist, dist-all) [?LZIP?]: Add command to create an lzip-compressed tarball. (distcheck): Handle lzip-compressed tarballs just like the others. * tests/lzip.test: New test. * tests/Makefile.am (TESTS): Add it.
Stefano Lattarini 4c38a8ce 2011-12-27T13:31:15 cosmetics: be more consistent in copyright notices in tests * tests/cond39.test: Update the heading copyright notice, to be consistent with the formulation used in the other files. * tests/cond40.test: Likewise. * tests/cond41.test: Likewise. * tests/cond42.test: Likewise. * tests/cond43.test: Likewise. * tests/conflnk4.test: Likewise. * tests/extra8.test: Likewise. * tests/extra9.test: Likewise. * tests/suffix13.test: Likewise. * tests/vala.test: Likewise. * tests/vala1.test: Likewise. * tests/vala2.test: Likewise. * tests/vala3.test: Likewise. * tests/vala4.test: Likewise. * tests/vala5.test: Likewise. * lib/Automake/tests/Condition.pl: Likewise. * lib/Automake/tests/Condition-t.pl: Likewise. * lib/Automake/tests/DisjConditions.pl: Likewise. * lib/Automake/tests/DisjConditions-t.pl: Likewise. * lib/Automake/tests/Version.pl: Likewise. * lib/Automake/tests/Wrap.pl: Likewise. * lib/Automake/tests/Cond2.pl: Add copyright notice. * lib/Automake/tests/Cond3.pl: Likewise. * lib/Automake/tests/DisjCon2.pl: Likewise. * lib/Automake/tests/DisjCon3.pl: Likewise. * lib/Automake/tests/Version2.pl: Likewise. * lib/Automake/tests/Version3.pl: Likewise.
Stefano Lattarini a3f66de9 2011-12-24T11:05:24 Merge branch 'master' into testsuite-work * master: gitignore: use only one .gitignore file, in the top-level directory tests: one more fixlet for gettext macros requirement tests: fix handling of gettext macros requirement
Stefano Lattarini e3351076 2011-12-24T10:53:41 Merge branch 'maint' * maint: gitignore: use only one .gitignore file, in the top-level directory tests: one more fixlet for gettext macros requirement tests: fix handling of gettext macros requirement tests: fix failure due to debugging code forgotten into a test
Stefano Lattarini d2fc8246 2011-12-24T10:45:46 Merge branch 'maint' into msvc * maint: gitignore: use only one .gitignore file, in the top-level directory tests: one more fixlet for gettext macros requirement tests: fix handling of gettext macros requirement
Stefano Lattarini bfc83bde 2011-12-24T10:43:26 gitignore: use only one .gitignore file, in the top-level directory * doc/.gitignore, doc/amhello/.gitignore, lib/Automake/.gitignore, lib/Automake/tests/.gitignore, tests/.gitignore: Deleted, their contents merged into ... * .gitignore: ... this top-level file. Since we are at it, improve it by anchoring files where it makes sense.
Stefano Lattarini 54af9ca8 2011-12-23T13:41:11 Merge branch 'maint' into msvc * maint: (56 commits) tests: fix failure due to debugging code forgotten into a test tests: avoid spurious failure of libtool and gettext tests hacking: distribute it, and mention it in the ChangeLog regex: deprecate the obsolete macro AM_WITH_REGEX maint: distribute .xz tarballs, not .bz2 ones maint: better use of autoconf 2.68 features cosmetics: use proper m4 quoting in configure.ac include: avoid "deleted .am file" problem tests: better handling of gettext and libtool requirements fix: typos and grammaros in comments of the new test tests: report useful system information in 'test-suite.log' python: remove relics for Python 1.5 support configure: remove extraneous 'eval's from AM_RUN_LOG invocations configure: report TeX version in config.log maint: snapshots from `maint' are still development snapshots configure: print proper message for test releases devel: help in comparing Makefile.in from different commits repo: don't commit generated files in the git repository anymore maint: remove executable bit from automake.in missing: don't try to re-run tar with a munged command line ...
Stefano Lattarini 23acc630 2011-12-23T10:15:29 Merge branch 'master' into testsuite-work * tests/gettext-macros.test: In the generated `get.sh' file, use `skip_all_', not `skip_'. * tests/libtool-macros.test: Likewise. * tests/list-of-tests.mk: Update.
Stefano Lattarini 72c8dcb2 2011-12-22T22:16:12 Merge branch 'maint' into master. * m4/regex.m4: Bump serial number by some notches, for good measure. Prefer the deprecation message from maint over that from master. * m4/python.m4: Bump serial number. * tests/Makefile.am (canon6.log): Depend on `libtool-macros.log'. (canon7.log): Likewise. (extradep2.log): Likewise. (ar-lib4.log): Likewise. (ar-lib6a.log): Likewise. (ar-lib6b.log): Likewise. (vartypo2): Likewise. (posixsubst-ltlibraries.log): Likewise. * tests/defs: Adjust the path of the included `get.sh' scripts generated by `libtool-macros.test' and `gettext-macros.test'. * aclocal.m4: Delete, it's auto-generated now. * configure: Likewise. * Makefile.in: Likewise. * doc/Makefile.in: Likewise. * m4/Makefile.in: Likewise. * tests/Makefile.in: Likewise. * lib/Makefile.in: Likewise. * lib/am/Makefile.in: Likewise. * lib/Automake/Makefile.in: Likewise. * lib/Automake/tests/Makefile.in: Likewise. * .gitignore: Correctly ignored the autogenerated files that are not committed anymore.
Stefano Lattarini e9150626 2011-12-08T22:54:18 repo: don't commit generated files in the git repository anymore It has been quite some time since autoconf and libtool have stopped committing the generated autotools files in their git repositories, with no significant ill effects we're aware of. It's true that the autoconf bootstrap process has now the minor annoyance that a pre-installed autoconf is required to complete it; but luckily automake will not have a similar annoyance, since our bootstrap script take care, through some hoops, to use the very automake and aclocal versions from the current git checkout to generate the required aclocal.m4 and Makefile.in files. In fact, this has been a necessity also in the past, because automake has been known to use in its own build system new development features that hadn't been present in any previously released automake distribution. * aclocal.m4: Delete. * configure: Likewise. * Makefile.in: Likewise. * doc/Makefile.in: Likewise. * lib/Automake/Makefile.in: Likewise. * lib/Automake/tests/Makefile.in: Likewise. * lib/Makefile.in: Likewise. * lib/am/Makefile.in: Likewise. * m4/Makefile.in: Likewise. * tests/Makefile.in: Likewise. * .gitignore: Ignore configure, aclocal.m4, and all the Makefile.in files. * configure.ac (AC_PREREQ): New macro call, to require the latest autoconf (2.68 for the moment).
Stefano Lattarini 8c9642ae 2011-11-05T11:52:55 Merge branch 'master' into testsuite-work Commits merged from master: - test defs: new functions to analyze configure help screen - warnings: fix buglets for portability warnings - tests: extend tests on 'extra-portability' warning category Extra edits to the testsuite: * tests/extra-portability.test: Use `$am_original_AUTOMAKE' instead of the obsolete `$original_AUTOMAKE'. * tests/extra-portability3.test: Likewise. * tests/list-of-tests.mk: Update.
Stefano Lattarini 97cbf15b 2011-11-05T10:43:27 Merge branch 'msvc' into master Commits merged from msvc: - warnings: fix buglets for portability warnings - tests: extend tests on 'extra-portability' warning category Extra testsuite edits: * tests/extra-portability3.test: Use `$original_AUTOMAKE' instead of hackishly extracting the first component of `$AUTOMAKE'. * tests/extra-portability.test: Likewise. Also, since we are at it, throw in a couple of small extensions and tweakings (suggested by the minor merge conflicts).
Stefano Lattarini db93b31d 2011-11-04T12:50:49 warnings: fix buglets for portability warnings * lib/Automake/ChannelDefs.pm (switch_warning): Ensure the correct implications and inter-dependencies between warnings in the categories `portability', `extra-portability' and `recursive-portability' are respected. Also add detailed explicative comments, and references to the relevant tests. * tests/dollarvar2.test: Update and extend. Also, remove some unnecessary uses of `--force' option in automake calls. * tests/extra-portability3.test: New test. * tests/Makefile.am (TESTS): Add it.
Stefano Lattarini 5012480b 2011-11-03T15:39:02 Merge branch 'master' into testsuite-work Commits merged from master: - tests: various minor tweakings, mostly related to AM_PROG_AR - maint-mode: fix botched configure messages - fix: regenerate Makefiles - tests: few improvements to some `ar-lib' related tests - info: allow user to inhibit creation/update of '${infodir}/dir' - warnings: new 'extra-portability' category, for AM_PROG_AR - ar-lib: new 'AM_PROG_AR' macro, triggering the 'ar-lib' script Extra testsuite adjustments: * tests/instspc.tap: Adjust to new portability requirements due to the new AM_PROG_AR macro. * tests/lex-lib.test: Likewise. * tests/extra-portability2.test: Use `$am_original_AUTOMAKE' instead of the obsolete `$original_AUTOMAKE'. * tests/list-of-tests.mk: Update.
Stefano Lattarini 38e1b39d 2011-11-03T13:50:06 Merge branch 'msvc' into master Commits merged from msvc: - tests: few improvements to some `ar-lib' related tests - warnings: new 'extra-portability' category, for AM_PROG_AR - ar-lib: new 'AM_PROG_AR' macro, triggering the 'ar-lib' script Extra changes required by the testsuite: * tests/instspc-tests.sh: Adjust to new portability requirements due to the new AM_PROG_AR macro. * tests/libobj-basic.test: Likewise. * tests/libobj2.test: Likewise. * tests/libobj15a.test: Likewise. * tests/libobj15b.test: Likewise. * tests/libobj15c.test: Likewise. * tests/libobj16a.test: Likewise. * tests/libobj16b.test: Likewise. * tests/libobj17.test: Likewise. * tests/libobj18.test: Likewise. * tests/libobj19.test: Likewise. * tests/libobj20a.test: Likewise. * tests/libobj20b.test: Likewise. * tests/libobj20c.test: Likewise. * tests/canon6.test: Likewise. * tests/canon6.test: Likewise. * tests/canon7.tests: Likewise. * tests/extra9.test: Likewise. * tests/extradep.test: Likewise. * tests/extradep2.test: Likewise. * tests/posixsubst-ldadd.test: Likewise. * tests/posixsubst-libraries.test: Likewise. * tests/posixsubst-ltlibraries.test: Likewise. * tests/python-virtualenv.test: Likewise. * tests/vartypos.test: Likewise. * tests/vartypo2.test: Likewise. * tests/suffix.test: Update to take into account previous master-only changes. * tests/suffix2.test: Likewise. * tests/libobj7.test: Call automake with the `--add-missing' option, instead of creating a dummy `ar-lib' file, since this test now also runs "./configure" and "make". * tests/suffix5.test: Copy the real `ar-lib' script file, instead of creating a dummy one, since this test now also runs "./configure" and "make". * tests/extra-portability2.test: Fix this test not to rely on the older, faulty semantics of "strictness specification always reset warning level", which has been fixed in commit v1.11-623-g1609491 (see also automake bug#7669 a.k.a. PR/547). Since we are at it, throw inf few other minor unrelated improvements. * tests/extra-portability.test: Explicitly pass `-Wall' to automake calls, for clarity.
Peter Rosin 91ab753b 2011-10-24T09:04:24 Merge branch 'maint' into msvc * tests/subpkg-yacc.test: Adjust to new portability requirements due to the new AM_PROG_AR macro.
Peter Rosin cc2202a6 2011-10-21T00:24:38 warnings: new 'extra-portability' category, for AM_PROG_AR * lib/Automake/ChannelDefs.pm: Register new extra-portability warning channel. (switch_warning): Turn off extra-portability if portability is turned off, and turn on portability if extra-portability is turned on. (set_strictness): Silence extra-portability for --gnits, --gnu and --foreign. * tests/extra-portability2.test: New test, checking that the extra-portability channel is silenced by --gnits, --gnu and --foreign. * doc/automake.texi (Invoking Automake): Document the new warning category and its interaction with the portability category. * tests/extra-portability.test: New test, checking the interaction between the portability and extra-portability warning categories. * automake.in (handle_libraries, handle_ltlibraries): Move the AM_PROG_AR warnings to the new extra-portability channel. * tests/ar2.test: Adjust to the new warning channel. * tests/pr300-lib.test: Likewise. * tests/pr300-ltlib.test: Likewise. * tests/pr307.test: Likewise. * tests/pr401.test: Likewise. * tests/pr401b.test: Likewise. * tests/pr401c.test: Likewise. * tests/pr72.test: Likewise. * NEWS: Likewise. * tests/Makefile.am (TESTS): Update. Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Stefano Lattarini 58c019e0 2011-10-20T14:39:53 Merge branch 'test-protocols' into testsuite-work * test-protocols: cosmetics: remove obsolete comment coverage: conditional contents in LOG_DRIVER variables coverage: LOG_DRIVER variables can be defined through AC_SUBST tests: fix spurious failure with Solaris /bin/sh threaded-am: better serialization for required config files automake: refactor, break up 'require_file_internal' dist: separate auxiliary file instantiation from DIST_COMMON update refactor: rename a subroutine to a more proper name dist: truly always distribute files in AC_REQUIRE_AUX_FILE dist: simplify automake code accordingly to the previous changes dist: auxiliary files can be distributed from subdir Makefiles
Stefano Lattarini 326ecba2 2011-09-30T12:12:43 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.
Stefano Lattarini 03ad7465 2011-09-28T17:00:42 Merge branch 'test-protocols' into testsuite-work * test-protocols: fix: regenerate Makefile.in files tap/awk: account for unusual korn shell signal handling behaviour tap/awk: handle exit statuses > 256 (seen on few korn shells) maintcheck: fix usage of `cd' instead of `$(am__cd)'
Stefano Lattarini c481ac95 2011-09-28T16:59:47 Merge branch 'master' into test-protocols * master: fix: regenerate Makefile.in files maintcheck: fix usage of `cd' instead of `$(am__cd)'
Stefano Lattarini 68b42720 2011-09-28T16:58:52 Merge branch 'maint' * maint: fix: regenerate Makefile.in files maintcheck: fix usage of `cd' instead of `$(am__cd)'
Stefano Lattarini 2126b691 2011-09-28T16:46:58 fix: regenerate Makefile.in files
Stefano Lattarini 8ccc53c4 2011-09-28T11:28:27 Merge branch 'test-protocols' into testsuite-work * test-protocols: uninstall: "make uninstall" before "make install" works tests: fix tests on aclocal search path precedences
Stefano Lattarini f67e562d 2011-09-28T11:17:33 Merge branch 'master' into test-protocols * master: uninstall: "make uninstall" before "make install" works tests: fix tests on aclocal search path precedences
Stefano Lattarini 58d91b7f 2011-09-28T11:11:51 Merge branch 'maint' * maint: uninstall: "make uninstall" before "make install" works
Stefano Lattarini eae5cfa9 2011-09-23T22:50:14 uninstall: "make uninstall" before "make install" works This change fixes automake bug#9578. * lib/am/inst-vars.am (am__uninstall_files_from_dir): New internal macro, that defines a shell code fragment to uninstall files from a given directory. * lib/am/data.am (uninstall-%DIR%%PRIMARY%): Use it, to reduce code duplication and improve consistency and correctness. * lib/am/libs.am (uninstall-%DIR%LIBRARIES): Likewise. * lib/am/lisp.am (uninstall-%DIR%LISP): Likewise. * lib/am/mans.am (uninstall-man%SECTION%): Likewise. * lib/am/python.am (uninstall-%DIR%LIBRARIES): Likewise. * lib/am/scripts.am (uninstall-%DIR%SCRIPTS): Likewise. * tests/uninstall-pr9578.test: New test. * tests/uninstall-fail.test: New test. * tests/Makefile.am (TESTS): Add them. * NEWS, THANKS: Update. Report by Nick Bowler.
Stefano Lattarini 8ab0c949 2011-09-03T21:03:36 installcheck: support it in our own testsuite * NEWS: Update. * tests/defs-static.in ($am_running_installcheck): New variable. Initialize it to a default of "no", and sanity-check its value. ($am_datadir, $am_docdir, $am_automake_acdir, $am_system_acdir, $am_bindir, $am_scriptdir, $am_pkgvdir): New variables, initialized from AC_SUBST'ed values which are adaptively chosen depending on whether the testsuite is running in "simple" mode or in "installcheck" mode. ($MISSING): Remove, it's not really required by the testsuite. ($PATH): Update using `$am_bindir', not `$testbuilddir'. * Makefile.am (installcheck-local): New target. * lib/Automake/tests/Makefile.am (installcheck-local): New target. (AM_TESTS_ENVIRONMENT, AM_PL_LOG_FLAGS): Adaptively choose the `-I' flags for perl based on whether the tests are being run by "make check" or "make installcheck". * tests/Makefile.am (installcheck-local): New target. (defs-static): Generate it at make time, not at configure time, in order to correctly resolve all the indirections in the AC_SUBST'd variables; done with the help of ... (do_subst): ... this new macro. (EXTRA_DIST): Explicitly distribute `defs-static.in'. (CLEANFILES): Remove `defs-static'. * configure.ac (AC_CONFIG_FILES): Remove `tests/defs-static'. (AC_SUBST): Substitute also `automake_acdir', `system_acdir', `scriptdir' and `amdir' to proper values. * lib/Makefile.am (scriptdir): Don't explicitly define anymore. * lib/am/Makefile.am (amdir): Likewise. * m4/acdir/dirlist: Remove, it's not needed anymore. Instead use ... * m4/acdir/.placeholder: ... this file. * m4/Makefile.am (EXTRA_DIST): Update. (automake_acdir, system_acdir): Don't explicitly define anymore. * tests/aclocal-print-acdir.test: Use new `$am_...dir' variables, instead of hard-coding values with $testsrcdir and $testbuilddir, to test more faithfully under "make installcheck". * tests/amhello-binpkg.test: Likewise. * tests/amhello-cflags.test: Likewise. * tests/amhello-cross-compile.test: Likewise. * tests/ansi2knr-no-more.test: Likewise. * tests/autodist-stamp-vti.test: Likewise. * tests/auxdir.test: Likewise. * tests/check2.test: Likewise. * tests/copy.test: Likewise. * tests/multlib.test: Likewise. * tests/obsolete.test: Likewise. * tests/parallel-tests-interrupt.test: Likewise. * tests/repeated-options.test: Likewise. * tests/suffix5.test: Likewise. * tests/tap-doc2.test: Likewise. * tests/txinfo22.test: Likewise. * tests/vtexi3.test: Likewise. * tests/defs: Likewise. Also, print the values of `$using_tap' and `$am_running_installcheck', to simplify debugging, and do some related code movings and tweakings. * tests/aclocal3.test: Update to avoid possible spurious failures when running under "make installcheck". * tests/warnings-unknown.test: Likewise. * tests/location.test: Likewise, and improve debugging input since we are at it. * tests/acloca10.test: Adapt and tweak to work also during a "make installcheck", and not to require a pre-populated `dirlist' file. * tests/acloca18.test: Likewise. * tests/dirlist2.test: Likewise. * tests/dirlist.test: Likewise, and remove an obsolete comment. * tests/README: Update. * tests/dirlist-abspath.test: New test. * tests/list-of-tests.mk: Update.
Stefano Lattarini 371bdf6b 2011-09-06T11:02:38 Merge branch 'master' into test-protocols * master: * tests/amhello-binpkg.test: Add missing $EXEEXT usage. fix: list test 'vala-vpath.test' in XFAIL_TESTS tests: simplify wrapper for aclocal fix: minor typo in ChangeLog automake: fix regression due to de-ansification support removal coverage: vala support failing for VPATH from-scratch builds docs: report few more automake parsing limitations automake: cleanups after de-ansification support removal (2) automake: cleanups after de-ansification support removal (1) ansi: remove obsolete code/files for de-ANSI-fication support ansi: reject attempts to use automatic de-ANSI-fication support tests: remove tests about obsolete de-ANSI-fication support docs: remove description of de-ANSI-fication support from manual
Stefano Lattarini 1b56fe0c 2011-09-02T10:45:19 Merge branch 'remove-deansification' into testsuite-work * remove-deansification: automake: fix regression due to de-ansification support removal automake: cleanups after de-ansification support removal (2) automake: cleanups after de-ansification support removal (1) ansi: remove obsolete code/files for de-ANSI-fication support ansi: reject attempts to use automatic de-ANSI-fication support tests: remove tests about obsolete de-ANSI-fication support docs: remove description of de-ANSI-fication support from manual
Stefano Lattarini 199b9086 2011-09-01T11:02:04 automake: fix regression due to de-ansification support removal The last change `v1.11-947-g136b489' removed code that automake was using to decide whether binary objects were built by the generated Makefile.in, so that it could avoid to emit unneeded code when this was not the case. Re-introduce such code in a less-obfuscated form, and add a test to ensure we don't regress again. * automake.in ($must_handle_compiled_objects): New global variable, telling whether the generated Makefile has to build compiled objects. (initialize_per_input): Reset it. (handle_programs, handle_libraries, handle_ltlibraries): Set it to a true value when required. (handle_compile): Don't generate any code if the variable `$must_handle_compiled_objects' is not set to a true value. * tests/no-extra-makefile-code.test: New test. * tests/Makefile.am (TESTS): Add it.
Stefano Lattarini 136b4899 2011-08-28T22:38:50 automake: cleanups after de-ansification support removal (2) * automake.in ($get_object_extension_was_run): Remove, it's not really needed anymore. (&get_object_extension): Remove, it's a no-op now. All callers adjusted.
Stefano Lattarini c8d4c3f4 2011-08-28T16:09:50 ansi: remove obsolete code/files for de-ANSI-fication support * lib/ansi2knr.1, lib/ansi2knr.c: Deleted. * lib/Makefile.am (dist_pkgvdata_DATA): Do not list them anymore. * lib/am/ansi2knr.am: Delete. * lib/am/Makefile.am (dist_am_DATA): Do not list it anymore. * lib/Automake/Variable.pm (%_am_macro_for_var): Remove entries for `ANSI2KNR' and `U'. * m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Don't care anymore about possible definition of the `$U' variable. * automake.in (@common_files): Drop `ansi2knr.1' and `ansi2knr.c'. (struct): Remove scalar field `ansi'. All callers adjusted. (&lang_c_finish, %de_ansi_files): Remove, they're not required anymore. All callers adjusted. ($get_object_extension_was_run): Fix typo in comment. (&get_object_extension): Drop code dealing with de-ansification; this function basically a no-op now, but is required to properly initialize `$get_object_extension_was_run' variable. (&handle_languages, &handle_compile, &lang_c_rewrite): Drop code dealing with de-ansification.
Stefano Lattarini 16f67b47 2011-08-28T15:52:11 ansi: reject attempts to use automatic de-ANSI-fication support * tests/protos.m4 (AM_C_PROTOTYPES): Error out whenever called. * lib/Automake/Options.pm (_process_option_list ): Error out with a proper error message when the `ansi2knr' option is used. Related updates to comments. * tests/depacl2.test: Update. * tests/ansi2knr-no-more.test: New test. * tests/Makefile.am (TESTS): Add it. * NEWS: Update.
Stefano Lattarini 82796c70 2011-08-19T10:21:01 Merge branch 'test-protocols' into testsuite-work * test-protocols: testsuite: fix some redundant autotools calls in tests on TAP * THANKS (Daniel Richard G.): Update e-mail address. java: avoid compilation errors when CLASSPATH is empty parallel-tests: no more spurious successes for FreeBSD make tap: improve granularity for tests on problematic TAP messages tap: correctly handle string "0" in TAP messages tap: a minor simplification in the perl TAP driver parallel-tests: fix help screen for test driver scripts tap: add a dummy TAP driver script implemented in shell + awk testsuite: refactor tests on TAP support in view of future changes fix: regenerate tests/Makefile.in hacking: we now require autoconf 2.68
Stefano Lattarini 94aa5869 2011-08-18T21:53:34 Merge branch 'master' into test-protocols * master: * THANKS (Daniel Richard G.): Update e-mail address. java: avoid compilation errors when CLASSPATH is empty parallel-tests: no more spurious successes for FreeBSD make hacking: we now require autoconf 2.68
Stefano Lattarini 8c4d0f06 2011-08-18T21:47:11 Merge branch 'maint' * maint: * THANKS (Daniel Richard G.): Update e-mail address. java: avoid compilation errors when CLASSPATH is empty parallel-tests: no more spurious successes for FreeBSD make hacking: we now require autoconf 2.68
Stefano Lattarini b3afcecf 2011-08-12T18:29:28 parallel-tests: no more spurious successes for FreeBSD make Work around a bug of FreeBSD make bug that was causing the automake-generated "check" target to complete with success even if some tests failed; this happened only when FreeBSD make was run in concurrent mode (as in, e.g., "make -j2 check"). The bug is not present in NetBSD make. This change fixes automake bug#9245: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9245> See also FreeBSD PR bin/159730: <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730> * lib/am/check.am [%?PARALLEL_TESTS%] $(TEST_SUITE_LOG): Use a more "safe" (and apparently redundant) idiom to exit with error, so that the non-zero exit status is picked up also by FreeBSD make when it's running in concurrent mode. * NEWS: Update. * tests/check-concurrency-bug9245.test: New test. * tests/Makefile.am (TESTS): Update.
Stefano Lattarini 66dc6143 2011-08-14T17:12:37 Merge branch 'test-protocols' into testsuite-work * test-protocols: coverage: missing tap plan and non-zero exit status testsuite: fix an unportable use of sed testsuite: avoid spurious failure if rst2html program is missing fix: two recent ChangeLog entries tap: improve diagnosing and reporting of plan mismatches tap: log all TAP stream, even after a "Bail out!" coverage: TAP diagnostics after "Bail out!" aren't reported coverage: TAP errors after a "Bail out!" directive aren't reported testsuite: reorganize tests on TAP plans coverage: more TAP driver consistency w.r.t. 'prove' tap: improve some comments in the TAP driver tap: non-zero exit status after "Bail out!" should not be reported tap: a "plan with SKIP" after test results is an error test harness: avoid possible fork bomb coverage: possible infinite recursion in the test harness coverage: possible infinite recursion in the test harness test defs: yet more environment cleanup
Stefano Lattarini 7fff2880 2011-08-10T15:37:27 test harness: avoid possible fork bomb This fixes a regression w.r.t. the master branch, exposed by test 'parallel-tests-fork-bomb.test'. * lib/am/check.am (am--redo-logs): Detect possible infinite recursion due to a test log in $(TEST_LOGS) being the same as $(TEST_SUITE_LOG). * tests/parallel-tests-fork-bomb.test: Enhance and extend a little now that we have more explicit semantics.
Stefano Lattarini a956d986 2011-08-09T23:27:56 Merge branch 'test-protocols' into tap-testsuite-work * test-protocols: test harness: recursive make invocations must use $(AM_MAKEFLAGS)
Stefano Lattarini 02dfe16d 2011-08-09T23:01:23 test harness: recursive make invocations must use $(AM_MAKEFLAGS) * lib/am/check.am ($(TEST_SUITE_LOG)): Pass $(AM_MAKEFLAGS) to $(MAKE) when issuing a recursive make call. Problem detected by the `sc_tests_make_without_am_makeflags' maintainer check.
Stefano Lattarini 1a758e7d 2011-08-09T18:13:15 Merge branch 'test-protocols' into tap-testsuite-work * test-protocols: tests: don't let a known Solaris make bug poison too many tests gitignore: more use of anchors
Stefano Lattarini 18fb6351 2011-08-09T18:04:14 Merge branch 'master' into test-protocols * master: tests: don't let a known Solaris make bug poison too many tests gitignore: more use of anchors
Stefano Lattarini fe1b11eb 2011-08-09T16:43:08 gitignore: more use of anchors * .gitignore: Anchor files that are intended to be ignored only if found in the same directory of the `.gitignore' file, not also in its subdirectories. * doc/.gitignore, doc/amhello/.gitignore, lib/Automake/.gitignore, lib/Automake/tests/.gitignore, tests/.gitignore: Likewise. Also, where needed, add new entries that were once implied by the non-anchored entries in the upper-level `.gitignore' files.
Stefano Lattarini 2ad99318 2011-08-08T14:49:06 Merge branch 'test-protocols' into tap-testsuite-work * test-protocols: test defs: more environment cleanup test harness: more minor VPATH-rewrite issues test harness: "make -n check" works correctly with Solaris make
Stefano Lattarini 1e0238ad 2011-08-08T13:18:50 test harness: more minor VPATH-rewrite issues * tests/am/check.am (am__set_TESTS_bases, $(TEST_SUITE_LOGS), am--redo-logs, recheck, recheck-html): Cosmetic fixlets to minimize the risk of unwanted VPATH rewrites. (check-TESTS): Likewise, and normalize trailing whitespace since we are at it. Bugs exposed by test cases `check6-p.test' and `check7-p.test'.
Stefano Lattarini bf15d302 2011-08-08T12:50:12 test harness: "make -n check" works correctly with Solaris make To avoid some recipes being executed with "make -n", we used the trick of issuing recursive make calls not directly with $(MAKE), but with a simple indirection instead: ... am__stealth_MAKE = $(MAKE) ... target: ... $(am__stealth_MAKE) ... ... This hack worked with GNU make, but, unfortunately, not with Solaris make. The present change removes the hack, and uses more proper idioms to avoid unwanted recipe executions with "make -n". Bug exposed by test case `parallel-tests-dry-run.test'. * lib/am/check.am (am__stealth_MAKE): Remove, no more used. (.log.trs): Break recipe in multiple shell invocations. ($(TEST_SUITE_LOG)): Likewise, and move some corner-case parts of the recipe to ... (am--redo-logs): ... this new internal helper .PHONY target.
Stefano Lattarini f70e8b59 2011-08-08T10:43:32 Merge branch 'test-protocols' into tap-testsuite-work * test-protocols: tests: fix spurious failure with Solaris make test harness: fixlet in workaround for VPATH rewrite issue
Stefano Lattarini 232dcc6d 2011-08-08T09:31:03 test harness: fixlet in workaround for VPATH rewrite issue Fixes a blunder in previous commit `v1.11-983-gfda3de5'. * lib/am/check.am (am__set_TESTS_bases): Add forgotten end-of-line anchor to sed expression. In comments, add reference to ... * tests/test-trs-basic.test: ... this test, which has been adapted and tightened (and tweaked).
Stefano Lattarini cc98b9c6 2011-08-08T01:43:34 Merge branch 'test-protocols' into tap-testsuite-work * test-protocols: fix: regenerate Makefiles test harness: work around a VPATH rewrite issue parallel-tests: work around Solaris XPG4 make segfault testsuite: fix weird spurious failure with Solaris /bin/sh testsuite: fix another spurious failure on Solaris make testsuite: fix two spurious failures on Solaris make tap driver: refactor and remove dead code testsuite: fix spurious failure in a test on TAP support tap: plan location is more liberal w.r.t. non-TAP lines testsuite: remove now-passing test from XFAIL_TESTS
Stefano Lattarini a0cd0d4b 2011-08-08T01:39:12 fix: regenerate Makefiles
Stefano Lattarini 152fcd20 2011-08-08T00:16:56 parallel-tests: work around Solaris XPG4 make segfault Issue exposed by test `posixsubst-tests-p.test', and similar to the problem solved by commit `v1.11-159-ge7aa360'. * lib/am/check.am [%?PARALLEL_TESTS%] (check-TESTS): Trim trailing whitespace from $list, to avoid triggering a nasty bug (potential segfault) on Solaris XPG4 make and Heirloom make.
Stefano Lattarini 3027d901 2011-08-05T21:14:53 Merge branch 'test-protocols' into tap-testsuite-work * test-protocols: tap: fix typo in TAP driver version message tap docs: we don't support pragma or version directives (yet) tap: new option to change the string designating TAP diagnostic check: add small "synchronization" comment to `test-driver' maintcheck: fix spurious failure w.r.t. use of bare "exit" check: update comments to reflect recent heavy changes check: small cleanups and refactorings in test harness and drivers testsuite: use AM_TESTS_FD_REDIRECT where appropriate docs: some fixlets in documentation on testsuites support test harness: be aware of more metadata, simplify test drivers tap: check that also a trailing TAP plan can hold a skip directive
Stefano Lattarini 4839ca92 2011-08-05T12:08:20 check: small cleanups and refactorings in test harness and drivers * lib/tap-driver (yn): New subroutine, converts a boolean value to a "yes" or "no" string. (write_test_results): Use it, and related reformatting. * lib/test-driver (trap): Also remove the `.trs' file on signals, for extra safety. (fatal): Remove this function, it's never used. ($logfile, $trsfile): Renamed ... ($log_file, $trs_file): ... to these, for clarity, and in order to be more consistent with the `tap-driver' script. Improve a couple of comments. * automake.in (handle_tests): Don't define anymore the now-obsolete make macro `$(TEST_LOGS_TMP)', nor add it to the list of files to be removed upon "make mostlyclean". * lib/am/check.am ($(TEST_SUITE_LOG)): New shell function `f_ok', tells whether a path refers to an existing, regular, readable file. Use it throughout. (recheck): Be safer w.r.t. make implementation that run recipes with `errexit' shell flag active.
Stefano Lattarini 956c58ab 2011-08-05T09:28:17 test harness: be aware of more metadata, simplify test drivers * lib/am/check.am ($(TEST_SUITE_LOG)): When producing the global test log, take into account the new metadata field `:global-test-result:, to write nicely formatted RST section titles, instead of leaving this chore to the individual test drivers. (am_rst_section): Re-introduce this variable, as removed in commit `v1.11-870-ga27c9c4'. * lib/test-driver, lib/tap-driver: Write the global test result as metadata in the `.trs' file, not as (part of) a formatted RST subsection title in the `.log' file. Related simplifications; in particular, get rid of temporary files usage. * doc/automake.texi (Log files generation and test results recording): Document the new metadata. * tests/check12.test: Update. * tests/parallel-tests-harderror.test: Likewise. * tests/parallel-tests-interrupt.test: Likewise. * tests/parallel-tests-log-override-2.test: Likewise. * tests/parallel-tests-log-override-recheck.test: Likewise. * tests/parallel-tests-unreadable.test: Likewise. * tests/tap-global-result.test: Likewise. * tests/test-metadata-results.test: Likewise. * tests/test-log.test: Likewise, and another minor unrelated fix. * tests/test-metadata-global-result.test: New test. * tests/Makefile.am (TESTS): Update.
Stefano Lattarini 0bc7d68a 2011-08-03T18:11:17 Merge branch 'test-protocols' into tap-testsuite-work * test-protocols: maintcheck: fix more maintainer-check failures maintcheck: fix maintainer-check failures, both real and spurious gitignore: ignore `*.trs' files in lib/Automake/tests testsuite: list another "forgotten" test script in Makefile.am
Stefano Lattarini a5b34b4c 2011-08-03T16:12:34 gitignore: ignore `*.trs' files in lib/Automake/tests * lib/Automake/tests/.gitignore: Add `*.trs' pattern.
Stefano Lattarini dffe171f 2011-08-03T15:46:02 Merge branch 'test-protocols' into tap-testsuite-work
Stefano Lattarini 0c81b43f 2011-07-28T12:25:22 test harness: use new `.trs' files to hold test metadata With this change, the test harness will keep test metadata in dedicated `.trs' files, instead of having them embedded into the `.log' files. This allows for easier forward-compatibility and extension of test metadata, and for more flexibility in the format of the `.log' files. Note that this change makes the `:end-metadata:' field obsolete. * doc/automake.texi (Parallel Test Harness, Log files generation and test results recording): Document the new APIs and behaviour; some related minor rewordings and fixlets. * NEWS: Update. * automake.in (handle_tests): When bringing in the content of `check2.am', substitute %BASE% with the basename of the `.log' file being created by a rule. Add the generated `.trs' files to the list of files to be cleaned by "make mostlyclean". * lib/am/check.am (am__test_driver_flags): Rename ... (am__common_driver_flags): ... to this, and remove the flags `--test-name' and `--log-file' from it: they are now define in the proper rules in `check2.am'. (am__TEST_BASES): New internal variable, holding the names of the tests, with any registered extension removed. (am__stealth_MAKE): New internal variable, can be used instead of $(MAKE) in recipes requiring a recursive call to make, but which are not intended to be executed by "make -n". (.log.trs): New suffix rule, to recover from deletion of `.trs' files. ($(TEST_SUITE_LOG)): Almost completely rewritten to follow the new API of "test logs in `.log' files, test metadata in `.trs' files". It goes to some length to work correctly in face of unreadable or missing `.log' and `.trs' files, and to error out with proper error messages when this is not possible. [%?PARALLEL_TESTS%] (check-TESTS): Also remove relevant "stale" `.trs' files (in addition to `.log files) before remaking the $(TEST_SUITE_LOG). (recheck, recheck-html): Look for the `:recheck:' field in the `.trs' files, not in the `.log' files. * lib/am/check2.am (?GENERIC?%EXT%.log, ?!GENERIC?%OBJ%): Adjust the call to the test driver, in particularly passing the new option `--trs-file'. [%am__EXEEXT%] (?GENERIC?%EXT%$(EXEEXT).log): Likewise. * lib/tap-driver ($USAGE): Adjust the help screen. (Getopt::Long::GetOptions): Handle the `--trs-file' option, through the use of ... ($trs_file): ... this new global variable. (finish): Write metadata for the test run to `$trs_file' rather then to `$log_file', through the use of ... (write_test_results): ... this new function. * lib/test-driver (print_usage): Update the help screen. (Option parsing): Handle the `--trs-file' option, through the use of ... ($resfile): ... this new global variable. (Main code): Write metadata for the test run to `$trsfile' rather than to `$logfile'. Minor related adjustments to comments. * tests/.gitignore: Ignore `*.trs' files. * tests/parallel-tests-unreadable-log.test: Moved ... * tests/parallel-tests-unreadable.test: ... to this, and extended to also check the semantics for unreadable `.trs' files. * tests/test-driver-end-metadata.test: Deleted as obsolete. * tests/test-driver-metadata-no-leading-space.test: Likewise. * tests/test-driver-global-log.test: Renamed ... * tests/test-metadata-global-log.test: ... to this, and modified as to verify the new APIs and semantics. * tests/test-driver-recheck: Renamed ... * tests/test-metadata-recheck.test: ... to this, and modified likewise. * tests/parallel-tests-once.test: New test. * tests/parallel-tests-make-n.test: Likewise. * test-metadata-results.test: Likewise. * test-missing.test: Likewise. * test-missing2.test: Likewise. * test-trs-basic.test: Likewise. * test-trs-recover.test: Likewise. * test-trs-recover2.test: Likewise. * tests/Makefile.am (TESTS): Update.
Stefano Lattarini 4014b502 2011-07-26T14:51:20 test harness: allow more metadata in log files This change reworks and improves the parallel test harness to use more specialized reStructuredText fields in the log files (instead of relying on specially-placed of "magic lines" and more indirect semantical formatting); the new fields are the following: - ":recheck:": tell whether the associated test will have to be re-run by "make recheck"; - ":copy-in-global-log:": tell whether the content of the log file should be copied in the "global log" `test-suite.log'; - ":end-metadata:", which inhibits the scanning of the rest of the log file (for what concerns test metadata). Also, the special `:test-result:' value "END" has been removed, superseded by the new `:end-metadata:' field. * doc/automake.texi (Log files generation and test results recording): Document the new API and semantics. Remove or fix some obsolete comments. * lib/am/check.am ($(TEST_SUITE_LOG), recheck, recheck-html): Adjust comments and code. * lib/tap-driver (finish): Adjust, with the help of ... (must_recheck, copy_in_global_log): ... these new functions. * lib/test-driver (Main code): Adjust, with the help of ... ($recheck, $gcopy): ... these new variables. * tests/trivial-test-driver: Update to obey the new APIs. * tests/test-driver-recheck.test: Likewise. * tests/test-driver-global-log.test: Likewise. * tests/tap-passthrough.test: Relax the test, avoiding to check what is written in `test-suite.log'; such check has been moved ... * tests/tap-global-log.test: ... in this new test, and extended. * tests/test-driver-metadata-no-leading-space.test: New test. * tests/test-driver-end-test-results.test: Removed, it checked the old APIs; superseded by ... * tests/test-driver-end-metadata.test: ... this new test. * tests/tap-log.test: Improve syncing with ... * tests/test-log.test: ... this new test. * tests/parallel-tests.test: Remove some duplication w.r.t. this last new test. Updated heading comments. * tests/Makefile.am (TESTS): Update.
Stefano Lattarini b9e9d546 2011-07-24T16:47:24 simple tests: support developer-defined fd redirections Motivated by coreutils bug#8846, and related discussions: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8846> <http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00002.html> In those threads it has been shown how problematic it can be to do portable file descriptor redirections in the testsuite when using the Automake testsuite harness. This change should remedy to that situation. * lib/am/check2.am (?GENERIC?%EXT%$(EXEEXT).log, ?GENERIC?%EXT%.log, ?!GENERIC?%OBJ%): Append redirection defined in $(AM_TESTS_FD_REDIRECT) to the command-line invocations of the test scripts. * lib/am/check.am [!%?PARALLEL_TESTS%] $(check-TESTS): Likewise. * NEWS: Update. * doc/automake.texi (Script-based Testsuites): Document the new feature. * tests/check-fd-redirect.test: New test. * tests/parallel-tests-fd-redirect.test: Likewise. * tests/parallel-tests-am_tests_environment.test: Remove checks about the use of redirections in AM_TESTS_ENVIRONMENT: they would check deprecated (if not undefined) behaviour now. Strengthen a couple of still valid checks, to keep the test more in sync with the documentation. Improve debugging information. * tests/Makefile.am (TESTS): Update.
Stefano Lattarini eaac33fe 2011-07-01T11:12:31 parallel-tests: simplify testsuite summary Prefer a more deterministic, "tabular" format for the testsuite summary, always listing the numbers of passed, failed, xfailed, xpassed, skipped and errored tests, even when these numbers are zero. This simplify the logic of testsuite summary creation, makes it more easily machine-parseable, and will probably allow for easier addition of new kinds of test results in the future. * lib/am/check.am (am__tty_colors_dummy): New make variable, to reduce code duplication. Extracted from previous versions of $(am__tty_colors), and extended by defining two new variables `$mgn' and `$brg'. [%?COLOR%, %!?COLOR%] (am__tty_colors): Use that new variable. (am__text_box): Delete, is not needed anymore. ($(TEST_SUITE_LOG)): Rewrite associated rules to implement the new testsuite summary format. * NEWS: Update. * tests/check10.test: Don't run with the parallel-tests harness too, that makes no sense anymore. * tests/color.test: Update and adjust. * tests/color2.test: Likewise. * tests/parallel-tests.test: Likewise. * tests/parallel-tests3.test: Likewise. * tests/parallel-tests6.test: Likewise. * tests/parallel-tests9.test: Likewise. * tests/parallel-tests-unreadable-log.test: Likewise. * tests/parallel-tests-empty-testlogs.test: Likewise. * tests/parallel-tests-log-override-recheck.test: Likewise. * tests/parallel-tests-no-spurious-summary.test: Likewise. * tests/test-driver-custom-multitest.test: Likewise. * tests/test-driver-end-test-results.test: Likewise. * tests/parallel-tests-no-color-in-log.test: New test. * tests/testsuite-summary-color.test: Likewise. * tests/testsuite-summary-count.test: Likewise. * tests/testsuite-summary-count-many.test: Likewise. * tests/testsuite-summary-reference-log.test: Likewise. * tests/testsuite-summary-checks.sh: New auxiliary script, used by the new tests above. * tests/extract-testsuite-summary: Likewise. * tests/trivial-test-driver: Optimize for speed when there are lots of of tests. * tests/Makefile.am (EXTRA_DIST): Distribute them. (testsuite-summary-color.log, testsuite-summary-count.log): Depend on them. (testsuite-summary-count-many.log): Depend on the auxiliary scripts 'trivial-test-driver' and 'extract-testsuite-summary'. (TESTS): Update.
Stefano Lattarini 15400bca 2011-06-30T14:55:43 parallel-tests: new recognized test result 'ERROR' * lib/am/check.am ($(TEST_SUITE_LOG)): Recognize a new test result `ERROR'. Use it when encountering unreadable test logs (previously a simple `FAIL' was used in this situations). * lib/test-driver: Set the global test result to `ERROR' when the test exit status is 99. When doing colorized output, color `ERROR' results in magenta. * doc/automake.texi (Log files generation and test results recording): Update by also listing `ERROR' among the list of valid `:test-results:' arguments. * NEWS: Update. * tests/trivial-test-driver: Update. * tests/parallel-tests.test: Likewise. * tests/parallel-tests-harderror.test: Likewise. * tests/parallel-tests-no-spurious-summary.test: Likewise. * tests/test-driver-global-log.test: Likewise. * tests/test-driver-recheck.test: Likewise. * tests/test-driver-custom-multitest-recheck.test: Likewise. * tests/test-driver-custom-multitest-recheck2.test: Likewise. * tests/test-driver-custom-multitest.test: Likewise. * tests/test-driver-custom-no-html.test: Likewise. * tests/test-driver-end-test-results.test: Likewise. * tests/color.test: Likewise. Also, make stricter, and also test from VPATH. * tests/color2.test: Likewise, and improve syncing with color.test. * tests/parallel-tests-exit-statuses.test: New test. * tests/parallel-tests-console-output.test: Likewise. * tests/Makefile.am (TESTS): Update.
Stefano Lattarini 61b2bb0d 2011-06-29T16:02:52 parallel-tests: make parsing of test results safer The new code for parsing the testsuite-generated `.log' files, as introduced in commit `v1.11-872-gc96b881', considers each `:test-result:' field anywhere in a `.log' file as a declaration of a test result, and accounts for it as such in the testsuite summary. Unfortunately this could easily cause spurious test failures being reported in the testsuite summary. This happened in practice with the Automake's own testsuite; for example: $ make check TESTS='check12-p.test'; echo exit: $? ... PASS: check12-p.test ===================================== 4 of 5 tests failed See tests/test-suite.log Please report to bug-automake@gnu.org ===================================== make[2]: *** [test-suite.log] Error 1 make: *** [check-am] Error 2 exit: 2 This change introduces a new special `:test-result:' "END", that, when seen, prevents the rest of the log file from being parsed. For more information, refer to the thread: <http://lists.gnu.org/archive/html/automake-patches/2011-06/msg00199.html> * lib/am/check.am ($(TEST_SUITE_LOG)): Stop the parsing of a log file as soon as the special ":test-result:END" directive is seen. Related changes and enhancements. * lib/test-driver: Protect the rest of the log after the result lined with a ":test-result:END" directive. * tests/parallel-tests-no-spurious-summary.test: New test. * tests/test-driver-end-test-results.test: Likewise. * tests/Makefile.am (TESTS): Update.
Stefano Lattarini 14027413 2011-06-22T21:59:34 docs: document custom test drivers and protocols * doc/automake.texi (Simple Tests): Note that the TESTS_ENVIRONMENT use suggested here is not portable to 'parallel-tests'. (Simple Tests using parallel-tests): Document new restrictions on the uses of TESTS_ENVIRONMENT and AM_TESTS_ENVIRONMENT. (Custom Test Drivers): New section and node. (Overview of Custom Test Drivers Support): New subsection. (Declaring Custom Test Drivers in @file{Makefile.am}): Likewise. (APIs for Custom Test Drivers): Likewise. (Options): Update description of color-tests. * lib/am/check ($(TEST_SUITE_LOG)): Remove comments that have been moved into the manual. (recheck, recheck-html): Minor adjustments to better conform to the documentation (this should cause no semantic changes w.r.t. the former behaviour); minor improvements and extensions to existing comments. * tests/test-driver-create-log-dir.test: New test. * tests/test-driver-strip-vpath.test: Likewise. * tests/test-driver-global-log.test: Likewise. * tests/test-driver-recheck.test: Likewise. * tests/Makefile.am (TESTS): Update.
Stefano Lattarini c96b881f 2011-06-03T22:50:56 parallel-tests: allow each test to have multiple results With this change, we improve the code creating the `test-suite.log' global log and the console testsuite summary to make it able to grasp multiple results per test script. This is required in order to introduce the planned support for test protocols, like TAP and SubUnit, which can indeed run multiple tests per test script, each with its individual result. The implementation makes use of a custom reStructuredText field `:test-result:'. Note that no new documentation is added by this change; that is be left for follow-up changes. * lib/check.am ($(TEST_SUITE_LOG)): When processing .log files, recognize a report of a test's result only if it is declared with the custom `:test-result:' reStructuredText field placed at the beginning of a line. Extend and add explanatory comments. (recheck, recheck-html): Add explanatory comments. * lib/test-driver: Write an appropriate reStructuredText field `:test-result:' in the generated log file. Use a reStructuredText transition to better separate the test outcome report from the test script's registered output. Improve comments. * tests/test-driver-custom-xfail-tests.test: Adjust. * tests/parallel-tests7.test: Adjust. * tests/parallel-tests-empty-testlogs.test: New test. * tests/parallel-tests-recheck-override.test: Likewise. * tests/parallel-tests2.test: Extend and keep more in-sync with ... * tests/test-driver-custom-html.test: ... this new related test. * tests/test-driver-custom-no-html.test: New test. * tests/test-driver-custom-multitest.test: Likewise. * tests/test-driver-custom-multitest-recheck.test: Likewise. * tests/test-driver-custom-multitest-recheck2.test: Likewise. * tests/trivial-test-driver: New file, used by the last four tests above. * tests/Makefile.am (TESTS): Update. (EXTRA_DIST): Distribute `trivial-test-driver'. (test-driver-custom-multitest.log): Depend on `trivial-test-driver'. (test-driver-custom-multitest-recheck.log): Likewise. (test-driver-custom-multitest-recheck2.log): Likewise. (test-driver-custom-html.log): Likewise.
Stefano Lattarini 79922343 2011-05-20T21:45:51 parallel-tests: allow custom driver scripts Allow suffix-based definition of custom "driver script" for the test scripts. These driver scripts will be responsible of launching the tests (or their corresponding $(LOG_COMPILER), if they have an associated one), interpreting and displaying the test results, and writing the `.log' files. This new API should allow easy and flexible use of different test protocols in the future; in particular, we plan to use it to implement TAP and SubUnit harnesses. Note that no new documentation is added by this change; that is be left for follow-up changes. * automake.in (handle_tests): Define default for $(LOG_DRIVER), and, for any registered test extension `<ext>', define defaults for $(<ext>_LOG_DRIVER). Substitute %DRIVER% using these new variables, instead of the old internal $(am__test_driver). When processing check2.am, also substitute %DRIVER_FLAGS%. Require auxiliary script `test-driver' only if no driver has been explicitly defined for the test script kinds. * am/check2.am (?GENERIC?%EXT%$(EXEEXT).log, ?GENERIC?%EXT%.log, ?!GENERIC?%OBJ%): Pass the %DRIVER_FLAGS% to the %DRIVER% call. * tests/parallel-tests-no-extra-driver.test: New test. * tests/test-driver-custom.test: Likewise. * tests/test-driver-custom-xfail-tests.test: Likewise. * tests/test-driver-fail.test: Likewise. * tests/Makefile.am: Update. * NEWS: Update.