doc: Fix various typos and phrasing
[automake.git] / old / ChangeLog.11
blobb9955db897c994950516d082235ae4e73f83f951
1 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
3         tests: drop unnecessary requirement in 'subpkg.test'
4         * tests/subpkg.test ($required): Drop "bison", it is not required
5         anymore since commit `v1.11-502-g7e5ae80'.
7 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
9         gitlog-to-changelog: new auxiliary script, synced from gnulib
11         We have plans to stop maintaining a version-controlled ChangeLog
12         file in the Automake repository, and instead begin to generate it
13         automatically from the git log messages.  To do so, we will use
14         the `gitlog-to-changelog' script from gnulib.
16         * lib/gitlog-to-changelog: New, synced from gnulib.
17         * Makefile.am (fetch): Fetch and sync it.
18         * lib/Makefile.am (EXTRA_DIST): Distribute it.
20 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
22         regex: remove obsolete macro AM_WITH_REGEX
23         Today, practically nobody uses the GNU rx library, which, according
24         to its own website <https://www.gnu.org/software/rx/rx.html>, has
25         been "decommissioned".  Consequently, the automake-provided macro
26         AM_WITH_REGEX is not used nor required anymore.
27         * m4/regex.m4: Delete.
28         * m4/Makefile.am (dist_automake_ac_DATA): Do not list it anymore.
29         * doc/automake.texi (Obsolete Macros): Remove description, and in
30         fact any mention, of `AM_WITH_REGEX'.
31         * tests/regex.test: Delete.
32         * tests/help-regex.test: Likewise.
33         * tests/regex-obsolete.test: Likewise.
34         * tests/list-of-tests.mk: Do not list them anymore.
35         * NEWS: Update.
36         See also commits `v1.11-587-g5f335be' and `v1.11-433-g37b0aee',
37         where that macro had been deprecated.
39 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
41         cosmetics: be more consistent in copyright notices in tests
42         * tests/cond39.test: Update the heading copyright notice, to be
43         consistent with the formulation used in the other files.
44         * tests/cond40.test: Likewise.
45         * tests/cond41.test: Likewise.
46         * tests/cond42.test: Likewise.
47         * tests/cond43.test: Likewise.
48         * tests/conflnk4.test: Likewise.
49         * tests/extra8.test: Likewise.
50         * tests/extra9.test: Likewise.
51         * tests/suffix13.test: Likewise.
52         * tests/vala.test: Likewise.
53         * tests/vala1.test: Likewise.
54         * tests/vala2.test: Likewise.
55         * tests/vala3.test: Likewise.
56         * tests/vala4.test: Likewise.
57         * tests/vala5.test: Likewise.
58         * lib/Automake/tests/Condition.pl: Likewise.
59         * lib/Automake/tests/Condition-t.pl: Likewise.
60         * lib/Automake/tests/DisjConditions.pl: Likewise.
61         * lib/Automake/tests/DisjConditions-t.pl: Likewise.
62         * lib/Automake/tests/Version.pl: Likewise.
63         * lib/Automake/tests/Wrap.pl: Likewise.
64         * lib/Automake/tests/Cond2.pl: Add copyright notice.
65         * lib/Automake/tests/Cond3.pl: Likewise.
66         * lib/Automake/tests/DisjCon2.pl: Likewise.
67         * lib/Automake/tests/DisjCon3.pl: Likewise.
68         * lib/Automake/tests/Version2.pl: Likewise.
69         * lib/Automake/tests/Version3.pl: Likewise.
71 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
73         tap/awk: "Bail out!" recognized also after leading whitespace
74         Newer versions of TAP::Harness (e.g., 3.23 on Perl 5.14.1)
75         recognize a "Bail out!" directive also when it is prepended by
76         leading whitespace; this was not the case for older TAP:Harness
77         versions, (e.g., for version 3.17 on Perl 5.12.4), and for our
78         TAP driver implemented in awk.
79         * lib/tap-driver.sh: Handle the "Bail out!" directive also when
80         it is preceded by leading whitespace.
81         * tests/tap-spurious.test: Remove the tests checking that a
82         "Bail out!" string coming right after leading whitespace does
83         not trigger a bailout action.
84         * tests/tap-bailout-leading-space.test: New test.
85         * tests/list-of-tests.mk: Add it.
86         Problem reported by Jim Meyering in automake bug#10374.
88 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
90         tests: fix spurious failure of cond29.test
91         * tests/cond29.test: Limit the amount of virtual memory available
92         to the automake process to ~ 150 MB, rather than only ~ 20 MB, to
93         account for higher (but still acceptable) memory usages on some
94         systems (in this case, a Fedora 16 distro on ppc64).  To be
95         sure not to reduce coverage, increase the number of potential
96         combinations of automake conditionals from 2**22 = 4194304 to
97         2**24 = 16777216.
98         We have actually verified that the new version of the test case
99         catches the Automake 1.7 it is intended to check against, using
100         the Automake 1.7.9 tarball downloaded from:
101           <https://ftp.gnu.org/gnu/automake/automake-1.7.9.tar.gz>
102         Reported by Jim Meyering in automake bug#10374.
104 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
106         docs: "aclocal --install -I /abs/dir" actually copies files
108         This change is for automake bug#8407.
110         In the past, there had been some debate and confusion about
111         whether "aclocal --install" should copy third-party .m4 files
112         in the first directory passed to the `-I' option even when
113         such directory was given as an absolute path, or whether it
114         was better to do so only for directories specified with a
115         relative path.
117         The rationale for this latter behaviour was that, before the
118         existence of the `ACLOCAL_PATH' variable, the only way (a poor
119         way, I might add) for a common user to extend the search path
120         of a system-wide installation of aclocal was to export something
121         like ACLOCAL="aclocal -I /my/extra/macros" in the environment.
122         Today, the correct way to proceed is undoubtedly through the
123         use of ACLOCAL_PATH, so we can settle the question once and for
124         all, and start verifying the correct behaviour of `-I' with a
125         new test.
127         * tests/aclocal-install-absdir.test: New test.
128         * tests/Makefile.am (TESTS): Add it.
129         * doc/automake.texi (aclocal Options): Be more explicit about
130         this part of `--install' semantics.
132 2011-12-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
134         docs: fix node names for automake and aclocal invocations
136         With the older node names, an "info automake" command issued
137         from the command line would have opened the node about the
138         invocation of the automake program, rather than the Top node
139         of the automake documentation.  To invoke the Top node, one
140         had to issue the command "info Automake" instead (note the
141         different capitalization).  This was suboptimal, and certainly
142         confusing.
144         With this change, "info automake" will open the Top node of the
145         automake documentation; to access the nodes about the invocation
146         of the automake and aclocal program, one has now to issue "info
147         automake-invocation" and "info aclocal-invocation" respectively.
149         This change fixes automake bug#8071.
151         See also commits `v2.61a-22-ge9215d1' and `v2.61a-72-g8c07b48' in
152         the autoconf git repository, which tackled a similar issue.
154         * doc/automake.texi (@direntry): Rename nodes `aclocal' and
155         `automake' to `aclocal-invocation' and `automake-invocation'
156         respectively.
157         * NEWS: Update.
159 2011-12-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
161         tests: tweak tests on silent-rules for makes without nested vars
162         * tests/silent-nested-vars.test: Define $MAKE to `./mymake' in
163         the environment, so that it will be automatically picked up by
164         configure.  Related tweaks and simplifications.
165         Remove the checks verifying that silent rules are respected also
166         when the 'subdir-objects' option is set, the checks testing the
167         old syntax for user-defined silent rules, and the tests using
168         the default $MAKE programs: they are redundant w.r.t. other test
169         cases.  Related simplifications.
170         Remove the temporary files used in a sanity check as soon as they
171         are not needed anymore.
172         Do not capture also the standard error of configure: we only want
173         to grep its standard output.
174         Consistently use `stdout' for the name of files where to save the
175         standard output captured from make and configure, for consistency
176         with other tests.
177         Make grepping of configure output and of the generated Makefile
178         stricter.
179         Improve and tweak the `mymake' script a little.
180         * tests/silent6.test: Make grepping of make stdout slightly
181         stricter.  After having configured with silent rules disabled,
182         try to force the use silent rules with `make V=1'.
184 2011-12-25  Paul Eggert  <eggert@cs.ucla.edu>
186         silent-rules: fallback for makes without nested vars
188         This fixes two problems reported for Automake (Bug#9928, Bug#10237)
189         and is in response to a bug report for building coreutils on HP
190         NonStop OS (Bug#10234).  The problem is that HP NonStop 'make'
191         treats a line like "AM_V_CC = $(am__v_CC_$(V))" as one that
192         expands a macro with the funny name am__v_CC_$(V instead of the
193         desired name am__v_CC_1 or am__v_CC_0, and since the funny macro
194         is not defined the line is equivalent to "AM_V_CC = )"; this
195         inserts a stray ")" when $(AM_V_CC) is used, which eventually
196         causes 'make' to fail.
198         The basic idea is that instead of generating Makefile.in lines like
199         "AM_V_CC = $(am__v_CC_$(V))", we generate
200         "AM_V_CC = $(am__v_CC_@AM_V@)".  We then AC_SUBST $(V) for @AM_V@
201         in the usual case where `make' supports nested variables,
202         and substitute 1 (or 0) otherwise.  Similarly for usages like
203         $(am__v_CC_$(AM_DEFAULT_VERBOSITY)).
205         With this change, make implementations that doesn't grasp nested
206         variable expansions will still be able to run Makefiles generated
207         using the silent-rules option.  They won't allow the user to
208         override the make verbosity at runtime through redefinition of
209         $(V) (as in "make V=0"); but this is still an improvement over not
210         being able to work at all.
212         * NEWS: Document this.
213         * automake.in (define_verbose_var): When defining the variables,
214         use @AM_V@ rather than $(V), and use @AM_DEFAULT_V@ rather than
215         $(AM_DEFAULT_VERBOSITY).
216         * doc/automake.texi (Automake silent-rules Option): Explain new system.
217         * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports
218         nested variables, and substitute AM_V and AM_DEFAULT_V accordingly.
219         * tests/silent-nested-vars.test: New test.
220         * tests/Makefile.am (TESTS): Add it.
222 2011-12-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
224         gitignore: use only one .gitignore file, in the top-level directory
225         * doc/.gitignore, doc/amhello/.gitignore, lib/Automake/.gitignore,
226         lib/Automake/tests/.gitignore, tests/.gitignore: Deleted, their
227         contents merged into ...
228         * .gitignore: ... this top-level file.  Since we are at it, improve
229         it by anchoring files where it makes sense.
231 2011-12-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
233         tests: one more fixlet for gettext macros requirement
234         * tests/gettext-macros.test (configure.in): Add calls to
235         AC_INIT and AC_PROG_CC, to avoid a spurious failure in the
236         later aclocal invocation.
237         Luckily, this wart wasn't causing any spurious SKIP or FAIL,
238         but only the redundant addition to the `-Wno-syntax' option
239         to some aclocal invocations in the gettext tests.
241 2011-12-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
243         tests: fix handling of gettext macros requirement
245         The code introduced in the earlier change `v1.11-581-gb7d67d5'
246         and aimed at automatically fetching all the .m4 files provided by
247         gettext has proven inadequate, since it hasn't managed to truly
248         and always get *all* the required .m4 files.  For example, it has
249         failed to fetch the file `intldir.m4' (present in gettext 0.18.1,
250         and where the macro `AM_GNU_GETTEXT_INTL_SUBDIR' is defined),
251         which in turn has caused spurious SKIPs of at least the test
252         `gettext3.test'.
254         The reason for this debacle is that autopoint looks at the version
255         specified in AM_GNU_GETTEXT_VERSION to decide which version of the
256         gettext infrastructure to bring in; since we were unconditionally
257         specifying the older 0.10.35 version, the newer `.m4' files weren't
258         brought in.
260         * tests/gettext-macros.test: In AM_GNU_GETTEXT_VERSION, instead
261         of unconditionally specifying the older 0.10.35 version, specify
262         the version of the available `gettextize' or `autopoint' program,
263         dynamically extracted with the help of ...
264         (extract_program_version):... this new function, and saved ...
265         ($autopoint_version): ... in this new variable.
267 2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
269         tests: automatically handle deps also for generated tests
270         * tests/gen-testsuite-part: The test scripts are now scanned for
271         automatic dependency generation *after* the auto-generated tests
272         have been created, so they too will be scanned.  It is a little
273         tricky to ensure that the freshly-generated tests are correctly
274         scanned, and we do that with the help of ...
275         (@generated_tests): ... this new variable.
276         Other related minor changes and refactorings.
278 2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
280         tests: auto-generate deps for tests requiring libtool/gettext
281         * tests/gen-testsuite-part: Tests requiring libtool (or related
282         programs) will need libtool-provided m4 macros, so they should
283         be run after `libtool-macros.test'.  Similarly for gettext tests.
284         So, generate proper declarations of such dependencies.
285         * tests/Makefile.am: Remove now-unneeded hand-written declaration
286         of those dependencies.
288 2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
290         tests: remove FIXME comments from tricks to pacify syntax checks
291         Originally, I myself had insisted on adding those "FIXME" comments
292         near every unusual construct or use of "creative quoting" whose
293         only purpose was to avoid false positive from out syntax checks.
294         I did that with the expectation that we could have easily and soon
295         added a whitelisting capability to our maintainer-specific syntax
296         checks.  This hasn't been the case unfortunately, and now those
297         "FIXME" in the comments are just distracting noise, making it more
298         difficult to grep the test cases for stuff that could really use a
299         fix or an improvement.  So just get rid of them.
300         * tests/instdir-ltlib.test: Remove that extra "FIXME".
301         * tests/instdir-prog.test: Likewise.
302         * tests/parallel-tests3.test: Likewise.
303         * tests/parallel-tests-dry-run.test: Likewise.
304         * tests/parallel-tests-console-output.test: Likewise.
305         * tests/parallel-tests-no-color-in-log.test: Likewise.
306         * tests/tap-realtime.test: Likewise.
307         * tests/test-trs-recover.test: Likewise.
308         * tests/tap-deps.test: Likewise.
310 2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
312         tests: few minor fixlets, improvements and tweakings
313         * tests/defs-static.in ($top_testbuilddir): New, for consistency
314         and completeness.
315         * tests/Makefile.am (do_subst): Substitute @abs_top_testbuilddir@
316         as well.
317         * tests/java-compile-run-mested.test: Prefer AM_TESTS_ENVIRONMENT
318         over TESTS_ENVIRONMENT, now that the former has become available.
319         * tests/java-compile-run-flat.test: Correct a botched "FIXME"
320         comment.
321         * tests/tap-realtime.test: Remove extra whitespace in comments.
322         * tests/missing-tar.test: Use `get_shell_script' to bring in the
323         `missing' script, to increase coverage.  Remove redundant call to
324         `set -e'.  Fix a typo in comments.
325         * tests/get-sysconf.test: Remove redundant definitions of
326         `$top_testsrcdir', `testbuilddir' and `$top_testbuilddir'.
328 2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
330         tests: remove redundant uses of `set -e'
331         * tests/deleted-am.test: Do not set the `errexit' shell flag, as
332         it is already set by `tests/defs'.
333         * tests/deleted-m4.test: Likewise.
334         * tests/dist-missing-am.test: Likewise.
335         * tests/dist-missing-am.test: Likewise.
336         * tests/dist-missing-m4.test: Likewise.
337         * tests/dist-missing-included-m4.test: Likewise.
338         * tests/get-sysconf.test: Likewise.
339         * tests/makefile-deps.test: Likewise.
340         * tests/remake-m4-pr10111.test: Likewise.
341         * tests/remake-am-pr10111.test: Likewise.
342         * tests/remake-deleted-am.test: Likewise.
343         * tests/remake-deleted-am2.test: Likewise.
344         * tests/remake-deleted-am-subdir.test: Likewise.
345         * tests/remake-renamed-am.test: Likewise.
347 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
349         tests: fix failure due to debugging code forgotten into a test
350         * tests/missing-tar.test: Don't ever call the `missing' script
351         with `sh -x'; this was used for debugging, but an instance of
352         it slipped into the committed test case.  Bug revealed by a
353         failure on a Solaris 10 system with GNU tar installed as `gtar'.
355 2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
357         Merge branch 'master' into testsuite-work
358         * tests/gettext-macros.test: In the generated `get.sh' file,
359         use `skip_all_', not `skip_'.
360         * tests/libtool-macros.test: Likewise.
361         * tests/list-of-tests.mk: Update.
363 2011-12-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
365         tests: avoid spurious failure of libtool and gettext tests
367         On Solaris 10 (and presumably earlier), /bin/sh trips up on
368         here-documents that contains a command substitution *and* are
369         fed to a shell function:
371           # All as expected.
372           $ cat <<END
373           `pwd`
374           END
375           /home/stefano
376           $ echo status = $?
377           status = 0
379           # An apparently innocuous function ...
380           $ kitty () { cat; }
381           # ... but hilarity ensues!
382           $ kitty <<END
383           `pwd`
384           END
385           /tmp/sh137723: cannot open
386           $ echo status = $?
387           status = 1
389         We need to work around this misbehaviour in a couple of our
390         tests (whose failures where causing cascading failures in a
391         lot of other tests).
393         * tests/gettext-macros.test: Avoid the use of command substitution
394         in a here-document passed to the `indent' function, by using the
395         `echo' builtin instead.
396         * tests/libtool-macros.test: Likewise.
398         See also:
399         <https://lists.gnu.org/archive/html/bug-autoconf/2011-12/msg00001.html>
401 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
403         Merge branch 'maint' into master.
404         * m4/regex.m4: Bump serial number by some notches, for good
405         measure.  Prefer the deprecation message from maint over that
406         from master.
407         * m4/python.m4: Bump serial number.
408         * tests/Makefile.am (canon6.log): Depend on `libtool-macros.log'.
409         (canon7.log): Likewise.
410         (extradep2.log): Likewise.
411         (ar-lib4.log): Likewise.
412         (ar-lib6a.log): Likewise.
413         (ar-lib6b.log): Likewise.
414         (vartypo2): Likewise.
415         (posixsubst-ltlibraries.log): Likewise.
416         * tests/defs: Adjust the path of the included `get.sh' scripts
417         generated by `libtool-macros.test' and `gettext-macros.test'.
418         * aclocal.m4: Delete, it's auto-generated now.
419         * configure: Likewise.
420         * Makefile.in: Likewise.
421         * doc/Makefile.in: Likewise.
422         * m4/Makefile.in: Likewise.
423         * tests/Makefile.in: Likewise.
424         * lib/Makefile.in: Likewise.
425         * lib/am/Makefile.in: Likewise.
426         * lib/Automake/Makefile.in: Likewise.
427         * lib/Automake/tests/Makefile.in: Likewise.
428         * .gitignore: Correctly ignored the autogenerated files
429         that are not committed anymore.
431 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
433         hacking: distribute it, and mention it in the ChangeLog
434         Not distributing the HACKING file might make it more difficult,
435         for some random curious user, to get informed about or interested
436         in the Automake development process, or to send us patches.
437         * Makefile.am (EXTRA_DIST): Add HACKING.
438         * HACKING: It's OK to distribute this file, and to mention it in
439         the ChangeLog.
441 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
443         regex: deprecate the obsolete macro AM_WITH_REGEX
444         This is a backport of commit v1.11-433-g37b0aee.
445         Today, practically nobody uses the GNU rx library, which, according
446         to its own website <https://www.gnu.org/software/rx/rx.html>, has
447         been "decommissioned".  Consequently, the automake-provided macro
448         AM_WITH_REGEX is not used nor required anymore.  Deprecate it, so
449         that it will be possible to safely remove it in the next major
450         automake version.
451         * m4/regex.m4 (AM_WITH_REGEX): Give a warning of the class
452         `obsolete' when this macro is used.
453         * doc/automake.texi (Public Macros): Move description of
454         `AM_WITH_REGEX' from here ...
455         (Obsolete Macros): ... to here, and declare it as obsolete
456         and "to be removed in a future version".
457         * tests/regex-obsolete.test: New test.
458         * tests/Makefile.am (TESTS): Add it.
459         * NEWS: Update.
460         See also:
461         <https://lists.gnu.org/archive/html/automake-patches/2010-11/msg00131.html>
463 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
465         maint: distribute .xz tarballs, not .bz2 ones
466         Many GNU packages are moving towards xz-compressed tarballs, so
467         let's follow suit, by dropping the creation and distribution of
468         a bzip2-compressed tarball and switching to xz instead.
469         For compatibility and safeness, we will continue to create and
470         distribute a gzip-compressed tarball as well.
471         * configure.ac (AM_INIT_AUTOMAKE): Drop `dist-bzip2', add
472         `dist-xz'.
473         * NEWS: Update
474         Suggested by Jim Meyering.
476 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
478         include: avoid "deleted .am file" problem
479         * automake.in (handle_configure): When processing `configure.am',
480         also expand `HAVE-MAKEFILE-IN-DEPS' to a boolean telling whether
481         `MAKEFILE-IN-DEPS' is empty or not.
482         * lib/am/configure.am [?HAVE-MAKEFILE-IN-DEPS?]
483         (%MAKEFILE-IN-DEPS%): New target without dependencies, to
484         avoid the "deleted .am file" problem.  Emit this only when
485         `?HAVE-MAKEFILE-IN-DEPS?' is true, to avoid generating an
486         "empty" dependency declaration.
487         * tests/deleted-am.test: Make grepping of error message stricter.
488         * tests/dist-missing-am.test: Likewise.
489         * tests/remake-deleted-am.test: New test.
490         * tests/remake-deleted-am-2.test: Likewise.
491         * tests/remake-deleted-am-subdir.test: Likewise.
492         * tests/remake-renamed-am.test: Likewise.
493         * tests/makefile-deps.test: Likewise.
494         * tests/Makefile.am (TESTS): Add the new tests.
495         * NEWS: Update.
496         Fixes automake bug#9768.
497         Report by Peter Johansson.
498         See also commit `Release-1-10-40-gd0ebf71', which fixed a similar
499         problem for .m4 files included by configure.ac.
501 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
503         maint: better use of autoconf 2.68 features
504         * configure.ac: Now that Automake requires autoconf 2.68 for its
505         own bootstrapping and build system, we can assume that PACKAGE_URL
506         gets automatically AC_SUBT'd.
508 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
510         cosmetics: use proper m4 quoting in configure.ac
511         * configure.ac (AC_CONFIG_SRCDIR): Use proper m4 quoting
512         for its arguments.
513         (AC_CONFIG_AUX_DIR): Likewise.
514         (AC_PROG_PATH): Likewise.
516 2011-12-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
518         tests: better handling of gettext and libtool requirements
520         This change fixes automake bug#9807.
522         Before this change, the automake testsuite only looked for the
523         `.m4' files containing libtool and gettext macros definitions in
524         the directory `${prefix}/share/aclocal' (and in the directories
525         specified by the `dirlist' file in there, if any), where ${prefix}
526         was the configure-time automake installation prefix (defaulting
527         to `/usr/local').
529         This approach had various shortcomings and disadvantages.  Let's
530         briefly describe the three major ones.
532         First, on most GNU/Linux systems, a libtool or gettext installed
533         from distro-provided packages (e.g., by dpkg on Debian/Ubuntu, or
534         by rmp on RedHat/Fedora) would have `/usr', not `/usr/local', as
535         its ${prefix}; so, trying to run the automake testsuite with a
536         simple "./configure && make && make check" would have failed to
537         execute the libtool and gettext tests on most GNU/Linux distros.
538         It's true that it was quite easy to work around this issue, by
539         creating a proper `/usr/local/share/aclocal/dirlist' file with
540         an entry pointing to `/usr/share/aclocal' (a workaround in fact
541         used by most automake developers); but the typical user wasn't
542         aware of the necessity of this trick, so the libtool and gettext
543         tests was usually skipped on testsuite runs "in the wild", thus
544         needlessly reducing coverage.
546         Second, the older testsuite behaviour made more difficult for
547         the developers to run the testsuite with non-default libtool or
548         gettext.  For example, assume the developer is working on a system
549         that has a default libtool version 1.5 installed in the /usr/local
550         hierarchy; to improve coverage, the developer installs also a more
551         modern libtool version, say 2.4, in its home directory, let's say
552         in ~/libtool-2.4; he then tries to run the automake testsuite with
553         this more modern libtool by doing an (apparently) simple:
554           $ PATH=$HOME/libtool-2.4:$PATH make check
555         But the automake testsuite would still look for libtool macros in
556         /usr/local/share/aclocal, not in ~/libtool-2.4/share/aclocal, so
557         the wrong version of the macros would be picked up, and the tests
558         would either fail spuriously or (which would be worse) pass without
559         truly covering the libtool version the developers was thinking to
560         be testing with.
561         Worse again, the automake testsuite would *unconditionally* look
562         for libtool macros in /usr/local/share/aclocal, so even something
563         like:
564           $ export ACLOCAL_PATH=$HOME/libtool-2.4/share/aclocal
565           $ PATH=$HOME/libtool-2.4:$PATH make check
566         wouldn't work.
568         Third and last, during a "make distcheck", automake is configured
569         with a ${prefix} pointing to a proper subdirectory of the build
570         directory (usually `pwd`/_inst), which gets created on-the-fly;
571         in this case, with the old approach, the automake testsuite never
572         found the libtool and gettext macro files, ans so the libtool and
573         gettext tests was *always* skipped in a "make distcheck".
575         * tests/libtool-macros.test: New helper test, looking (with the
576         help of the `libtoolize' script) for libtool macro files required
577         by most libtool tests, and making them easily accessible.
578         * tests/gettext-macros.test: New helper test, looking (with the
579         help of the `libtoolize' script) for libtool macro files required
580         by most libtool tests, and making them easily accessible.
581         * tests/defs.in: Update to make it rely on the results and setups
582         of `libtool-macros.test' and `gettext-macros.test'.
583         * tests/Makefile.am: Declare dependency of all the logs of libtool
584         tests from `libtool-macros.log', and all the logs of gettext tests
585         from `gettext-macros.log'.
586         (TESTS): Add the new tests.
588 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
590         fix: typos and grammaros in comments of the new test
591         * tests/get-sysconf.test: Fix few typos, grammaros and botched
592         wording.  Reported by Eric Blake.
594 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
596         tests: report useful system information in 'test-suite.log'
597         It has already happened various times that a user has run the
598         automake testsuite, experienced a failure, read the messages
599         telling him "See tests/test-suite.log" and "Please report to
600         bug-automake@gnu.org", and done exactly that -- sending us only
601         the contents of `tests/test-suite.log', which are usually not
602         enough to start debugging the reported failure.  So we have to
603         ask him for more details, and usually also for the `config.log'
604         file generated by configure.  It's time to fix this recurring
605         feedback inefficiency.  We do so by creating a dummy test case
606         that takes care of copying the contents of `config.log', plus
607         other useful system information, in the final `test-suite.log'.
608         * tests/get-sysconf.test: New test, gathering system information
609         and then always terminating with a SKIP, so that its output gets
610         copied in `test-suite.log'.
611         * tests/Makefile.am (TESTS): Add it.
613 2011-12-07  Reuben Thomas  <rrt@sc3d.org>  (tiny change)
615         python: remove relics for Python 1.5 support
616         * m4/python.m4: The comments in here claim to support only
617         Python >= 2.0, yet this file still has specific support for
618         Python 1.5.  Just remove it, python 1.5 is 12 years old now,
619         and practically defunct.
620         * NEWS: Update.
621         See also commit `Release-1-10-205-gd5bec12', "Support for
622         Python 3.0, drop support for pre-2.0."
624 2011-12-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
626         configure: remove extraneous 'eval's from AM_RUN_LOG invocations
627         * configure.ac: Remove extra 'eval's from AM_RUN_LOG invocations;
628         for example, instead of "AM_RUN_LOG([eval $PERL --version])",
629         simply use "AM_RUN_LOG([$PERL --version])"
631 2011-12-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
633         configure: report TeX version in config.log
634         * configure.ac: If possible, report the version of the selected
635         TeX program; this should render the logs more informative.
637 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
639         maint: snapshots from `maint' are still development snapshots
640         The maintenance-oriented development line in the `maint' branch,
641         while being usually pretty stable and 99% backward-compatible,
642         is not always right off production-quality; but until now, the
643         Automake package version declared in configure.ac hid this fact,
644         since it appeared to be the version of a stable release (e.g.,
645         11.1).  Fix this.
646         * configure.ac (AC_INIT): Bump version to "1.11.0a".
648 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
650         configure: print proper message for test releases
651         * configure.ac: If the current release is detected to be a test
652         release or a development snapshot, print a proper warning for
653         the user.
654         * README-alpha: Delete, it's obsolete now (and in fact this file
655         hasn't been touched in eleven years, since release 1.4b or so).
656         * HACKING (Release procedure): Don't say to update README-alpha.
658 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
660         devel: help in comparing Makefile.in from different commits
661         Now that the generated Makefile.in, configure and aclocal.m4 files
662         are no longer committed in Automake's git repository, a simple
663         "git diff" or "git log" no longer shows if and how a change in
664         Automake results in changes to the Makefile.in files and/or
665         configure script of its own build system.  Still, the ability to
666         peek so easily at such differences has proved itself quite useful
667         in the past, often revealing inconsistencies and blunders, and
668         sometimes even bugs; so it would be a pity to lose that altogether.
669         With this change, we add a new maintainer recipe that re-introduces
670         much of that capability, by generating and comparing on the fly the
671         Makefile.in, configure and aclocal.m4 derived from two arbitrary
672         commits of the Automake repository.
673         * Makefile.am (autodiffs, compare-autodiffs): New phony targets.
675 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
677         repo: don't commit generated files in the git repository anymore
678         It has been quite some time since autoconf and libtool have stopped
679         committing the generated autotools files in their git repositories,
680         with no significant ill effects we're aware of.  It's true that the
681         autoconf bootstrap process has now the minor annoyance that a
682         pre-installed autoconf is required to complete it; but luckily
683         automake will not have a similar annoyance, since our bootstrap
684         script take care, through some hoops, to use the very automake and
685         aclocal versions from the current git checkout to generate the
686         required aclocal.m4 and Makefile.in files.  In fact, this has been
687         a necessity also in the past, because automake has been known to
688         use in its own build system new development features that hadn't
689         been present in any previously released automake distribution.
690         * .gitignore: Ignore configure, aclocal.m4, and all the
691         Makefile.in files.
692         * configure.ac (AC_PREREQ): New macro call, to require the
693         latest autoconf (2.68 for the moment).
695 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
697         missing: don't try to re-run tar with a munged command line
698         * lib/missing: If the default `tar' program fails with the given
699         arguments, and GNU tar is not available, don't try to re-run the
700         default `tar' with a munged command line (e.g., ditching possibly
701         unportable options), as that could be subtly alter the intended
702         semantics (and maybe even create a somewhat corrupted tarball).
703         Also, it's worth noting that the main purpose of the `missing'
704         script is to allow a non-developer to build the package in the
705         face of slightly-skewed timestamps, not to provide wrappers for
706         all the maintainer tools -- so we don't have to try too hard
707         when `missing' is just called to wrap `tar'.
708         * tests/missing-tar.test: New test.
709         * tests/Makefile.am (TESTS): Add it.
711 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
713         missing: inform the user if GNU tar is called
714         * lib/missing: If the code trying to run GNU tar is reached, it
715         means that the previous attempt to run the default tar program
716         has failed, very likely producing some error message.  At this
717         point, just running GNU tar without further comments might be
718         confusing.
720 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
722         missing: if GNU tar exists but fails when called, give up
723         * lib/missing: If the code trying to run GNU tar is reached,
724         don't continue if the invoked GNU tar program fails, as there
725         is little point in doing so (and can even be confusing and
726         counter-productive).
728 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
730         missing: miscellaneous fixlets
731         * lib/missing: Some shells, such as Solaris or FreeBSD /bin/sh,
732         warn about missing programs before performing redirections.
733         Therefore, where we have to silently check whether a program
734         exists, perform redirections on a subshell.
735         Remove redundant uses of double-quotes in variable definitions.
736         Delete an extra blank line.
738 2011-12-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
740         maint: remove executable bit from automake.in
741         * automake.in: This file is not meant to be executed, only to
742         be preprocessed to create the `automake' script; so don't leave
743         it executable.
745 2011-12-20  Peter Rosin  <peda@lysator.liu.se>
747         tests: fix spurious failure on systems lacking unistd.h
748         This is for automake bug#10324.
749         * tests/silent-lex-generic.test (foo.l): Add a dummy #define of
750         YY_NO_UNISTD_H, so that the generated foo.c file won't require
751         unistd.h to be present (it is not present when compiling with,
752         e.g., MSVC 9).
754 2011-12-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
756         tests: fix spurious failure on MSYS/MinGW and Cygwin
757         * tests/primary-prefix-couples-force-valid.test (Makefile.am):
758         Correctly append $(EXEEXT) to the path of built binaries.
760 2011-12-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
762         test defs: hack to support autoconf-wrapper programs
763         * tests/defs-static.in ($AUTOCONF): Add a dummy `-B' option to the
764         autoconf invocation, so that, when the Debian autoconf wrapper is
765         involved, it will correctly dispatch an autoconf >= 2.50 instead of
766         defaulting to autoconf 2.13.
767         ($AUTOHEADER, $AUTORECONF): Likewise, but for autoheader and
768         autoreconf respectively.
769         Reported by Bruno Haible:
770         <https://lists.gnu.org/archive/html/automake/2011-12/msg00039.html>
772 2011-12-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
774         tests: fix a minor spurious failure with FreeBSD make
775         * tests/remake-am-pr10111.test: Avoid using `#' comments in
776         makefile recipes, as these have been confusing FreeBSD make.
777         The failure was masked by the fact that this test is currently
778         expected to fail.
779         Suggested by a report from Bruno Haible.
781 2011-12-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
783         tests: make two test scripts executable
784         * tests/remake-am-pr10111.test: Make executable.
785         * tests/remake-m4-pr10111.test: Likewise.
787 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
789         yacc/lex tests: remove an unneeded workaround for bug#8485
791         * tests/yacc-d-cxx.test: Remove the workaround previously required
792         to avoid spurious failures due to automake bug#8485: that bug has
793         been solved with commit `v1.11-512-g40c3432'.
795 2011-12-27  Stefano Lattarini  <stefano.lattarini@gmail.com>
797         yacc/lex tests: avoid too much failures with FreeBSD make
799         In various Yacc/Lex tests, we used to run "make distcheck" commands
800         whose value was mostly dubious, and, even when it was there, was
801         very, very little.  The presence of these extra distchecks had two
802         disadvantages: it slowed down our already-too-slow testsuite even
803         more, and, much worse, caused a lot of extra failures with FreeBSD,
804         all due to automake bug#7884, which is already exposed by the test
805         case `yacc-dist-nobuild.test'.
807         We can improve this situation by simply removing "make distcheck"
808         calls from a few testcases, or making them conditional to the use
809         of GNU make.
811         * tests/lex-clean-cxx.test: Do not call "make distcheck".
812         * tests/lex-clean.test: Likewise.
813         * tests/yacc-clean-cxx.test: Likewise.
814         * tests/yacc-clean.test: Likewise.
815         * tests/yflags-force-override.test: Likewise.
816         * tests/yacc-nodist.test: Only run "make distcheck" if make
817         is GNU make.
819 2011-12-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
821         Merge branch 'maint' into 'yacc-work'
822         * tests/silent-lex.test: Provide a dummy `yywrap()' function, to
823         avoid link errors on systems that doesn't provide a "lex library".
824         See also commit `v1.11-546-gca0ba5d'.
826 2011-12-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
828         readme: reference webpages for automake mailing lists
829         * README: Rationalize and reorganize the (brief) description of
830         the automake mailing lists.   In particular, instead of suggesting
831         the reader to write to the `-request' addresses to subscribe to
832         mailing lists, point him to the relevant webpages, where he can
833         also subscribe via a web form.
835 2011-12-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
837         readme: update advice about testsuite execution
838         * README: Now that the automake testsuite uses the parallel-tests
839         driver, there is no need for the user to capture the stdout of
840         "make check" to determine which tests have failed: a detailed log
841         is automatically saved into the `tests/test-suite.log' file.
842         Since we are at it, improve the wording by dropping an extra
843         "please".
845 2011-12-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
847         readme: don't reference the old homepage at sources.redhat.com
848         * README: Don't reference the old homepage at sources.redhat.com,
849         which is no longer active; reference the homepage on www.gnu.org
850         instead.  See also automake bug#10157 and bug#10248.
851         * tests/README: Likewise, and remove related extra-pedantic advice
852         about copyright papers for test cases (we'll ask for those papers
853         explicitly when we think they are warranted).
855 2011-12-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
857         hacking: some more fixlets
858         * HACKING (Release Procedure): Place the list of pre-release
859         bootstrap-and-test commands on a line of its own, so it's easy to
860         select and then paste it into a terminal window.
861         Fix the explanation of "make git-release", as, since the previous
862         change, "make git-release" would simply run "make dist" rather
863         than "make distcheck".
864         Suggestion from Jim Meyering.
866 2011-12-12  Peter Rosin  <peda@lysator.liu.se>
868         * NEWS: Fix typo in 'make dist-bzip2' description.
870 2011-12-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
872         release: don't run "make distcheck" automatically
873         * Makefile.am (git-dist): The developers should test extensively
874         before finally creating the release tarball; so don't run "make
875         distcheck" on their behalf here; instead ...
876         * HACKING (Release procedure): ... state here that "make check"
877         and "make distcheck" should be run before calling "make git-dist".
879 2011-12-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
881         tests: fix spurious failure in 'color2.test'
882         * tests/color2.test: (expect-make): Add an "expect eof" directive,
883         so that the collected output from the spawned make program will be
884         displayed on stdout, as desired.
885         Since we are at it, also correctly remove a temporary file which
886         we was trying to delete using a wrong filename.
887         Problem introduced in merge `v1.11-1579-g8d3466c', probably by a
888         botched edit or conflict resolution.
890 2011-12-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
892         tests: fix spurious failure in 'lex3.test'
893         * tests/lex3.test (foo.l): Remove duplicated definition of
894         `yywrap'.  Problem introduced in merge `v1.11-1579-g8d3466c'.
896 2011-12-09  Jim Meyering  <meyering@redhat.com>
897             Stefano Lattarini  <stefano.lattarini@gmail.com>
899         dist-xz, dist-bzip2: don't hard-code -9, honor envvar settings
900         Before the present change, automake-generated `dist-xz' rule used
901         a hard-coded `xz -9'.  That was a problem because on this front,
902         xz differs from gzip and bzip2.  While the latter two don't incur
903         any run-time decompression penalty for using a higher compression
904         level, specifying -9 with xz imposes a potentially fatal virtual
905         memory requirement on any client that wants to decompress your
906         tar.xz file.
907         People have complained that a tarball compressed with -9 cannot
908         be uncompressed in a low-memory environment (wrt-based embedded).
909         Hence, instead of defaulting to -9, which is useful only for very
910         large tarballs, it defaults to -e (equivalent to -6e).  This
911         limits the default memory requirements imposed on decompressors,
912         yet still gives very good compression ratios.
913         * lib/am/distdir.am (dist-xz): Do not hard-code xz's -9: that made
914         it impossible to override.  Actually don't default to -9, either,
915         since that induced inordinately large virtual memory usage when
916         merely decompressing.  Instead, use its XZ_OPT envvar, defaulting
917         to -e if not defined.  Suggested by Lasse Collin.
918         (dist-bzip2): Similarly, do not hard-code -9, but do continue to
919         use -9 by default.  Honor the BZIP2 envvar.
920         * NEWS: Update.
921         * doc/automake.texi (The Types of Distributions): Describe the
922         newly enabled environment variables.
924 2011-12-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
926         * NEWS: Fix typos, grammaros and suboptimal wording.
927         Reported by Jim Meyering.
929 2011-12-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
931         maint: sync auxiliary files from upstream
932         * lib/texinfo.tex: Synced from upstream, by "make fetch".
933         * lib/config.guess: Likewise.
934         * lib/config.sub: Likewise.
936 2011-12-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
938         tests: fix spurious failures due to missing 'yywrap()' function
940         The AC_PROG_LEX Autoconf macro does not diagnose a failure to find
941         the "lex library" expected to provide a `yywrap' function (function
942         which is required to link most lex-generated programs).  On the
943         contrary, when all the link attempts (i.e., with `-ll' and `-lfl')
944         fail, configure declares that no lex library is needed, and simply
945         proceeds with the configuration process -- only for the build to
946         possibly fail later, at make time.
948         This behaviour is intended; the Autoconf manual reads:
949          ``You are encouraged to use Flex in your sources, since it is
950            both more pleasant to use than plain Lex and the C source it
951            produces is portable.  In order to ensure portability, however,
952            you must either provide a function `yywrap' or, if you don't use
953            it (e.g., your scanner has no `#include'-like feature), simply
954            include a `%noyywrap' statement in the scanner's source.''
956         This AC_PROG_LEX behaviour is causing some spurious failures of
957         the Automake testsuite in environments which lack a proper library
958         providing `yywrap' (this happens for example on Fedora-based
959         systems).   The proper workaround is to simply provide a fall-back
960         implementation of `yywrap' in our lexers.
962         See also partially-overlapping commit `v1.11-871-geb147a1' (from
963         the 'testsuite-work' branch), which was motivated by similar
964         spurious failures experienced when cross-compiling.
966         From a report by Jim Meyering:
967         <https://lists.gnu.org/archive/html/automake-patches/2011-10/msg00092.html>
969         * tests/cond35.test: Provide a dummy `yywrap' function.
970         * tests/lex3.test: Likewise.
971         * tests/silent-lex-generic.test: Likewise.
972         * tests/silent-lex-gcc.test: Likewise.
973         * tests/silent-many-generic.test: Likewise.
974         * tests/silent-many-gcc.test: Likewise.
976 2011-12-04  Paul Eggert  <eggert@cs.ucla.edu>
978         depcomp: spelling fix
979         * lib/depcomp (-h): Fix misspelling in usage diagnostic.
981 2011-11-28  Peter Rosin  <peda@lysator.liu.se>
983         tests: fix 'distcheck-override-infodir.test' on Cygwin
984         * tests/distcheck-override-infodir.test (Makefile.am): Do not add
985         any `/' between $(DESTDIR) and the following paths.  Otherwise,
986         when $(DESTDIR) is empty, the recipes will try to access files
987         with a leading double slash, which have an implementation-defined
988         interpretation (e.g., for Cygwin, they mean UNC paths).
990 2011-11-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
992         cosmetics: typofix in comments
993         * tests/remake-am-pr10111.test (Makefile.am): Fix typo in comments.
994         * THANKS: Update.
995         Reported by Krzysztof Żelechowski.
997 2011-11-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
999         coverage: undistributed '.am' and '.m4' files are diagnosed
1000         The stub rules emitted to work around the "deleted header problem"
1001         for `.m4' files (included by autoconf in e.g., configure.ac) and
1002         for `.am' files (included by automake in e.g., Makefile.am) should
1003         not prevent "make" from correctly complaining when such a required
1004         file is missing from a distribution tarball.
1005         * tests/dist-missing-am.test: New test.
1006         * tests/dist-missing-m4.test: Likewise.
1007         * tests/dist-missing-included-m4.test: Likewise.
1008         * tests/Makefile.am (TESTS): Add them.
1009         Suggestion by Ralf Wildenhues.
1011 2011-11-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
1013         coverage: required but missing '.am' and '.m4' files are diagnosed
1014         The stub rules emitted to work around the "deleted header problem"
1015         for `.m4' files (included by autoconf in e.g., configure.ac) and
1016         for `.am' files (included by automake in e.g., Makefile.am) should
1017         not prevent the remake rules from correctly erroring out when a
1018         still-required file is missing.
1019         * tests/deleted-am.test: New test.
1020         * tests/deleted-m4.test: Likewise.
1021         * tests/Makefile.am (TESTS): Add them.
1023 2011-11-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
1025         coverage: expose automake bug#10111 in the testsuite
1026         * tests/remake-am-pr10111.test: New test, xfailing.
1027         * tests/remake-m4-pr10111.test: Likewise.
1028         * tests/Makefile.am (TESTS, XFAIL_TESTS): Add them.
1030 2011-11-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
1032         texinfo: work around Solaris 10 xpg4 shell bug in install rules
1033         * lib/am/texinfos.am (install-html-am): Use an extra variable
1034         indirection to work around a bug in Solaris 10 /usr/xpg4/bin/sh.
1035         Bug revealed by a failure of `txinfo21.test'.  See also:
1036         <https://lists.gnu.org/archive/html/bug-autoconf/2011-11/msg00005.html>
1037         <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=10026#23>
1039 2011-11-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
1041         configure: report perl version in config.log
1042         * configure.ac: Report the version of the selected perl interpreter
1043         in config.log; this should render the logs more informative.
1045 2011-11-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
1047         tests: fix spurious failure with older install-info
1048         * tests/install-info-dir.test (foo.texi): Also add proper
1049         `@settitle', `@dircategory' and `@direntry' directive, otherwise
1050         older versions of `install-info' (e.g., 4.8) will fail to create
1051         the `dir' index file in ${infodir}.
1052         Problem revealed by a failure on NetBSD 5.1.
1054 2011-11-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
1056         maintcheck: fix spurious failure in 'color2.test'
1057         * tests/color2.test: Avoid creative quoting to avoid a spurious
1058         failure of the `sc_tests_Exit_not_exit' maintainer check.
1060 2011-11-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
1062         tests: fix spurious error in 'uninstall-fail.test' on Solaris
1063         * tests/uninstall-fail.test: Solaris 10 /usr/xpg4/bin/sh can add
1064         a line number before the `:' in the error messages issued by shell
1065         builtins.  Account for that in our grepping of make output.
1067 2011-11-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
1069         tests: fix typo in 'uninstall-fail.test'
1070         * tests/uninstall-fail.test: Always use `$rm_f_is_silent_on_error'
1071         instead of the bogus `$rm_f_is_silent_on_failure'.
1073 2011-11-19  Paul Eggert  <eggert@cs.ucla.edu>
1075         * lib/install-sh: Spelling fix in comment.
1077 2011-11-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
1079         tests: avoid a spurious failure of 'ltinit.test' MinGW
1080         * tests/ltinit.test: Be laxer in grepping configure output, to
1081         avoid spurious failures on systems which lack POSIX dynamic
1082         linking (e.g., MinGW), or when cross-compiling for such systems.
1083         See also commit `v1.11-855-ge9e5d4a'.
1084         Report and suggestion from Peter Rosin.
1086 2011-11-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
1088         tests: testsuite is now safe to run with dmake in parallel mode
1089         * tests/defs.in: Unset variables DMAKE_CHILD, DMAKE_DEF_PRINTED
1090         and DMAKE_MAX_JOBS, which are exported by Solaris dmake when run
1091         in parallel mode, and which might confuse make processes spawned
1092         by our testsuite.
1094 2011-11-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
1096         tests: fix spurious failures w.r.t. parallel make and colorization
1097         * tests/color2.test: Skip the test if the $MAKE program fails to
1098         consider the standard output as a tty when spawned by `expect'.
1099         This is required for make implementations, like FreeBSD make and
1100         Solaris dmake, that redirect the output of recipes to temporary
1101         files or pipes when run in parallel mode.  Since we are at it,
1102         simplify the detection of a working `expect' program, and throw
1103         in other minor simplifications.
1105 2011-11-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
1107         tests: fix spurious failure in 'distcheck-override-infodir.test'
1108         * tests/distcheck-override-infodir.test ($required): Add
1109         'install-info'.
1111 2011-11-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
1113         tests: avoid another failure of 'uninstall-fail.test' on Solaris
1114         * tests/uninstall-fail.test: On Solaris 10, if `/bin/rm' is run
1115         with the `-f' option, it doesn't print any error message when
1116         failing to remove a file (due to e.g., "Permission denied").
1117         Yikes.  Cater to this incompatibility, by relaxing the test when
1118         a faulty `rm' is detected.
1120 2011-11-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
1122         tests: various minor tweakings, mostly related to AM_PROG_AR
1123         * tests/alloca2.test: Ensure we don't experience a spurious failure
1124         due to a missing `AM_PROG_AR' macro or a missing `ar-lib' auxiliary
1125         script.
1126         * tests/libtool4.test: Likewise.
1127         * tests/ldadd.test: Likewise.  Since we are at it, make grepping of
1128         automake stderr stricter.
1129         * tests/reqd2.test: Likewise.
1130         * tests/pr211.test: Ensure automake fails also with `-Wnone', since
1131         the error we are testing for is an hard error, not a mere warning.
1132         * tests/syntax.test: Likewise, and ensure we don't fail to other
1133         errors by removing use of `lib_LTLIBRARIES' in Makefile.am.  Since
1134         we are at it, make grepping of automake stderr stricter.
1136 2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
1138         ar-lib: fix configure output for "unrecognized archiver interface"
1139         * m4/ar-lib.m4: Ensure that, even when an error is hit while trying
1140         to determine the archiver interface kind, the "checking archiver
1141         interface" message from configure is properly terminated before
1142         an error message is printed, to avoid slightly garbled output.
1143         * tests/ar4.test: Enhance.
1144         * tests/ar5.test: Likewise.
1146 2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
1148         warnings: fix buglets for portability warnings
1149         * lib/Automake/ChannelDefs.pm (switch_warning): Ensure the
1150         correct implications and inter-dependencies between warnings
1151         in the categories `portability', `extra-portability' and
1152         `recursive-portability' are respected.  Also add detailed
1153         explicative comments, and references to the relevant tests.
1154         * tests/dollarvar2.test: Update and extend.  Also, remove
1155         some unnecessary uses of `--force' option in automake calls.
1156         * tests/extra-portability3.test: New test.
1157         * tests/Makefile.am (TESTS): Add it.
1159 2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
1161         tests: extend tests on 'extra-portability' warning category
1162         * tests/extra-portability.test: Redefine `$AUTOMAKE' to ensure we
1163         have complete control over the automake options.  Extend by using
1164         also a setup where no `portability' warning is present (only an
1165         `extra-portability' warning is).  Other minor extensions.  Remove
1166         some redundant, verbose comments about the expected diagnostic.
1168 2011-11-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
1170         tests: various minor tweakings, mostly related to AM_PROG_AR
1171         * tests/alloca.test: Adjust to new portability requirements due
1172         to the new AM_PROG_AR macro.
1173         * tests/discover.test: Likewise.
1174         * tests/libobj3.test: Likewise.
1175         * tests/pluseq7.test: Likewise.  Also, make grepping of automake
1176         expected error message stricter.
1177         * tests/stdlib.test: Likewise, and extend the test a bit.
1178         * tests/parse.test (configure.in): Remove redundant call to
1179         AC_PROG_RANLIB.
1180         * tests/library2.test: Adjust to new portability requirements
1181         due to the new AM_PROG_AR macro.  Also ...
1182         (configure.in): ... add call to AC_PROG_CC, to ensure automake
1183         really fails for the expected reason.
1185 2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
1187         ar-lib: fix configure output for "unrecognized archiver interface"
1188         * m4/ar-lib.m4: Ensure that, even when an error is hit while trying
1189         to determine the archiver interface kind, the "checking archiver
1190         interface" message from configure is properly terminated before
1191         an error message is printed, to avoid slightly garbled output.
1192         * tests/ar4.test: Enhance.
1193         * tests/ar5.test: Likewise.
1195 2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
1197         tests: more faithful 'installcheck' support in few tests
1198         * tests/ar-lib5a.test: Use the `$am_scriptdir' variable instead
1199         of "$testsrcdir/../lib" or "$top_testsrcdir/lib", to test more
1200         faithfully under "make installcheck".
1201         * tests/ar-lib5a.test: Likewise.
1202         * tests/libobj-basic.test: Likewise.
1203         * tests/libobj19.test: Likewise.
1204         * tests/suffix5.test: Likewise.
1206 2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
1208         tests: remove redundant settings of `errexit' shell flag
1209         * tests/aclocal-path-install-serial.test: Do not set the
1210         `errexit' shell flag, as it is already set by `tests/defs'.
1211         * tests/ar-lib2.test: Likewise.
1212         * tests/ar-lib3.test: Likewise.
1213         * tests/ar-lib4.test: Likewise.
1214         * tests/ar-lib5a.test: Likewise.
1215         * tests/ar-lib5b.test: Likewise.
1216         * tests/ar-lib6a.test: Likewise.
1217         * tests/ar-lib6b.test: Likewise.
1218         * tests/ar-lib7.test: Likewise.
1219         * tests/ar3.test: Likewise.
1220         * tests/ar4.test: Likewise.
1221         * tests/ar5.test: Likewise.
1222         * tests/extra-portability.test: Likewise.
1223         * tests/extra-portability2.test: Likewise.
1224         * tests/extra-portability3.test: Likewise.
1225         * tests/install-info-dir.test: Likewise.
1226         * tests/maintmode-configure-msg.test: Likewise.
1228 2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
1230         generated tests: avoid extra "FIXME" comments
1231         * tests/gen-testsuite-part: Avoid putting too much "FIXME"
1232         comments in the generated test scripts, since they end up
1233         being just counter-productive noise when one has to grep
1234         the test scripts looking for real "FIXME" items.
1236 2011-09-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
1238         cosmetics: fix typo in 'prove-runner' script
1239         * tests/prove-runner: Remove erroneously-repeated word.
1240         * THANKS: Update.
1241         Reported by Dave Hart.
1243 2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
1245         Merge branch 'master' into testsuite-work
1246         * tests/extra-portability.test: Use `$am_original_AUTOMAKE'
1247         instead of the obsolete `$original_AUTOMAKE'.
1248         * tests/extra-portability3.test: Likewise.
1249         * tests/list-of-tests.mk: Update.
1251 2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
1253         Merge branch 'msvc' into master
1254         * tests/extra-portability3.test: Use `$original_AUTOMAKE' instead
1255         of hackishly extracting the first component of `$AUTOMAKE'.
1256         * tests/extra-portability.test: Likewise.  Also, since we are at
1257         it, throw in a couple of small extensions and tweakings (suggested
1258         by the minor merge conflicts).
1260 2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
1262         warnings: fix buglets for portability warnings
1263         * lib/Automake/ChannelDefs.pm (switch_warning): Ensure the
1264         correct implications and inter-dependencies between warnings
1265         in the categories `portability', `extra-portability' and
1266         `recursive-portability' are respected.  Also add detailed
1267         explicative comments, and references to the relevant tests.
1268         * tests/dollarvar2.test: Update and extend.  Also, remove
1269         some unnecessary uses of `--force' option in automake calls.
1270         * tests/extra-portability3.test: New test.
1271         * tests/Makefile.am (TESTS): Add it.
1273 2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
1275         tests: extend tests on 'extra-portability' warning category
1276         * tests/extra-portability.test: Redefine `$AUTOMAKE' to ensure we
1277         have complete control over the automake options.  Extend by using
1278         also a setup where no `portability' warning is present (only an
1279         `extra-portability' warning is).  Other minor extensions.  Remove
1280         some redundant, verbose comments about the expected diagnostic.
1282 2011-11-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
1284         test defs: new functions to analyze configure help screen
1285         * tests/defs (extract_configure_help, grep_configure_help): New
1286         functions.
1287         * tests/maintmode-configure-msg.test: Use them, reducing code
1288         duplication and test brittleness.
1289         * tests/help-depend.test: Likewise.
1290         * tests/help-depend2.test: Likewise.
1291         * tests/help-dmalloc.test: Likewise.
1292         * tests/help-lispdir.test: Likewise.
1293         * tests/help-multilib.test: Likewise.
1294         * tests/help-python.test: Likewise.
1295         * tests/help-regex.test: Likewise.
1296         * tests/help-silent.test: Likewise.
1297         * tests/help-upc.test: Likewise.
1298         * tests/help-init.test: Make grepping of configure help screen
1299         slightly stricter.
1300         * tests/self-check-configure-help.test: New self test.
1301         * tests/Makefile.am (TESTS): Add it.
1302         From a report by Jim Meyering.
1304 2011-11-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
1306         Merge branch 'master' into testsuite-work
1308         * tests/instspc.tap: Adjust to new portability requirements
1309         due to the new AM_PROG_AR macro.
1310         * tests/lex-lib.test: Likewise.
1311         * tests/extra-portability2.test: Use `$am_original_AUTOMAKE'
1312         instead of the obsolete `$original_AUTOMAKE'.
1313         * tests/list-of-tests.mk: Update.
1315 2011-11-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
1317         tests: various minor tweakings, mostly related to AM_PROG_AR
1318         * tests/alloca.test: Adjust to new portability requirements due
1319         to the new AM_PROG_AR macro.
1320         * tests/discover.test: Likewise.
1321         * tests/libobj3.test: Likewise.
1322         * tests/pluseq7.test: Likewise.  Also, make grepping of automake
1323         expected error message stricter.
1324         * tests/stdlib.test: Likewise, and extend the test a bit.
1325         * tests/parse.test (configure.in): Remove redundant call to
1326         AC_PROG_RANLIB.
1327         * tests/library2.test: Adjust to new portability requirements
1328         due to the new AM_PROG_AR macro.  Also ...
1329         (configure.in): ... add call to AC_PROG_CC, to ensure automake
1330         really fails for the expected reason.
1332 2011-11-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
1334         Merge branch 'msvc' into master
1336         * tests/instspc-tests.sh: Adjust to new portability requirements
1337         due to the new AM_PROG_AR macro.
1338         * tests/libobj-basic.test: Likewise.
1339         * tests/libobj2.test: Likewise.
1340         * tests/libobj15a.test: Likewise.
1341         * tests/libobj15b.test: Likewise.
1342         * tests/libobj15c.test: Likewise.
1343         * tests/libobj16a.test: Likewise.
1344         * tests/libobj16b.test: Likewise.
1345         * tests/libobj17.test: Likewise.
1346         * tests/libobj18.test: Likewise.
1347         * tests/libobj19.test: Likewise.
1348         * tests/libobj20a.test: Likewise.
1349         * tests/libobj20b.test: Likewise.
1350         * tests/libobj20c.test: Likewise.
1351         * tests/canon6.test: Likewise.
1352         * tests/canon6.test: Likewise.
1353         * tests/canon7.tests: Likewise.
1354         * tests/extra9.test: Likewise.
1355         * tests/extradep.test: Likewise.
1356         * tests/extradep2.test: Likewise.
1357         * tests/posixsubst-ldadd.test: Likewise.
1358         * tests/posixsubst-libraries.test: Likewise.
1359         * tests/posixsubst-ltlibraries.test: Likewise.
1360         * tests/python-virtualenv.test: Likewise.
1361         * tests/vartypos.test: Likewise.
1362         * tests/vartypo2.test: Likewise.
1363         * tests/suffix.test: Update to take into account previous
1364         master-only changes.
1365         * tests/suffix2.test: Likewise.
1366         * tests/libobj7.test: Call automake with the `--add-missing'
1367         option, instead of creating a dummy `ar-lib' file, since this
1368         test now also runs "./configure" and "make".
1369         * tests/suffix5.test: Copy the real `ar-lib' script file,
1370         instead of creating a dummy one, since this test now also
1371         runs "./configure" and "make".
1372         * tests/extra-portability2.test: Fix this test not to rely
1373         on the older, faulty semantics of "strictness specification
1374         always reset warning level", which has been fixed in commit
1375         v1.11-623-g1609491 (see also automake bug#7669 a.k.a. PR/547).
1376         Since we are at it, throw inf few other minor unrelated
1377         improvements.
1378         * tests/extra-portability.test: Explicitly pass `-Wall' to
1379         automake calls, for clarity.
1381 2011-10-21  Peter Rosin  <peda@lysator.liu.se>
1383         warnings: new 'extra-portability' category, for AM_PROG_AR
1384         * lib/Automake/ChannelDefs.pm: Register new extra-portability
1385         warning channel.
1386         (switch_warning): Turn off extra-portability if portability is
1387         turned off, and turn on portability if extra-portability is
1388         turned on.
1389         (set_strictness): Silence extra-portability for --gnits, --gnu
1390         and --foreign.
1391         * tests/extra-portability2.test: New test, checking that the
1392         extra-portability channel is silenced by --gnits, --gnu and
1393         --foreign.
1394         * doc/automake.texi (Invoking Automake): Document the new warning
1395         category and its interaction with the portability category.
1396         * tests/extra-portability.test: New test, checking the interaction
1397         between the portability and extra-portability warning categories.
1398         * automake.in (handle_libraries, handle_ltlibraries): Move the
1399         AM_PROG_AR warnings to the new extra-portability channel.
1400         * tests/ar2.test: Adjust to the new warning channel.
1401         * tests/pr300-lib.test: Likewise.
1402         * tests/pr300-ltlib.test: Likewise.
1403         * tests/pr307.test: Likewise.
1404         * tests/pr401.test: Likewise.
1405         * tests/pr401b.test: Likewise.
1406         * tests/pr401c.test: Likewise.
1407         * tests/pr72.test: Likewise.
1408         * NEWS: Likewise.
1409         * tests/Makefile.am (TESTS): Update.
1411 2011-10-21  Peter Rosin  <peda@lysator.liu.se>
1412             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1413             Stefano Lattarini  <stefano.lattarini@gmail.com>
1415         Add new 'AM_PROG_AR' macro, triggering the 'ar-lib' script.
1416         * m4/ar-lib.m4: New macro AM_PROG_AR, which locates an
1417         archiver and triggers the auxiliary 'ar-lib' script if needed.
1418         * m4/Makefile.am (dist_m4data_DATA): Update.
1419         * automake.in ($seen_ar): New variable.
1420         (scan_autoconf_traces): Set it.
1421         (handle_libraries, handle_ltlibraries): Require AM_PROG_AR for
1422         portability.
1423         * doc/automake.texi (Public Macros): Mention the new
1424         'AM_PROG_AR' macro.
1425         (Subpackages): Add AM_PROG_AR to the example.
1426         (A Library): Adjust recommendations for AR given the new
1427         AM_PROG_AR macro.
1428         * All relevant tests: Adjust to new portability requirements due
1429         to the new AM_PROG_AR macro.
1430         * tests/ar-lib2.test: New test, checking that AM_PROG_AR triggers
1431         install of ar-lib.
1432         * tests/ar-lib3.test: New test, checking that lib_LIBRARIES
1433         requires AM_PROG_AR.
1434         * tests/ar-lib4.test: New test, checking that lib_LTLIBRARIES
1435         requires AM_PROG_AR.
1436         * tests/ar-lib5a.test: New test, checking that AM_PROG_AR triggers
1437         use of ar-lib when the archiver is Microsoft lib.
1438         * tests/ar-lib5b.test: New test, checking that AM_PROG_AR triggers
1439         use of ar-lib when the archiver is a faked lib.
1440         * tests/ar-lib6a.test: New test, checking the ordering of
1441         AM_PROG_AR and LT_INIT.
1442         * tests/ar-lib6b.test: New test, checking the ordering of
1443         AM_PROG_AR and AC_PROG_LIBTOOL.
1444         * tests/ar-lib7.test: New test, checking that automake warns
1445         if ar-lib is missing.
1446         * tests/ar3.test: New test, checking that AR and ARFLAGS may
1447         be overridden by the user even if AM_PROG_AR is used.
1448         * tests/ar4.test: New test, checking that AM_PROG_AR bails out
1449         if it cannot determine the archiver interface.
1450         * tests/ar5.test: New test, checking that AM_PROG_AR runs its
1451         optional argument if it cannot determine the archiver interface.
1452         * tests/defs.in: New required entry 'lib'.
1453         * tests/Makefile.am (TESTS): Update.
1454         * NEWS: Update.
1456 2011-11-03  Zack Weinberg <zackw@panix.com>  (tiny change)
1457             Stefano Lattarini  <stefano.lattarini@gmail.com>
1459         maint-mode: fix botched configure messages
1460         This change fixes automake bug#9890.
1461         * m4/maintainer.m4 (AM_MAINTAINER_MODE): Fix the "checking ..."
1462         configure message related to the enabling/disabling of maintainer
1463         mode.
1464         * tests/help-maintainer.test: Renamed ...
1465         * tests/maintmode-configure-msg.test: ... to this, and extended
1466         to cover the fixed bug.  Also, since we are at it, make grepping
1467         of configure help screens stricter, and throw in some few other
1468         changes to reduce code duplication and enhance readability.
1469         * tests/Makefile.am (TESTS): Update.
1470         * THANKS: Update with Zack's new e-mail address.
1471         Report and initial patch by Zack Weinberg, test cases added by
1472         Stefano Lattarini.
1474 2011-10-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
1476         info: allow user to inhibit creation/update of '${infodir}/dir'
1477         With this change, we allow the user to request the install-info
1478         rules not to update the `${infodir}/dir' file, by setting the
1479         environment variable `AM_UPDATE_INFO_DIR' to the value "no".
1480         This is especially useful to distro packagers, and is a definite
1481         improvement over our previous hack of looking whether the
1482         `install-info' program was the Debian or GNU version -- hack
1483         which had been silently broken with recent versions of debian
1484         install-info BTW (probably since dpkg 1.15.4, 2009-09-06).
1485         This change fixes automake bug#9773.  See also Debian Bug#543992.
1486         * lib/am/texinfos.am: Don't look anymore at the output of
1487         `install-info --version' to decide whether to use it to update
1488         the `${infodir}/dir' or not; instead, honour the environment
1489         variable `AM_UPDATE_INFO_DIR'.
1490         * tests/install-info-dir.test: New test.
1491         * tests/Makefile.am (TESTS): Add it.
1492         * tests/defs: Also unset `AM_UPDATE_INFO_DIR', to avoid unwanted
1493         interferences from the environment.
1494         * doc/automake.texi (Texinfo): Update.
1495         * NEWS: Likewise.
1496         * THANKS: Likewise.
1497         Report by Jonathan Nieder.
1499 2011-10-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
1501         test defs: new function 'am_keeping_testdirs', for better APIs
1503         This change is meant to make it easier for TAP-based test scripts
1504         to remove files left over by completed (sub)tests, while still
1505         honoring the user-provided `$keep_testdirs' setting.
1507         * tests/defs (am_keeping_testdirs): New function, telling whether
1508         we should keep the test directories around, even in case of
1509         success (by default, we don't).
1510         (exit trap): Use it.
1511         * tests/depmod.tap: Likewise.
1512         * tests/instspc.tap: Likewise.  Also, fix some pre-existing
1513         "copy & paste" bugs, and a typo in comments.
1515 2011-10-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
1517         tests: remove redundant `set -e', and other minor improvements
1518         * tests/dejagnu-absolute-builddir.test: Do not set the `errexit'
1519         shell flag, as it is already set by `tests/defs'.
1520         * tests/dejagnu-relative-srcdir.test: Likewise.
1521         * tests/dejagnu-siteexp-append.test: Likewise.
1522         * tests/dejagnu-siteexp-useredit.test: Likewise, and fix a typo
1523         in comments.
1524         * tests/dejagnu-siteexp-extend.test: Likewise, and prefer the
1525         use of `$distdir' over hard-coded `$me-1.0'.  Also ...
1526         (write_check_for): ... use `unindent' when writing from an
1527         here-doc, for better code indentation.
1529 2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
1531         deps: partially revert commit `v1.11-512-geeee551'
1532         This change partly reverts commit "Create subdirs for generated
1533         sources even when not dep tracking", of 2011-04-02.
1534         That commit had caused the bugs #8485 and #8526.  Since we are
1535         nearing the bug-fixing automake release 1.11.2, the safest policy
1536         at the moment is to just revert the problematic hunks: an older,
1537         known bug is better than a regression.
1538         * automake.in (handle_single_transform): Don't add a dirstamp
1539         dependency, even when $object is derived and lands in a subdir.
1540         * tests/Makefile.am (XFAIL_TESTS): Add lex-subobj-nodep.test,
1541         remove yacc-dist-nobuild-subdir.test.
1543 2011-10-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
1545         tests: few improvements to some `ar-lib' related tests
1547         * tests/ar-lib5a.test (Makefile.am): Also check that the target
1548         library has truly been created.
1549         (ar-lib): Use the real `ar-lib' script (mildly patched) rather
1550         than a dummy one, to ensure better "real-life coverage".  Fix
1551         botched shebang line.
1552         * tests/ar-lib5b.test: Extend the PATH variable to make the dummy
1553         `lib' script accessible, instead of explicitly calling it by its
1554         relative/absolute path.
1555         (ar-lib): Fix botched shebang line.
1556         (bin/lib): Likewise.  Also, add explicative comments, and make
1557         slightly stricter.
1559 2011-10-24  Peter Rosin  <peda@lysator.liu.se>
1561         Merge branch 'maint' into msvc
1563         * tests/subpkg-yacc.test: Adjust to new portability requirements due
1564         to the new AM_PROG_AR macro.
1566 2011-10-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
1568         dejagnu: allow the package developer to extend site.exp
1569         Fixes automake bug#7873.
1570         * lib/am/dejagnu.am (site.exp): Depend from the files listed in
1571         $(EXTRA_DEJAGNU_SITE_CONFIG), if any.  Append their contents to
1572         the generated site.exp (still preserving user edits).
1573         * doc/automake.texi (Dejagnu Tests): Update.
1574         * tests/dejagnu-siteexp-append.test: New test.
1575         * tests/dejagnu-siteexp-extend.test: Likewise.
1576         * tests/dejagnu-siteexp-useredit.test: Likewise.
1577         * tests/Makefile.am (TESTS): Update.
1578         * NEWS: Update.
1579         Suggestion by Rainer Orth.
1581 2011-10-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
1583         dejagnu: ensure 'srcdir' is defined as a relative directory
1584         This change fixes automake bug#7833.
1585         * lib/am/dejagnu.am (check-DEJAGNU): Prefer using plain $(srcdir)
1586         over calculating and using the absolute path of $(srcdir).
1587         * tests/dejagnu-relative-srcdir.test: New test.
1588         * tests/dejagnu-absolute-builddir.test: Likewise.
1589         * tests/Makefile.am (TESTS): Update.
1590         Report by Ian Lance Taylor.  Suggestions by Ralf Wildenhues.
1592 2010-12-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1594         Fix testsuite failure of check12.test without DejaGNU.
1595         * tests/check12.test: Require runtest.
1597 2010-12-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
1599         Extend and improve tests on DejaGnu support.
1600         * tests/dejagnu.test: Do not create useless dummy test script.
1601         Add trailing `:' command.  In heading comments, add reference
1602         to ...
1603         * tests/check12.test: ... this new "semantic" test, covering
1604         concurrent use of dejagnu tests, simple tests and `check-local'
1605         target.
1606         * tests/dejagnu2.test: Make test more reliable, by avoid weak
1607         grepping of make output.  Prefer `cat' over `echo' to append
1608         to configure.in.  Quote literal dots in grep regexps.  Prefer
1609         `grep -c ...' over `grep ... | wc -l'.  Make grepping of
1610         automake stderr slightly stricter.  Add trailing `:' command.
1611         * tests/dejagnu3.test: Prefer `cat' over `echo' to append to
1612         configure.in.  Check stderr of expected-to-fail "make" call.
1613         Remove extra blank lines from Makefile.am.
1614         * tests/dejagnu4.test: Prefer `cat' over `echo' to append to
1615         configure.in.  Prefer `mv -f' over plain `mv' when the target
1616         file already exists.  Avoid extra mkdir calls by creating more
1617         directories at once.  Better use of blank lines.  Check that
1618         the `*.log' and `*.sum' files are created by runtest also when
1619         "make check" fails.
1620         * tests/dejagnu7.test: Prefer `cat' over `echo' to append to
1621         configure.in.  Better use of blank lines.  Add a trailing `:'
1622         command.
1623         * tests/dejagnu6.test: Likewise, and give the dejagnu test a
1624         more descriptive name.
1625         * tests/dejagnu5.test: Likewise.  Also, simply define package
1626         name to `$me' rather than using a non-obvious sed script to
1627         extract it from `AC_INIT', and write the Makefile.am with only
1628         one command.
1629         * tests/Makefile.am (TESTS): Updated.
1631 2011-10-21  Peter Rosin  <peda@lysator.liu.se>
1633         * THANKS: Fix whitespace issue.
1635 2011-10-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
1637         tests: fix spurious failures due to missing 'yywrap()' function
1639         The AC_PROG_LEX Autoconf macro does not diagnose a failure to find
1640         the "lex library" expected to provide a `yywrap' function (function
1641         which is required to link most lex-generated programs).  On the
1642         contrary, when all the link attempts (i.e., with `-ll' and `-lfl')
1643         fail, configure declares that no lex library is needed, and simply
1644         proceeds with the configuration process -- only for the build to
1645         possibly fail later, at make time.
1647         This behaviour is intended; the Autoconf manual reads:
1648          ``You are encouraged to use Flex in your sources, since it is
1649            both more pleasant to use than plain Lex and the C source it
1650            produces is portable.  In order to ensure portability, however,
1651            you must either provide a function `yywrap' or, if you don't use
1652            it (e.g., your scanner has no `#include'-like feature), simply
1653            include a `%noyywrap' statement in the scanner's source.''
1655         This AC_PROG_LEX behaviour is causing some spurious failures of
1656         the Automake testsuite in environments which lack a proper library
1657         providing `yywrap' (this happens for example on Fedora-based
1658         systems).   The proper workaround is to simply provide a fall-back
1659         implementation of `yywrap' in our lexers.
1661         See also partially-overlapping commit `v1.11-871-geb147a1' (from
1662         the 'testsuite-work' branch), which was motivated by similar
1663         spurious failures experienced when cross-compiling.
1665         Reported by Jim Meyering:
1666         <https://lists.gnu.org/archive/html/automake-patches/2011-10/msg00092.html>
1668         * tests/cond35.test: Provide a dummy `yywrap' function.
1669         * tests/lex3.test: Likewise.
1670         * tests/lexvpath.test: Likewise.
1671         * tests/silent-lex-generic.test: Likewise.
1672         * tests/silent-lex-gcc.test: Likewise.
1674 2011-10-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
1676         tests: more faithful 'installcheck' support in few tests
1677         * tests/test-driver-acsubst.test: Use the `$am_scriptdir'
1678         variable instead of `$testsrcdir/../lib', to test more
1679         faithfully under "make installcheck".
1680         * tests/test-driver-cond.test: Likewise.
1681         * tests/dist-auxfile.test: Likewise, and add one more use
1682         of `fatal_' to report hard errors.
1683         * tests/tests/dist-auxdir-many-subdirs.test: Likewise.
1685 2011-10-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
1687         tests: remove redundant settings of `errexit' shell flag
1688         * tests/aclocal-path-install-serial.test: Do not set the
1689         `errexit' shell flag, as it is already set by `tests/defs'.
1690         * tests/aclocal-path-install.test: Likewise.
1691         * tests/aclocal-path-nonexistent.test: Likewise.
1692         * tests/aclocal-path-precedence.test: Likewise.
1693         * tests/aclocal-path.test: Likewise.
1694         * tests/dist-auxfile-2.test: Likewise.
1695         * tests/dist-auxfile.test: Likewise.
1696         * tests/distcheck-pr9579.test: Likewise.
1697         * tests/javadir-undefined.test: Likewise.
1698         * tests/subpkg-yacc.test: Likewise.
1699         * tests/test-extensions-cond.test: Likewise.
1700         * tests/test-extensions.test: Likewise.
1701         * tests/uninstall-fail.test: Likewise.
1702         * tests/uninstall-pr9578.test: Likewise.
1703         * tests/distcheck-override-infodir.test: Likewise.  Also,
1704         fix typo in heading comments since we are at it.
1706 2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
1708         fixup: add forgotten test scripts to $(TESTS)
1709         * tests/list-of-tests.mk: Add various test scripts that are in
1710         the git repository but weren't correctly listed in $(TESTS).
1711         The inconsistency had been caused by botched/incomplete merges,
1712         and revealed by the "maintainer-check-list-of-tests" target.
1714 2011-10-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
1716         tests: fix spurious failure with FreeBSD make and Yacc in VPATH
1717         * tests/subpkg.test: Some cosmetic adjustments.  Move the tests
1718         checking that $(YLWRAP) is defined and installed properly when
1719         ylwrap is in a default auxdir found in a parent package ...
1720         * tests/subpkg-yacc.test: ... into this new test, which carefully
1721         avoids to trigger the known bug#7884 (combo FreeBSD make plus Yacc
1722         plus VPATH build).
1723         * tests/Makefile.am (TESTS): Update.
1725 2011-10-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
1727         tests: avoid spurious failure in 'parallel-tests3.test'
1728         This fixes automake bug#8788.
1729         * tests/parallel-tests3.test: To ensure that the serial run of
1730         the dummy testsuite is still ongoing when the parallel run has
1731         terminated, use `kill -0', not a bare `kill'.  This will prevent
1732         a testsuite crash on NetBSD 5.1, and a testsuite hang on FreeBSD
1733         8.2.  Also, since we are at it, try harder to avoid possible
1734         hangs of the script in other unusual situations.
1736 2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
1738         tests: fix spurious failures with "chatty" make implementations
1739         * tests/distcheck-missing-m4.test: On failure, some make
1740         implementations (such as Solaris make) print the whole failed
1741         recipe on standard output.  This was causing a spurious failure
1742         in the checks grepping the output from make.  Work around this.
1743         * tests/distcheck-outdated-m4.test: Likewise.
1745 2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
1747         tests: fix spurious failure on fast machines
1748         * tests/aclocal-path-precedence.test: Also remove the `configure'
1749         script between different test runs, to ensure it is always remade
1750         by autoconf.  Add proper explicative comments.
1752 2011-10-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
1754         tests: avoid spurious failure of 'uninstall-fail.test' on Solaris
1755         * tests/uninstall-fail.test: All the Solaris 10 shells (/bin/sh,
1756         /bin/ksh, and /usr/xpg4/bin/sh), upon failing to chdir to a
1757         directory with the `cd' builtin, print a message like:
1758           "sh: /root: permission denied"
1759         which doesn't report the `cd' builtin anywhere.  Relax the grepping
1760         of the error message accordingly.
1762 2011-10-20  Jim Meyering  <meyering@redhat.com>
1764         tests: fix aclocal-print-acdir.test
1765         * tests/aclocal-print-acdir.test: Adjust to pass.
1767 2011-10-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
1769         tests: avoid spurious failure of 'uninstall-fail.test' on Cygwin
1770         * tests/uninstall-fail.test: Be sure to really skip this test
1771         on systems that allows files to be removed from unwritable
1772         directories.  Motivated by a spurious failure on Cygwin 1.5.
1774 2011-10-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
1776         tests: fix spurious failure with autoconf 2.62
1777         * tests/aclocal-path-precedence.test: Rewrite configure.in,
1778         rather than appending to it, to avoid spurious failures (at
1779         least with autoconf 2.62) due to repeated calls to AC_INIT.
1780         Also, add package name and version arguments to AC_INIT, to
1781         avoid spurious errors from automake.
1783 2011-10-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
1785         docs: avoid using colon character inside arguments of @pxref
1786         Fixes automake bug#9753
1787         * doc/automake.texi (VPATH Builds): Avoid using colon character
1788         `:' inside arguments of @pxref, as this can cause problems in
1789         the generated `.info' files, and such an usage will be explicitly
1790         forbidden by future texinfo documentation.
1791         * THANKS: Update.
1792         Reported by Дилян Палаузов.
1794 2011-10-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
1796         refactor: improve signature of 'check_directory' sub in automake
1797         * automake.in (check_directory): Take the relative directory
1798         the directory to be checked is expected to be found into as
1799         an optional parameter, rather than reading it from the global
1800         variable `$relative_dir'.
1801         (scan_autoconf_traces, check_directories_in_var): Adjust.
1803 2011-10-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
1805         cosmetics: remove obsolete comment
1806         * automake.in (push_required_file): Remove "FIXME" comment stating
1807         that the special handling of `$config_aux_dir' breaks threaded
1808         automake: this is not true anymore after the recent commits (see
1809         in particular commit `v1.11-1225-gf672944').
1811 2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
1813         tests: fix spurious failure with Solaris /bin/sh
1814         * tests/dist-auxfile.test: Don't use redirected `:' in a loop,
1815         it hits a bug in Solaris 10 /bin/sh.
1817 2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
1819         threaded-am: better serialization for required config files
1820         With this change, we make serialization/de-serialization of
1821         required config files installs more granular, and in the process
1822         fix the bug introduced by commit `v1.11-1219-g326ecba'.
1823         * automake.in ($required_conf_file_queue): Move its declaration
1824         earlier.
1825         (require_file_internal): Add a new argument telling whether the
1826         function should act immediately or queue its action for the master
1827         thread to handle.
1828         (queue_required_conf_file): Renamed ...
1829         (queue_required_file_check_or_copy): ... to this.
1830         (require_queued_conf_file): Renamed ...
1831         (require_queued_file_check_or_copy): ... to this, and make it call
1832         `required_file_check_or_copy' instead of `require_file_internal'.
1833         (require_conf_file, handle_makefiles_threaded): Adjust and simplify
1834         accordingly.
1835         * tests/Makefile.am (XFAIL_TESTS): Remove `parallel-am.test'.
1837 2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
1839         automake: refactor, break up 'require_file_internal'
1840         This refactoring is only required in view of future changes.
1841         * automake.in (require_file_internal): Move the guts of this
1842         function ...
1843         (required_file_check_or_copy): ... into this new function.  This
1844         ensures that calls to `push_required_file' and code that copies
1845         required files are placed in separate functions; this will be
1846         very useful for reorganizing de-serialization of file installs
1847         in future changes.
1849 2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
1851         dist: separate auxiliary file instantiation from DIST_COMMON update
1852         This change simplifies the automake internals dealing with the
1853         checking, copying and distributing of required auxiliary files.
1854         With this change, a required auxiliary file is *unconditionally*
1855         added to the contents of the DIST_COMMON variable in the generated
1856         Makefile.in, before checking whether it exists, or trying to copy
1857         it (if `--add-missing' is in use).  This shouldn't be a problem,
1858         since if the checking or copying of the file fails, automake will
1859         bail out, the Makefile.in won't be created, and thus its content
1860         will not matter.  OK, this is not completely true when threaded
1861         automake is in use, but then, such a situation was also possible
1862         before this patch, so no regression here, which is enough for us.
1863         This change is the first of a series of steps aimed at fixing
1864         the regression introduced in threaded automake usage by commit
1865         `v1.11-1219-g326ecba'.
1866         * automake.in (require_file_internal): Add the required file to
1867         DIST_COMMON unconditionally.
1868         * tests/missing-auxfile-stops-makefiles-creation.test: New test.
1869         * tests/Makefile.am (TESTS): Add it.
1871 2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
1873         refactor: rename a subroutine to a more proper name
1874         * automake.in (maybe_push_require_file): Renamed ...
1875         (push_required_file): ... to this.
1876         All callers adjusted.
1878 2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
1880         dist: truly always distribute files in AC_REQUIRE_AUX_FILE
1881         This change fixes automake bug#9651.
1882         * automake.in (handle_dist): Files whose distribution is required
1883         by configure.ac are now correctly distributed even if the build-aux
1884         directory coincides with the top-level directory.
1885         * tests/Makefile.am (XFAIL_TESTS): Remove `dist-auxfile.test'.
1886         * NEWS: Update.
1888 2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
1890         dist: simplify automake code accordingly to the previous changes
1891         After the previous change `v1.11-1219-g326ecba', every Makefile.am
1892         requiring a file in the "config auxdir" will cause it to be listed
1893         in the DIST_COMMON variable of the corresponding generated
1894         Makefile.in, not only of the top-level Makefile.in.  Thus we don't
1895         need to worry anymore about trying to distribute files in the
1896         config auxdir from the top-level Makefile or the Makefile in
1897         config auxdir (if any).  This allows us to carry out some useful
1898         simplifications in the automake script.
1899         This will however cause some changes in the generated Makefile;
1900         for example, if the `PROGRAMS' primary is used only in a subdir
1901         Makefile.am, the `depcomp' script will be distributed only by
1902         `subdir/Makefile', not by the top-level Makefile.  This change
1903         can be seen as an internal detail though, and definitely warranted
1904         by the nice simplifications the current commit provides.
1905         * automake.in ($automake_will_process_aux_dir): Variable removed.
1906         (scan_autoconf_files): Adjust and simplify.
1907         (handle_makefiles_threaded): Likewise.
1908         (get_number_of_threads): Likewise.
1909         (require_file_internal): Likewise.
1910         (maybe_push_required_file): Its return value is not used anymore,
1911         so return nothing.  Add special handling for distributed files from
1912         `$config_libobj_dir'.  Also, catch "this can't happen" situations,
1913         and abort accordingly.  Fix function description to better fit its
1914         new role.
1915         * tests/libobj19.test: Extend to also check situations where the
1916         Makefile.am using $(LIBOBJS) is not the top-level one.
1917         * tests/distcom6.test: Delete, merged into ...
1918         * tests/distcom2.test: ... this test, which has been update to
1919         account for the changed automake semantics.
1920         * tests/Makefile.am (TESTS): Update.
1921         * NEWS: Update.
1923 2011-10-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
1925         dist: auxiliary files can be distributed from subdir Makefiles
1926         With this change, we make it possible for a subdir Makefile.am
1927         to distribute files in the config auxdir; while this means that
1928         some files might be copied multiple times, it simplify some logic
1929         in the automake script, and fix at least one important bug.  In
1930         fact, before this change, the auxiliary script `test-driver' was
1931         not being distributed as expected when TESTS was defined only in
1932         a subdir Makefile (which is a pretty common setup indeed).  Now
1933         this does not happen anymore: so the present change fixes automake
1934         bug#9546.
1935         Another welcome collateral effect is that `dist-auxfile-2.test'
1936         now passes.
1937         OTOH, the present changes *breaks threaded automake*.  The reason
1938         is that automake needs to serialize file installations spawned
1939         by `--add-missing' (this isn't for cosmetic reasons, but is
1940         really needed to avoid possible race conditions and botched output
1941         files).  Currently the code that installs required files is
1942         intertwined with the code that declares the DIST_COMMON variables;
1943         so, upon de-serialization, the definition of DIST_COMMON might get
1944         emitted in the wrong Makefile.in.
1945         Some follow-up refactoring in automake will soon take care of
1946         remedying this situation.  For the moment, we just declare some
1947         "parallel-am" tests as xfailing.
1948         * automake.in (maybe_push_required_file): Add ad-hoc handling for
1949         the case where the directory part of the required file is different
1950         from the subdir where the current Makefile.am resides, but is equal
1951         to the "config-aux directory" ($config_auxdir).  This is needed to
1952         allow a construct in a non-top-level Makefile.am to require a file
1953         in the config-aux directory.
1954         * tests/test-driver-is-distributed.test: Extend and adjust.  This
1955         test now passes.
1956         * tests/java-compile-run-nested.test: Call automake with the `-a'
1957         option to ensure that the `test-driver' auxiliary script gets
1958         correctly installed.  This test now passes.
1959         * tests/distcom-subdir.test: New test.
1960         * tests/dist-readonly.test: Likewise.
1961         * tests/dist-repeated.test: Likewise.
1962         * tests/dist-auxdir-many-subdirs.test: Likewise.
1963         * tests/distcom7.test: Removed, it's obsolete now.
1964         * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
1966 2011-10-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
1968         coverage: conditional contents in LOG_DRIVER variables
1969         * tests/test-driver-cond.test: New test.
1970         * tests/Makefile.am (TESTS): Add it.
1972 2011-10-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
1974         coverage: LOG_DRIVER variables can be defined through AC_SUBST
1975         * tests/test-driver-acsubst.test: New test.
1976         * tests/Makefile.am (TESTS): Add it.
1978 2011-10-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
1980         parallel-tests: warn on conditional TEST_EXTENSIONS definition
1981         Before this change, automake would have still bailed out, but
1982         with a confusing error message (about an invalid redefinition
1983         of TEST_EXTENSIONS).
1984         * automake.in (handle_tests): Warn explicitly if TEST_EXTENSIONS
1985         has conditional contents.
1986         * tests/test-extensions-con.test: New test.
1987         * tests/Makefile.am (TESTS): Add it.
1988         * NEWS: Update.
1990 2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
1992         parallel-tests: don't allow @substitutions@ in TEST_EXTENSIONS
1993         Even after the last commit `v1.11-476-g90bea64', the checks
1994         performed by automake on entries in $(TEST_EXTENSIONS) tried to
1995         allow for @substitited@ stuff.  This however ends up allowing
1996         quite brittle setups, which, most importantly, are of no real
1997         practical usefulness anyway.  So it's better to just disallow
1998         @substitutions@ in TEST_EXTENSIONS altogether, offering a clear
1999         error message, instead of risking weird bugs and unexpected
2000         behaviors in the generated Makefile.in.
2001         * automake.in ($TEST_EXTENSION_PATTERN): Turned from a regular
2002         expression ...
2003         (is_valid_test_extension): ... into this subroutine.  Don't allow
2004         generic @substitutions@ anymore (possibly making an exception for
2005         `@EXEEXT@' under the proper circumstances).
2006         * tests/test-extensions.test: Adjust and extend.  This test does
2007         not cause any internal error in automake anymore now.
2009 2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
2011         tests: fix spurious failure in 'insthook.test'
2012         * tests/insthook.test (Makefile.am): Add a proper `uninstall-hook'
2013         target to remove the symlink created by the `install-exec-hook'
2014         target; this prevents "make distcheck" from failing spuriously.
2015         Since we are at it, delete an extra blank line, and add a trailing
2016         `:' command.
2018 2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
2020         maintcheck: fix spurious failure
2021         * lib/am/distdir.am: Use `$(infodir)', not `${infodir}', to avoid
2022         complaints from the `sc_no_brace_variable_expansions' maintainer
2023         check.
2025 2011-10-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
2027         * tests/yacc-dist-nobuild.test: Add reference to relevant bug#7884.
2029 2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
2031         tests: fix spurious error in 'test-extensions.test'
2032         * tests/test-extensions.test: Call automake with the option
2033         `--add-missing', to ensure the required script `test-driver'
2034         gets installed.  Note that the test still fails due to an
2035         internal error in automake, though.
2037 2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
2039         tests: avoid few useless uses of the `-e' make option
2040         * tests/python12.test: Using `make -e' is not required to override
2041         the DESTDIR variable, since this variable shouldn't be defined in
2042         any automake-generated Makefile.in file.
2043         * tests/man2.test: Likewise.
2044         * tests/man5.test: Likewise.
2046 2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
2048         fix: make a test script executable
2049         * tests/nobase-nodist.test: Make executable.
2051 2011-10-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
2053         coverage: expose automake bug#9651
2054         * tests/dist-auxfile.test: New test, xfailing.
2055         * tests/dist-auxfile-2.test: Likewise.
2056         * tests/Makefile.am (TESTS, XFAIL_TESTS): Add them.
2058 2011-10-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
2060         parallel-tests: automake error our on invalid TEST_EXTENSIONS
2061         This change fixes automake bug#9400.
2062         * automake.in (handle_tests): Bail out if a suffix specified in
2063         TEST_EXTENSIONS would produce an invalid `xxx_LOG_COMPILER'
2064         variable or an invalid suffix rule.  Before this change, automake
2065         would have issued a confusing error messages (about invalid or
2066         non-POSIX variables being defined), and in some situations would
2067         have even produced a broken `Makefile.in' file.
2068         ($TEST_EXTENSION_PATTERN): New helper variable.
2069         * doc/automake.texi (Simple Tests using parallel-tests): Document
2070         the limitations on TEST_EXTENSIONS explicitly.
2071         * NEWS: Update.
2072         * tests/test-extensions.test: New test.
2073         * tests/Makefile.am (TESTS): Update.
2075 2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
2077         docs: don't suggest installing `.m4' files in hard-coded location
2078         This change fixes automake bug#7988.
2079         * doc/automake.texi (aclocal Options): State that the use of
2080         the `--print-ac-dir' option to determine the directory where
2081         third-party packages can install their `.m4' files is discouraged
2082         now.
2083         (Extending aclocal): Suggest telling the user about ACLOCAL_PATH.
2084         * THANKS: Update.
2085         Report by Peter Johansson.
2087 2011-09-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
2089         distuninstallcheck: fail also when only one file is left installed
2090         This change fixes automake bug#9579.
2091         * lib/am/distdir.am (distuninstallcheck): Be stricter in ignoring
2092         a potential `dir' file created by install-info and left installed.
2093         Also, be more careful about "this can't happen" kind of errors.
2094         (am__distuninstallcheck_listfiles): New internal helper macro.
2095         * tests/distcheck-pr9579.test: New test.
2096         * tests/distcheck-override-infodir.test: Likewise.
2097         * tests/Makefile.am (TESTS): Add them.
2098         * NEWS, THANKS: Update.
2099         Report by Nick Bowler.
2101 2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
2103         tap/awk: improve comments about Korn shell signal handling issues
2104         * lib/tap-driver.sh: Link an Austin Group discussion about how
2105         shells are allowed, and even encouraged, to set the special
2106         variable `$?' to values greater than 256 to report termination
2107         of a child by a signal.  Improve and extend comments about our
2108         workarounds for unusual korn shell signals' propagation.
2109         Thanks to Eric Blake for the pointers.
2111 2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
2113         maintcheck: fix usage of `cd' instead of `$(am__cd)'
2114         * lib/am/inst-vars.am (am__uninstall_files_from_dir): Use
2115         `$(am__cd)', not plain `cd'.
2117 2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
2119         tap/awk: account for unusual korn shell signal handling behaviour
2120         This change has been motivated by a testsuite failure on Debian
2121         with the AT&T Korn Shell version 93u-1.
2122         * lib/tap-driver.sh: Temporarily ignore some common signals when
2123         waiting for the test command to complete, to avoid premature exit
2124         in Korn shells that propagate to themselves signals that have
2125         killed a child process.
2126         See also related commit `v1.11-1342-g6321ad3'.
2128 2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
2130         tap/awk: handle exit statuses > 256 (seen on few korn shells)
2131         Some Korn shells, when a child process die due to signal number
2132         n, can leave in $? an exit status of 256+n instead of the more
2133         standard 128+n.  Apparently, both behaviours are allowed by
2134         POSIX, so be prepared to handle them both.
2135         This change has been motivated by a testsuite failure on Debian
2136         with the AT&T Korn Shell version 93u-1.
2137         * lib/tap-driver.sh (get_test_exit_message): Handle the described
2138         Korn Shell behaviour too.
2139         ($scriptversion): Update.
2141 2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
2143         tests: remove redundant workaround for Solaris /bin/sh
2144         After previous commit `v1.11-1424-g27a399a', some workarounds for
2145         Solaris 10 /bin/sh are no more required, and in fact they have
2146         started causing XPASS results on Solaris.
2147         * tests/tap-signal.tap: Remove unneeded workarounds for Solaris 10
2148         /bin/sh.  Some related minor code reorganizations.
2150 2011-09-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
2152         uninstall: "make uninstall" before "make install" works
2153         This change fixes automake bug#9578.
2154         * lib/am/inst-vars.am (am__uninstall_files_from_dir): New internal
2155         macro, that defines a shell code fragment to uninstall files from
2156         a given directory.
2157         * lib/am/data.am (uninstall-%DIR%%PRIMARY%): Use it, to reduce code
2158         duplication and improve consistency and correctness.
2159         * lib/am/libs.am (uninstall-%DIR%LIBRARIES): Likewise.
2160         * lib/am/lisp.am (uninstall-%DIR%LISP): Likewise.
2161         * lib/am/mans.am (uninstall-man%SECTION%): Likewise.
2162         * lib/am/python.am (uninstall-%DIR%LIBRARIES): Likewise.
2163         * lib/am/scripts.am (uninstall-%DIR%SCRIPTS): Likewise.
2164         * tests/uninstall-pr9578.test: New test.
2165         * tests/uninstall-fail.test: New test.
2166         * tests/Makefile.am (TESTS): Add them.
2167         * NEWS, THANKS: Update.
2168         Report by Nick Bowler.
2170 2011-09-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
2172         tests: fix tests on aclocal search path precedences
2173         * tests/aclocal-path-precedence.test: Call `$ACLOCAL' with the
2174         proper overridden system acdir.
2176 2011-09-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
2178         tests: fix spurious failures in tests on TAP + signals
2179         * tests/tap-signal.tap: Write the dummy test scripts as perl
2180         scripts, not as shell scripts, to work around unportabilities
2181         in the handling of signals.  In fact, even with bash, the older
2182         script were unable to properly deliver a SIGQUIT to themselves
2183         consistently.
2185 2011-09-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
2187         tests: fix spurious failure in test on ACLOCAL_PATH precedences
2188         * tests/aclocal-path-precedence.test: Do not merely append to
2189         `configure.in', it should be created from scratch.  Pass package
2190         name and version to AC_INIT as arguments, otherwise autoconf will
2191         complain.
2193 2011-09-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
2195         docs: remove mention of deprecated option `--acdir'
2196         * doc/automake.texi (aclocal Options): Remove mention of
2197         deprecated `--acdir' option.
2199 2011-09-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
2201         * NEWS: Cleanup after botched merges.
2203 2011-09-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
2205         * NEWS: Fix typo.
2207 2011-09-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
2209         docs: document planned precedence changes in aclocal search path
2210         * doc/automake.texi (Macro Search Path): Explicitly state that the
2211         lookup order for extra directories of `.m4' files will be changed
2212         in the next major release.
2213         * NEWS: Likewise.
2215 2011-09-19  Paolo Bonzini  <bonzini@gnu.org>
2216             Stefano Lattarini  <stefano.lattarini@gmail.com>
2218         aclocal: handle ACLOCAL_PATH environment variable
2219         * aclocal.in (parse_ACLOCAL_PATH): New function, parse ACLOCAL_PATH
2220         as a colon-separated list of directories to be included in the
2221         search path.
2222         * doc/automake.texi (Macro Search Path): Document new behavior and
2223         the precedence rules for various elements of the search path.
2224         * tests/aclocal-path.test: New test.
2225         * tests/aclocal-path-install.test: Likewise.
2226         * tests/aclocal-path-install-serial.test: Likewise.
2227         * tests/aclocal-path-precedence.test: Likewise.
2228         * tests/aclocal-path-nonexistent.test: Likewise.
2229         * tests/Makefile.am (TESTS): Add them.
2230         * NEWS: Update.
2231         * tests/distcheck-missing-m4.test: Extend by also checking
2232         interactions with ACLOCAL_PATH.
2233         * tests/distcheck-outdated-m4.test: Likewise, and fix a couple
2234         of botched comments since we are at it.
2236 2011-09-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
2238         tests: fix spurious failure in 'primary-prefix-valid-couples.test'
2239         * tests/primary-prefix-valid-couples.test: After commit
2240         v1.11-464-gc9dfc36, `java_JAVA' is not a valid prefix/primary
2241         combination by default anymore: one has to explicitly define
2242         $(javadir) to make it so.  So just drop `java_JAVA' from our
2243         Makefile.am  Also, since we are at it, ...
2244         (configure.in): ... remove AM_PROG_GCJ from here, as it's not
2245         really required.
2247 2011-09-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
2249         docs: deprecate JAVA primary
2250         * doc/automake.texi (Java): Deprecate the JAVA primary, stating
2251         that it will become obsolete in automake 1.12 and probably removed
2252         altogether in automake 1.13.  Reflect this in the section title,
2253         by appending the string "(deprecated feature)".
2254         (@menu, @detailmenu): Update.
2255         (Java Support with gcj): The cross-referenced support for bytecode
2256         compilation with the JAVA primary is rudimentary and deprecated.
2257         State that explicitly.
2259 2011-09-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
2261         docs: clearer distinction between `.java' with javac and with gcj
2262         * doc/automake.texi (Java support): Rename this node ...
2263         (Java support with gcj): ... to this, and change its title from
2264         "Compiling Java sources" to "Compiling Java sources using gcj".
2265         (@detailmenu, @menu, @cindex): Update and make more precise.
2266         (Java): Change the title of this node from simply "Java" to
2267         "Java bytecode compilation".
2268         (@detailmenu, @menu, @cindex): Update and make more precise.
2270 2011-09-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
2272         java: complain if java_JAVA is used but $(javadir) is undefined
2273         Fixes automake bug#8461.
2274         * automake.in (handle_java): Remove inappropriate "java" argument
2275         from the calls to `&am_install_var' and `&am_primary_prefixes'.
2276         * tests/instdir-java.test (Makefile.am): Define `$(javadir)'.
2277         * tests/javadir-undefined.test: New test.
2278         * tests/Makefile.am (TESTS): Add it.
2279         * NEWS: Update.
2281 2011-09-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
2283         parallel-tests: expose automake bug#9546
2284         * tests/test-driver-is-distributed.test: New test.
2285         * tests/Makefile.am (TESTS, XFAIL_TESTS): Add it.
2287 2011-09-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
2289         py-compile tests: more faithful 'installcheck' support
2290         * tests/py-compile-basedir.test: Use the `$am_scriptsdir' variable
2291         instead of `$testsrcdir/../lib', to test more faithfully under
2292         "make installcheck".  More uses of the `fatal_' subroutine to
2293         diagnose hard errors.
2294         * tests/py-compile-basic.test: Likewise.
2295         * tests/py-compile-basic2.test: Likewise.
2296         * tests/py-compile-destdir.test: Likewise.
2297         * tests/py-compile-env.test: Likewise.
2298         * tests/py-compile-option-terminate.test: Likewise.
2299         * tests/py-compile-usage.test: Likewise.
2301 2011-09-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
2303         tests: remove redundant settings of `errexit' shell flag
2304         * tests/aclocal-acdir.test: Do not set the `errexit' shell
2305         flag, as it is already set by `tests/defs'.
2306         * tests/aclocal-print-acdir.test: Likewise.
2307         * tests/distcheck-missing-m4.test: Likewise.
2308         * tests/distcheck-outdated-m4.test: Likewise.
2309         * tests/java-clean.test: Likewise.
2310         * tests/java-compile-install.test: Likewise.
2311         * tests/java-compile-run-flat.test: Likewise.
2312         * tests/java-compile-run-nested.test: Likewise.
2313         * tests/java-mix.test: Likewise.
2314         * tests/java-no-duplicate.test: Likewise.
2315         * tests/java-nobase.test: Likewise.
2316         * tests/java-rebuild.test: Likewise.
2317         * tests/java-sources.test: Likewise.
2318         * tests/java-uninstall.test: Likewise.
2319         * tests/javaflags.test: Likewise.
2320         * tests/nobase-nodist.test: Likewise.
2321         * tests/py-compile-basedir.test: Likewise.
2322         * tests/py-compile-basic.test: Likewise.
2323         * tests/py-compile-basic2.test: Likewise.
2324         * tests/py-compile-destdir.test: Likewise.
2325         * tests/py-compile-env.test: Likewise.
2326         * tests/py-compile-option-terminate.test: Likewise.
2327         * tests/py-compile-usage.test: Likewise.  Since we are at it,
2328         add an extra blank line, for clarity.
2330 2011-09-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
2332         automake: remove special handling of `ANSI2KNR' make variable
2333         * automake.in (define_configure_variable): Remove special-cased
2334         handling of `ANSI2KNR' variable.  Related minor simplifications.
2336 2011-09-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
2338         coverage: test interactions of `nobase_' and `nodist_'
2339         * tests/nobase-nodist.test: New test.
2340         * tests/Makefile.am (TESTS): Add it.
2342 2011-09-18  Stefano Lattarini  <stefano.lattarini@gmail.com>
2344         java: fix various blunders in test 'java-mix.test'
2345         * tests/java-mix.test: Add missing call to `set -e'.  Fix inverted
2346         semantics (`.java' files are expected *not* to be distributed by
2347         default, not the other way round).  Fix various typos in the name
2348         of the `.java' files.  Correct other minor blunders.  Improve some
2349         comments.
2351 2011-09-15  Stefano Lattarini  <stefano.lattarini@gmail.com>
2353         automake: remove code duplication in 'handle_tests'
2354         * automake.in (handle_tests): Factor out some code dealing with
2355         test extensions and rules for generation of `.log' files into ...
2356         (handle_per_suffix_test): ... this new subroutine.
2357         * tests/parallel-tests-exeext.test: New test.
2358         * tests/Makefile.am (TESTS): Update.
2360 2011-09-13  Peter Rosin  <peda@lysator.liu.se>
2362         * tests/defs [$sh_errexit_works = yes]: Output 'SIGINT' for signal 2.
2364 2011-09-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
2366         self tests: work around 'unset' spurious non-zero return value
2367         * tests/self-check-exit.tap ($init): Unset the possibly already
2368         unset variable `am_explicit_skips' when the `errexit' shell flag
2369         is not yet active, for the benefit of shell that return a non-zero
2370         status when unsetting an already-unset variable.
2372 2011-09-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
2374         tests: an explicative comment on signal-related woes
2375         * tests/self-check-exit.tap: Add pointer to a bug-autoconf
2376         discussion explaining why this test needs to temporarily block
2377         SIGINT.
2379 2011-09-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
2381         tests: also trap SIGQUIT; other fixes
2382         Some shells seems to just ignore SIGQUIT under some circumstances,
2383         even when it is not blocked; however, if the signal it trapped,
2384         the trap gets correctly executed.
2385         * tests/defs [$sh_errexit_works = yes]: Also trap SIGQUIT. Add
2386         extensive explanation of why we do so.
2387         * tests/self-check-cleanup.tap: Improve and fix to ensure that an
2388         earlier failure does not prevent the rest of the test to execute.
2389         Problem revealed by a failure in `self-check-cleanup.tap'.
2391 2011-09-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
2393         test defs: work around weird ksh behaviour w.r.t. signal handling
2394         * tests/defs (is_blocked_signal): Use perl to determine whether a
2395         signal is trapped, since trying to do it portably within the shell
2396         means opening a nasty can of worms.
2397         For more information and background, see:
2398          <https://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00004.html>
2399          <http://mail.opensolaris.org/pipermail/ksh93-integration-discuss/2009-February/004121.html>
2400          <http://www.cons.org/cracauer/sigint.html>
2402 2011-09-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
2404         cosmetics: fix various typos and grammaros
2405         * NEWS: Fix typos.
2406         * tests/py-compile-basic.test: Likewise.
2407         * tests/py-compile-basedir.test: Fix botched wording in comments.
2408         * tests/py-compile-option-terminate.test: Fix typo and incomplete
2409         comment.
2410         Suggestions by Peter Rosin.
2412 2011-09-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
2414         tests: remove redundant line from a test script
2415         * tests/test-log.test (fail.test): Remove extra `echo' command,
2416         probably due to a past copy&paste blunder.
2418 2011-09-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
2420         tests: convert another test to TAP
2421         * tests/primary-prefix-invalid-couples.test: Renamed ...
2422         * tests/primary-prefix-invalid-couples.tap: ... to this, and
2423         converted to the use of the TAP protocols (this requires only
2424         very minimal changes this time).
2425         * tests/list-of-tests.mk: Update.
2427 2011-09-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
2429         tests: fix spurious failure on fast machines
2430         * tests/aclocal-acdir.test: Avoid spurious failures due to caching
2431         issues, by cleaning the autom4te cache between all the aclocal
2432         invocations, and by always calling autoconf with the `--force'
2433         flag.
2435 2011-09-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
2437         tests: minor optimizations/simplifications in some aclocal tests
2438         * acloca11.test: Instead of running ./configure and then grepping
2439         the file it has produced, directly grep configure.  Add trailing
2440         `:' command.
2441         * acloca12.test: Likewise.
2442         * acloca10.test: Likewise.  Also, remove the autom4te caches
2443         by hand, instead of sleeping to ensure they get outdated and
2444         ignored.
2445         * aclocal9.test: Likewise.
2446         * acloca18.test: Likewise.  Also, do not remove file `foo',
2447         which is not being created anymore.
2448         * acloca20.test: The test makes sense only if the system support
2449         real symlinks, so skip it if this is not the case.  This allows
2450         for various simplifications.
2452 2011-09-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
2454         prove: avoid weird signal-related bug
2455         * tests/defs (trap): In the trap code dealing with SIGPIPE
2456         signal, ignore further signals of the same kind.
2457         See also Test::Harness issue [rt.cpan.org #70855], archived at
2458         <https://rt.cpan.org/Ticket/Display.html?id=70855>
2460 2011-09-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
2462         tests: allow use of `prove' to run automake testsuite
2463         * tests/prove-runner: New helper script; mostly it wraps
2464         our `*.test' test scripts to make them runnable by the
2465         `prove' utility.
2466         * tests/Makefile.am (EXTRA_DIST): Distribute it.
2467         (PROVE, AM_PROVEFLAGS, AM_PROVECMD): New variables.
2468         (prove, installprove): New targets, used run the automake
2469         testsuite through the `prove' utility.
2470         * tests/gen-testsuite-part: For any considered dependency,
2471         generate a variables that groups all the tests depending on
2472         it.  This is especially useful for use in the new `prove'
2473         and `installprove' targets, which cannot rely on make for
2474         inter-test dependencies, and have to handle them "by hand".
2476 2011-09-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
2478         tests defs: more namespace-safeness
2479         ($using_tap): Renamed ...
2480         ($am_using_tap): ... to this.
2481         ($parallel_tests): Renamed ...
2482         ($am_parallel_tests): ... to this.
2483         ($test_prefer_config_shell): Renamed ...
2484         ($am_test_prefer_config_shell): ... to this.
2485         ($original_AUTOMAKE): Renamed ...
2486         ($am_original_AUTOMAKE): ... to this.
2487         ($original_ACLOCAL): Renamed ...
2488         ($am_original_ACLOCAL): ... to this.
2489         * tests/defs, tests/defs-static.in, tests/gen-testsuite-part,
2490         tests/README, and all callers: Adjusted.
2491         * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Adjust, and rewrite
2492         to make future adjustments easier.
2493         * tests/defs (funcs_file_): Renamed ...
2494         (am_funcs_file): ... to this.
2495         * Makefile.am (sc_tests_obsolete_variables): New maintainer
2496         check.
2497         (syntax_check_rules): Add it.
2499 2011-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
2501         aclocal: better URL reference in error message
2502         * aclocal.in (scan_file): In the error message about underquoted
2503         definitions, reference the automake page at `www.gnu.org', not
2504         at `sources.redhat.com'.
2506 2011-09-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
2508         tests: avoid creating useless files in some test directories
2509         * tests/aclocal.test: Define `$am_create_testdir' to "empty"
2510         before sourcing ./defs, to avoid bringing in unused auxiliary
2511         files.  Related adjustments.
2512         * tests/aclocal3.test: Likewise.
2513         * tests/aclocal8.test: Likewise.
2514         * tests/aclocal9.test: Likewise.
2515         * tests/acloca10.test: Likewise.
2516         * tests/acloca11.test: Likewise.
2517         * tests/acloca12.test: Likewise.
2518         * tests/acloca15.test: Likewise.
2519         * tests/acloca16.test: Likewise.
2520         * tests/acloca17.test: Likewise.
2521         * tests/acloca18.test: Likewise.
2522         * tests/acloca20.test: Likewise.
2523         * tests/acloca21.test: Likewise.
2524         * tests/acloca23.test: Likewise.
2525         * tests/aclocal-print-acdir.test: Likewise.
2526         * tests/ar-lib.test: Likewise.
2527         * tests/compile.test: Likewise.
2528         * tests/compile2.test: Likewise.
2529         * tests/compile3.test: Likewise.
2530         * tests/compile6.test: Likewise.
2531         * tests/instsh2.test: Likewise.
2532         * tests/instsh3.test: Likewise.
2533         * tests/mdate5.test: Likewise.
2534         * tests/mdate6.test: Likewise.
2535         * tests/missing3.test: Likewise.
2536         * tests/missing5.test: Likewise.
2537         * tests/mkinst3.test: Likewise.
2538         * tests/self-check-explicit-skips.test: Likewise.
2539         * tests/self-check-report.test: Likewise.
2540         * tests/self-check-sanity.test: Likewise.
2541         * tests/tap-driver-stderr.test: Likewise.
2543 2011-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
2545         test defs: more environment cleanup
2546         * tests/defs: Also unset the XFAIL_TESTS, and various
2547         LOG_DRIVER, LOG_COMPILER variables (and corresponding
2548         flags variable).
2550 2011-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
2552         tests: allow depmod.tap to only run a subset of its tests
2553         * tests/depmod.tap: If command-line arguments are passed to the
2554         tests, they are now taken as the list of test names for which the
2555         checks are to be run.
2557 2011-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
2559         tests: allow instspc.tap to only run a subset of its tests
2560         * tests/instspc.tap: If command-line arguments are passed to the
2561         tests, they are now taken as the list of test names for which the
2562         checks are to be run.
2564 2011-09-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
2566         coverage: distcheck-hook to catch missing/outdated *.m4 files
2567         Related to automake bug#9037.
2568         * tests/distcheck-missing-m4.test: New test.
2569         * tests/distcheck-outdated-m4.test: Likewise.
2570         * tests/distcheck-hook-m4.am: New data file, used by the new
2571         tests.
2572         * tests/Makefile.am (distcheck-m4-missing.log,
2573         distcheck-m4-outdated.log): Depend on it.
2574         (EXTRA_DIST): Distribute it.
2575         (TESTS): Add the new tests.
2577 2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
2579         tests: more granularity in variables for tools overriding
2580         Among the other things, this change makes it possible to use, at
2581         the same time, an autoconf version in the automake testsuite and
2582         another one in the automake build system; even more importantly, it
2583         makes it possible to use, say, a non-GNU make implementation in the
2584         test scripts, while at the same time using GNU make to drive the
2585         execution of the automake's test suite.
2586         * tests/defs-static.in (TEX, EGREP, FGREP, SHELL, PERL, MAKE,
2587         AUTOCONF, AUTOM4TE, AUTORECONF, AUTOHEADER, AUTOUPDATE,
2588         original_AUTOMAKE, original_ACLOCAL): Allow and prefer overriding
2589         through corresponding `AM_TESTSUITE_..' variables; for example,
2590         $GREP can now be overridden by an exported `$AM_TESTSUITE_GREP'
2592 2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
2594         testsuite: fix `skip_row_' subroutine in tap-functions.sh
2595         * tests/tap-functions.sh (skip_row_): Use `seq_', not `seq', to
2596         be portable to non-GNU systems.
2597         Bug revealed by a testsuite error on Solaris.
2599 2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
2601         installcheck: support it in our own testsuite
2602         * NEWS: Update.
2603         * tests/defs-static.in ($am_running_installcheck): New variable.
2604         Initialize it to a default of "no", and sanity-check its value.
2605         ($am_datadir, $am_docdir, $am_automake_acdir, $am_system_acdir,
2606         $am_bindir, $am_scriptdir, $am_pkgvdir): New variables,
2607         initialized from AC_SUBST'ed values which are adaptively chosen
2608         depending on whether the testsuite is running in "simple" mode
2609         or in "installcheck" mode.
2610         ($MISSING): Remove, it's not really required by the testsuite.
2611         ($PATH): Update using `$am_bindir', not `$testbuilddir'.
2612         * Makefile.am (installcheck-local): New target.
2613         * lib/Automake/tests/Makefile.am (installcheck-local): New target.
2614         (AM_TESTS_ENVIRONMENT, AM_PL_LOG_FLAGS): Adaptively choose the
2615         `-I' flags for perl based on whether the tests are being run by
2616         "make check" or "make installcheck".
2617         * tests/Makefile.am (installcheck-local): New target.
2618         (defs-static): Generate it at make time, not at configure time,
2619         in order to correctly resolve all the indirections in the
2620         AC_SUBST'd variables; done with the help of ...
2621         (do_subst): ... this new macro.
2622         (EXTRA_DIST): Explicitly distribute `defs-static.in'.
2623         (CLEANFILES): Remove `defs-static'.
2624         * configure.ac (AC_CONFIG_FILES): Remove `tests/defs-static'.
2625         (AC_SUBST): Substitute also `automake_acdir', `system_acdir',
2626         `scriptdir' and `amdir' to proper values.
2627         * lib/Makefile.am (scriptdir):  Don't explicitly define anymore.
2628         * lib/am/Makefile.am (amdir): Likewise.
2629         * m4/acdir/dirlist: Remove, it's not needed anymore.  Instead
2630         use ...
2631         * m4/acdir/.placeholder: ... this file.
2632         * m4/Makefile.am (EXTRA_DIST): Update.
2633         (automake_acdir, system_acdir): Don't explicitly define anymore.
2634         * tests/aclocal-print-acdir.test: Use new `$am_...dir' variables,
2635         instead of hard-coding values with $testsrcdir and $testbuilddir,
2636         to test more faithfully under "make installcheck".
2637         * tests/amhello-binpkg.test: Likewise.
2638         * tests/amhello-cflags.test: Likewise.
2639         * tests/amhello-cross-compile.test: Likewise.
2640         * tests/ansi2knr-no-more.test: Likewise.
2641         * tests/autodist-stamp-vti.test: Likewise.
2642         * tests/auxdir.test: Likewise.
2643         * tests/check2.test: Likewise.
2644         * tests/copy.test: Likewise.
2645         * tests/multlib.test: Likewise.
2646         * tests/obsolete.test: Likewise.
2647         * tests/parallel-tests-interrupt.test: Likewise.
2648         * tests/repeated-options.test: Likewise.
2649         * tests/suffix5.test: Likewise.
2650         * tests/tap-doc2.test: Likewise.
2651         * tests/txinfo22.test: Likewise.
2652         * tests/vtexi3.test: Likewise.
2653         * tests/defs: Likewise.  Also, print the values of `$using_tap'
2654         and `$am_running_installcheck', to simplify debugging, and do
2655         some related code movings and tweakings.
2656         * tests/aclocal3.test: Update to avoid possible spurious failures
2657         when running under "make installcheck".
2658         * tests/warnings-unknown.test: Likewise.
2659         * tests/location.test: Likewise, and improve debugging input since
2660         we are at it.
2661         * tests/acloca10.test: Adapt and tweak to work also during a
2662         "make installcheck", and not to require a pre-populated `dirlist'
2663         file.
2664         * tests/acloca18.test: Likewise.
2665         * tests/dirlist2.test: Likewise.
2666         * tests/dirlist.test: Likewise, and remove an obsolete comment.
2667         * tests/README: Update.
2668         * tests/dirlist-abspath.test: New test.
2669         * tests/list-of-tests.mk: Update.
2671 2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
2673         maintcheck: fix spurious failures
2674         * tests/gen-testsuite-part (write_wrapper_script): More uses of
2675         creative quoting in the generated tests, to avoid triggering
2676         failures in the `sc_tests_Exit_not_exit' maintcheck.
2677         * Makefile.am (sc_tests_tap_plan): It's OK for auto-generated
2678         TAP tests that sources an hand-written one not to declare a TAP
2679         plan: the sourced test will do so.
2680         * tests/Makefile.am (checked_test_extensions): Don't define
2681         anymore, the default value `$(TEST_EXTENSIONS)' is correct now.
2682         (expected_list_of_tests): Don't define anymore, the default
2683         value `$(TESTS)' is correct now.
2685 2011-09-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
2687         aclocal: more granularity in acdir overriding
2688         Before this change, using the `--acdir' option caused aclocal to
2689         redefine both the directory of automake-provided m4 macros and the
2690         directory of third-party system-wide m4 macros.  With this change,
2691         we deprecate the `--acdir' aclocal option, and introduce two new
2692         options `--automake-acdir' and `--system-acdir', to allow for more
2693         granularity.
2694         * aclocal.in (@automake_includes, @system_includes,
2695         @user_includes): Fix and extend comments.
2696         (usage): Update.
2697         (handle_acdir_option): New function.
2698         (parse_arguments): Recognize new options `--system-acdir' and
2699         `automake-acdir', and handle `--acdir' using the new function
2700         above.  Simplify logic by assuming that the directory of
2701         third-party system-wide m4 files always exists.
2702         * tests/aclocal.in: Update to use the new options, instead of
2703         the deprecated. `--acdir'.
2704         * m4/dirlist: Move ...
2705         * m4/acdir/dirlist: ... here.
2706         * m4/Makefile.am (EXTRA_DIST): Update.
2707         (m4datadir): Rename ...
2708         (automake_acdir): ... to this.  Accordingly, ...
2709         (dist_m4data_DATA): ... rename this ...
2710         (dist_automake_ac_DATA): ... to this.
2711         (system_acdir): New, directory.
2712         (dist_system_ac_DATA): New, defined to an empty value; this will
2713         ensure that the $(system_acdir) directory will be created by
2714         "make install".
2715         * tests/aclocal.test: Remove check about the `--print-ac-dir'
2716         option of aclocal, it has been moved into ...
2717         * tests/aclocal-print-acdir.test: ... this new test, and quite
2718         extended.
2719         * tests/aclocal-acdir.test: New test.
2720         * tests/Makefile.am (TESTS): Add the new tests.
2721         * NEWS, bootstrap: Update.
2722         * doc/automake.texi (aclocal Options, Macro Search Path): Update.
2724 2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
2726         cosmetic: rename gen-tests-deps -> gen-testsuite-part
2727         * tests/gen-tests-deps: Renamed ...
2728         * tests/gen-testsuite-part: ... to this.
2729         * bootstrap: Update.
2730         * tests/Makefile.am ($(srcdir)/tests-deps.am): Don't generate
2731         nor include this ...
2732         ($(srcdir)/testsuite-part.am): ... do with this instead.
2733         * tests/.gitignore (tests-deps.am): Don't ignore this ...
2734         (testsuite-part.am): ... ignore this instead.
2736 2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
2738         testsuite: revamp generation of autogenerated tests
2739         With this change, we make generated tests be real scripts again
2740         -- albeit only thin layers around the tests they wrap.  It turned
2741         out that the apparently clever tricks we played by having lots
2742         of custom (and auto-generated) `..._LOG_COMPILER' variables and
2743         by having the tests in $(wrap_TESTS) not being real on-file-system
2744         scripts caused more pain and confusion than expected, for only
2745         marginal gains.  Also, that previous setup didn't interact very
2746         well with "make check RECHECK_LOGS=", since the log files for
2747         the "wrappee" tests were always considered out-of-date (which in
2748         hindsight is natural, since these log files depended on wrappee
2749         tests that didn't exist -- and weren't created).  And finally, it
2750         wasn't possible to easily and naturally run the wrappee tests
2751         from the command line -- definitely harmful for debugging and
2752         sanity checking.
2753         * tests/gen-wrap-tests: Deleted, its role subsumed into ...
2754         * tests/gen-tests-deps: ... this script, with the help of
2755         (unindent, atomic_write, build_matcher, write_wrapper_script,
2756         %test_generators): ... these new functions and variables.
2757         Other few minor fixlets and improvements.
2758         * tests/wrap-tests.sh: Delete, not needed anymore.
2759         * tests/Makefile.am ($(srcdir)/wrap-tests.am): Don't generate
2760         nor include anymore.
2761         (EXTRA_DIST): Update.
2762         (wrap_TESTS): Renamed to ...
2763         (generated_TESTS): ... this.
2764         ($(generated_TESTS)): Must have the same dependencies of
2765         `$(srcdir)/tests-deps.am'.
2766         Other minor related reordering and adjustments.
2767         * bootstrap: Do not generate `wrap-tests.am' anymore.
2768         * tests/.gitignore (wrap-tests.am): Don't ignore anymore.
2769         (*-w.test, *-w.tap): Ignore.
2770         * tests/README: Update paragraph on automatically-generated
2771         tests.
2773 2011-09-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
2775         testsuite: automatize generation of dependencies for tests
2776         * tests/gen-test-deps: New script, automatically generates
2777         dependencies for the tests.
2778         * tests/Makefile.am (EXTRA_DIST): Distribute it.
2779         ($(srcdir)/tests-deps.am): New rule.
2780         (include $(srcdir)/tests-deps.am): New inclusion.
2781         Remove hand-written dependencies for tests.  Other related
2782         updates.
2783         * tests/list-of-tests (tap_with_common_setup_TESTS,
2784         tap_other_TESTS): Delete, their content merged back into ...
2785         (handwritten_TESTS): ... this.
2786         * tests/.gitignore (tests-deps.am): New ignored file.
2787         * bootstrap: Generate `tests/tests-deps.am'.
2789 2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
2791         tests: avoid spurious failure due to bug in older TAP::Parser
2792         Older TAP::Parser versions (e.g., 3.10) erroneously convert a test
2793         number `0' into `1'; do not let this bug cause a spurious failure
2794         in our testsuite.
2795         * tests/tap-test-number-0.test: Skip if the aforementioned
2796         TAP::Parser bug is detected.
2798 2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
2800         tap/perl: be more portable to older perl versions
2801         * lib/tap-driver.pl (trap_perl_warnings_and_errors): Do not use
2802         the three-args version of the `open' builtin, it is not well
2803         supported by older perl versions (at least perl 5.6.2).
2804         (start): Add a no-op statement to pacify a "possible typo ... used
2805         only once" perl warning.
2807 2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
2809         tap/perl: be more portable to older TAP::Parser versions
2810         * lib/tap-driver.pl (start): Do not call the `ignore_exit' method
2811         on our TAP parser: it is not supported in older TAP::Parser
2812         versions (e.g., 3.10), and is not really required by our usage of
2813         the parser object.
2815 2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
2817         tests: fix spurious Cygwin failure of a test on TAP support
2818         * tests/tap-bad-prog.tap (noexec.test): Add forgotten `echo'.
2819         When trying to run it, redirect its output to /dev/null, to
2820         avoid confusing automake's testsuite own TAP driver.
2822 2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
2824         test defs: fix glitch in TAP version of `warn_' function
2825         * tests/tap-functions.sh (warn_): Do not display the warning
2826         message two times.
2828 2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
2830         tests: fix another spurious failure due to ignored signals
2831         * tests/tap-signal.test: Renamed ...
2832         * tests/tap-signal.tap: ... to this, converted to the use of the
2833         TAP protocol, and improved not to try to use/trap signals that
2834         are ignored by the parent shell (they will be forcibly ignored
2835         by all the child processes too).  Extend the test a bit since we
2836         are at it.
2837         * tests/list-of-tests.mk: Update.
2839 2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
2841         tests: fix a spurious failure due to lacking Fortran compilers
2842         * tests/silent-many-generic.test (configure.in): Cause the test
2843         to be skipped if `configure' fails to find working C++, Fortran
2844         and Fortran 77 compilers.
2846 2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
2848         self tests: more use of TAP
2849         * tests/self-check-reexec.test: Renamed ...
2850         * tests/self-check-reexec.tap: ... to this, converted to the
2851         use of TAP protocol, and extended a bit.
2852         * tests/self-check-seq.test: Renamed ...
2853         * tests/self-check-seq.tap: ... to this, and converted to the
2854         use of TAP protocol.
2855         * tests/list-of-tests.mk: Update.
2857 2011-09-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
2859         self tests: fix spurious failures when /bin/ksh do not exists
2860         * tests/self-check-reexec.test: Ensure that the non-bash shells
2861         we look do really exists.  Since we are at it, also try the name
2862         `ash', non `dash', for the Almquist Shell, for Cygwin 1.5.
2864 2011-09-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
2866         tests: more use of TAP in our own testsuite
2867         * tests/parallel-tests-interrupt.test: Renamed ...
2868         * tests/parallel-tests-interrupt.tap: ... to this, and converted
2869         to the use of TAP protocol.
2870         * tests/self-check-cleanup.test: Renamed ...
2871         * tests/self-check-cleanup.tap: ... to this, and converted to the
2872         use of TAP protocol.
2873         * tests/self-check-dir.test: Renamed ...
2874         * tests/self-check-dir.tap: ... to this, and converted to the use
2875         of TAP protocol.
2876         * tests/self-check-is_newest.test: Renamed ...
2877         * tests/self-check-is_newest.tap: ... to this, and converted to
2878         the use of TAP protocol.
2879         * tests/self-check-unindent.test: Renamed ...
2880         * tests/self-check-unindent.tap: ... to this, and converted to
2881         the use of TAP protocol.
2882         * tests/list-of-tests.mk: Update.
2884 2011-09-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
2886         self tests: sanity check on 'is_blocked_signal' function
2887         * tests/self-check-is-blocked-signal.tap: New test.
2888         * tests/list-of-tests.mk: Update.
2890 2011-09-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
2892         tests: fix spurious failures due to ignored signals
2893         * tests/defs (is_blocked_signal): New function.
2894         * tests/parallel-tests-interrupt.test: Do not try to use/trap
2895         signals that are ignored by the parent shell: they will be
2896         ignored by all the child processes too.
2897         * tests/self-check-exit.test: Likewise.
2898         * tests/self-check-cleanup.test: Likewise, and do few minor
2899         improvements and extensions since we are at it.
2901 2011-09-05  Peter Rosin  <peda@lysator.liu.se>
2903         * tests/amhello-binpkg.test: Add missing $EXEEXT usage.
2905 2011-09-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
2907         fix: list test 'vala-vpath.test' in XFAIL_TESTS
2908         * tests/Makefile.am (XFAIL_TESTS): Update.
2910 2011-09-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
2912         tests: simplify wrapper for aclocal
2913         * tests/aclocal.in: Remove use of $ACLOCAL_TESTSUITE_FLAGS and
2914         extra `-I' flags; they are not really required, since the file
2915         `m4/amversion.m4' is generated in the srcdir anyway.
2916         * tests/acloca10.test: Remove use of $ACLOCAL_TESTSUITE_FLAGS.
2917         * tests/acloca18.test: Likewise.
2918         * tests/defs.in: Don't nullify $ACLOCAL_TESTSUITE_FLAGS, and do
2919         not export it.
2921 2011-09-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
2923         tests: remove redundant settings of `errexit' shell flag
2924         * doc-parsing-buglets-colneq-subst.test: Do not set the
2925         `errexit' shell flag, as it is already set by `tests/defs'.
2926         * doc-parsing-buglets-tabs.test: Likewise.
2927         * java-empty-classpath.test: Likewise.
2928         * vala-vpath.test: Likewise.
2930 2011-09-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
2932         tests: more uses of `$top_testsrcdir', in the `amhello' tests
2933         * tests/amhello-binpkg.test: Use `$top_testsrcdir' instead
2934         of `$testsrcdir/..'.
2935         * tests/amhello-cflags.test: Likewise.
2936         * tests/amhello-cross-compile.test: Likewise.
2938 2011-09-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
2940         tests: avoid creating useless files in the `amhello' tests
2941         * tests/amhello-binpkg.test: Define `$am_create_testdir' to
2942         "empty" before sourcing ./defs, to avoid bringing in unused
2943         auxiliary files.
2944         * tests/amhello-cflags.test: Likewise.
2945         * tests/amhello-cross-compile.test: Likewise.
2947 2011-09-02  Stefano Lattarini  <stefano.lattarini@gmail.com>
2949         coverage: vala support failing for VPATH from-scratch builds
2950         * tests/vala-vpath.test: New test, xfailing.
2951         * tests/Makefile.am (TESTS): Update.
2952         * THANKS: Update.
2953         From a report by Zbigniew Jędrzejewski-Szmek.
2954         Related to automake bug#8753.
2956 2011-09-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
2958         docs: report few more automake parsing limitations
2959         Partly motivated by automake bug#8360.
2960         * doc/automake.texi (General Operation): Report few more automake
2961         limitations w.r.t. parsing of unusual makefile constructs.  Related
2962         minor reorderings.
2963         * tests/doc-parsing-buglets-colneq-subst.test: New test.
2964         * tests/doc-parsing-buglets-tabs.test: Likewise.
2965         * tests/Makefile.am (TESTS): Update.
2967 2011-09-01  Stefano Lattarini  <stefano.lattarini@gmail.com>
2969         automake: fix regression due to de-ansification support removal
2970         The last change `v1.11-947-g136b489' removed code that automake
2971         was using to decide whether binary objects were built by the
2972         generated Makefile.in, so that it could avoid to emit unneeded
2973         code when this was not the case.  Re-introduce such code in a
2974         less-obfuscated form, and add a test to ensure we don't regress
2975         again.
2976         * automake.in ($must_handle_compiled_objects): New global
2977         variable, telling whether the generated Makefile has to build
2978         compiled objects.
2979         (initialize_per_input): Reset it.
2980         (handle_programs, handle_libraries, handle_ltlibraries): Set
2981         it to a true value when required.
2982         (handle_compile): Don't generate any code if the variable
2983         `$must_handle_compiled_objects' is not set to a true value.
2984         * tests/no-extra-makefile-code.test: New test.
2985         * tests/Makefile.am (TESTS): Add it.
2987 2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
2989         automake: cleanups after de-ansification support removal (2)
2990         * automake.in ($get_object_extension_was_run): Remove, it's not
2991         really needed anymore.
2992         (&get_object_extension): Remove, it's a no-op now.
2993         All callers adjusted.
2995 2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
2997         automake: cleanups after de-ansification support removal (1)
2998         * automake.in (lang_c_rewrite, handle_single_transform): Rename
2999         variable `$nonansi_obj' to `$obj'.
3001 2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
3003         ansi: remove obsolete code/files for de-ANSI-fication support
3004         * lib/ansi2knr.1, lib/ansi2knr.c: Deleted.
3005         * lib/Makefile.am (dist_pkgvdata_DATA): Do not list them anymore.
3006         * lib/am/ansi2knr.am: Delete.
3007         * lib/am/Makefile.am (dist_am_DATA): Do not list it anymore.
3008         * lib/Automake/Variable.pm (%_am_macro_for_var): Remove entries for
3009         `ANSI2KNR' and `U'.
3010         * m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Don't care anymore
3011         about possible definition of the `$U' variable.
3012         * automake.in (@common_files): Drop `ansi2knr.1' and `ansi2knr.c'.
3013         (struct): Remove scalar field `ansi'.
3014         All callers adjusted.
3015         (&lang_c_finish, %de_ansi_files): Remove, they're not required
3016         anymore.
3017         All callers adjusted.
3018         ($get_object_extension_was_run): Fix typo in comment.
3019         (&get_object_extension): Drop code dealing with de-ansification;
3020         this function basically a no-op now, but is required to properly
3021         initialize `$get_object_extension_was_run' variable.
3022         (&handle_languages, &handle_compile, &lang_c_rewrite): Drop code
3023         dealing with de-ansification.
3025 2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
3027         ansi: reject attempts to use automatic de-ANSI-fication support
3028         * tests/protos.m4 (AM_C_PROTOTYPES): Error out whenever called.
3029         * lib/Automake/Options.pm (_process_option_list ): Error out
3030         with a proper error message when the `ansi2knr' option is used.
3031         Related updates to comments.
3032         * tests/depacl2.test: Update.
3033         * tests/ansi2knr-no-more.test: New test.
3034         * tests/Makefile.am (TESTS): Add it.
3035         * NEWS: Update.
3037 2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
3039         tests: remove tests about obsolete de-ANSI-fication support
3040         * tests/ansi.test: Delete.
3041         * tests/ansi10.test: Likewise.
3042         * tests/ansi2.test: Likewise.
3043         * tests/ansi2knr-deprecation.test: Likewise.
3044         * tests/ansi3.test: Likewise.
3045         * tests/ansi3b.test: Likewise.
3046         * tests/ansi4.test: Likewise.
3047         * tests/ansi5.test: Likewise.
3048         * tests/ansi6.test: Likewise.
3049         * tests/ansi7.test: Likewise.
3050         * tests/ansi8.test: Likewise.
3051         * tests/ansi9.test: Likewise.
3052         * tests/cxxansi.test: Likewise.
3053         * tests/libobj8.test: Likewise.
3054         * tests/subobj3.test: Likewise.
3055         * tests/Makefile.am (TESTS): Update.
3057 2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
3059         docs: remove description of de-ANSI-fication support from manual
3060         * doc/automake.texi (Auxiliary Programs): Remove mention of
3061         `ansi2knr.c' and `ansi2knr.1'.
3062         (Obsolete Macros): Remove mention of `AM_C_PROTOTYPES'.  Do not
3063         index it nor variables `ANSI2KNR' and `U' anymore.
3064         (List of Automake options): Remove mention of `ansi2knr' option,
3065         and obsolete entries for concept and option indexes.
3066         (Optional): Remove entry about `AM_C_PROTOTYPES'.
3067         (@c LocalWords): Remove `ansi' and `knr'.
3068         (@menu, @detailmenu): Remove entries about de-ANSI-fication
3069         support.
3071 2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
3073         tests: better respect of TAP usage in wrapped tests
3074         * tests/gen-wrap-tests: Partial rewrite to take into account the
3075         possibility that the wrapped test uses the TAP protocol.  This
3076         complicates the code quite a bit, but is essential to ensure real
3077         correctness in all the wrapped scripts.
3078         * tests/wrap-tests.sh: Update, and add few more sanity checks.
3080 2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
3082         tests: use both perl and awk implementations for tests on TAP
3083         * tests/gen-wrap-tests (get_list_for_pltap): New function, gets
3084         the list of tests that check the Automake TAP support.
3085         ($defines_for_pltap): New variable.
3086         ($wrapper_type_list): Add "pltap".
3087         * tests/defs-static.in: Check that `$am_tap_implementation' is
3088         not exported in the environment.
3089         * tests/self-check-env-sanitize.tap: Update.
3091 2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
3093         tests: two single auxiliary scripts to run/generate wrapped tests
3094         * tests/config-shell-tests.sh, tests/parallel-tests.sh,
3095         tests/gen-config-shell-tests, tests/gen-parallel-tests: Deleted,
3096         their roles taken over by ...
3097         * tests/wrap-tests.sh, tests/gen-wrap-tests: ... these new more
3098         general scripts.
3099         * tests/Makefile.am (EXTRA_DIST): Distribute the new scripts, and
3100         do not distribute the obsolete ones anymore.
3101         ($(srcdir)/parallel-tests.am, $(srcdir)/config-shell-tests.am): Do
3102         not include nor generate anymore, they have been superseded by ...
3103         ($(srcdir)/wrap-tests.am): ... this new fragment, automatically
3104         generated by `gen-wrap-tests'.
3105         (PTEST_LOG_COMPILER, SHTST_LOG_COMPILER): Delete, they are now
3106         defined in the new `wrap-tests.am' makefile fragment.
3107         (TEST_EXTENSIONS): Do not append to it anymore, that is now done
3108         by the new `wrap-tests.am' makefile fragment above.
3109         ($(parallel_tests:.ptest=.log), $(config_shell_tests:.shtst=.log),
3110         $(parallel_tests), $(config_shell_tests): Remove this dependencies,
3111         superseded by ...
3112         ($(wrap_TESTS), $(wrap_LOGS)): ... these ones.
3113         (MAINTAINERCLEANFILES): Delete, it's not used anymore.
3114         (TESTS): Do not contain anymore `$(config_shell_tests)' nor
3115         `$(parallel_tests)', contain `$(wrap_TESTS)' instead, as defined
3116         by `$(srcdir)/wrap-tests.am'.
3117         Other related minor edits and reorderings.
3118         * bootstrap, tests/.gitignore, tests/README: Update.
3120 2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
3122         tests: list of tests placed in a separate Makefile fragment
3123         This change allows us to easily use make instead of by-hand (and
3124         more fragile) grepping to extract the list of hand-written tests
3125         from our Makefiles.
3126         * bootstrap (BOOTSTRAP_MAKE): New variable.
3127         Use it to run make in order to extract the list of hand-written
3128         tests from ...
3129         * tests/list-of-tests.mk: ... this new file, where they are
3130         listed in ...
3131         (handwritten_TESTS, tap_with_common_setup_TESTS, tap_other_TESTS):
3132         ... these variables, extracted respectively from ...
3133         * tests/Makefile.am (handwritten_tests, tap_other_tests,
3134         tap_with_common_setup_tests): ... these older variables, now
3135         removed.
3136         (EXTRA_DIST, expected_list_of_tests): Update w.r.t. the variable
3137         names' changes.
3138         (include $(srcdir)/list-of-tests.mk): New inclusion.
3139         Remove an overkill indirection, and with it ...
3140         (tap_with_common_setup_logs): ... this variable.
3141         ($(srcdir)/parallel-tests.am, $(srcdir)/config-shell-tests.am):
3142         Update to match the new interface of ...
3143         (gen-parallel-tests, gen-config-shell-tests): ... these scripts,
3144         that now read the list of tests from the standard input.
3146 2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
3148         tests: prefer AM_... variables to user-reserved ones in Makefile
3149         * tests/Makefile.am (TAP_LOG_DRIVER_FLAGS): Renamed ...
3150         (AM_TAP_LOG_DRIVER_FLAGS): ... to this.
3152 2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
3154         tests: some minor fixlets w.r.t. TAP-based tests
3155         The variable that is used by our test scripts to decide whether
3156         they are "plain" or TAP-based is `using_tap'; however, some
3157         peripheral sanity checks and sanitization code in our testsuite
3158         were erroneously using the `use_tap' variable instead.  Fix that.
3159         * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Nullify `using_tap',
3160         not `use_tap'.
3161         * tests/defs-static.in: Check that `using_tap', not `use_tap',
3162         is not exported.
3163         * tests/self-check-env-sanitize.test: Update.
3165 2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
3167         tests: avoid re-running a test with the 'parallel-tests' option
3168         * tests/backcompat5.test (parallel_tests): Define to "no", to
3169         prevent the generation of a sibling test script that uses the
3170         'parallel-tests' driver.  That would be useless anyway, since
3171         we manually override the contents of configure.in, thus clobbering
3172         the `parallel-tests' option in AM_INIT_AUTOMAKE.
3173         Fix a typo in comments since we are at it.
3175 2011-08-29  Stefano Lattarini  <stefano.lattarini@gmail.com>
3177         tests: defaults to awk+shell driver in tests on TAP support
3178         * tests/defs ($am_tap_implementation): Default to "shell", not
3179         to "perl".
3181 2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
3183         tests: list "forgotten" test script in TESTS
3184         * tests/Makefile.am (TESTS): Also list ...
3185         * tests/java-empty-classpath.test: ... this test.  Since we are
3186         at it, remove trailing whitespace from a couple of lines.
3188 2011-08-25  Eric Blake  <eblake@redhat.com>
3190         ylwrap: fix unusual indentation whitespace
3191         * lib/ylwrap: Convert tabs to spaces.
3192         Reported by Karl Berry.
3194 2011-08-28  Stefano Lattarini  <stefano.lattarini@gmail.com>
3196         testsuite: different test scripts cannot share the same basename
3197         If two test scripts have the same basename, they will end up
3198         sharing the same log file, leading to all sort of undefined and
3199         undesired behaviours.  Add a Makefile check verifying that this
3200         is not the case.
3201         * tests/test-logs-repeated.test: New test, verifying previously
3202         unspecified semantics (in the definition of $(TEST_LOGS) from
3203         $(TESTS)) that we use in our new check.
3204         * tests/Makefile.am (TESTS): Update.
3205         (check-no-repeated-test-name): New .PHONY check.
3206         (check-local): Depend on it.
3208 2011-08-26  Stefano Lattarini  <stefano.lattarini@gmail.com>
3210         tests: fix spurious failure for awk implementation of TAP driver
3211         * tests/tap-realtime.test: The awk+shell implementation of the TAP
3212         driver must "read ahead" of one line in order to catch the exit
3213         status of the test script it runs.  So, in the TAP-producer script
3214         here, be sure to echo one "dummy" line after each TAP result line
3215         in order not to cause false positives.
3217 2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
3219         tap/awk: allow escaping of TAP directives
3220         * lib/tap-driver.sh (setup_result_obj): Handle escaping of TAP
3221         directives in a way tat is (mostly) compatible by what is done
3222         by the TAP::Parser module.
3223         With this change, the tests `tap-escape-directive.test' and
3224         `tap-escape-directive-2.test' now also pass with the shell/awk
3225         implementation of the TAP driver.
3227 2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
3229         coverage: more about escaping of TAP directives
3230         * tests/tap-escape-directive.test: Make grepping of testsuite
3231         progress output slightly stricter.
3232         * tests/tap-escape-directive-2.test: New test (failing with the
3233         awk implementation of the TAP driver).
3234         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3236 2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
3238         tap: improve syncing between awk+shell and perl implementations
3239         * lib/tap-driver.pl (stringify_test_result): Renamed ...
3240         (stringify_result_obj): ... to this.  Break up a clause in the
3241         long "if/elsif/.../else" construct to avoid unaesthetic line
3242         breaks and to be more synced with the sibling function in
3243         `tap-driver.sh'.  Rename the `$result', `$PASS' and `$FAIL'
3244         variables to respectively `$result_obj', `$COOKED_PASS' and
3245         `$COOKED_FAIL', for clarity and better syncing.
3246         (handle_tap_test): Renamed  ...
3247         (handle_tap_result): ... to this, and change the name of the
3248         `$test' local variable to `$result_obj'.
3249         (extract_comment): Reimplement using the simpler `index' and
3250         `substr' builtins, rather than with more advanced uses of
3251         regular expressions.
3252         (%test_results, @test_results): Renamed respectively ...
3253         (%test_results_seen, @test_results_list): ... to these, and
3254         related adjustments throughout the `TEST_RESULTS' block.
3255         (main, get_global_test_result): Refactor and do some cosmetic
3256         changes to make these functions clearer and better synced with
3257         sibling code in `tap-driver.sh'.
3258         Other minor cosmetic and typo fixes.
3259         * lib/tap-driver.sh (extract_tap_comment): Remove outdated
3260         "FIXME" comments.
3261         (get_global_test_result): Small reordering to make it better
3262         synced with its sibling function in `tap-driver.pl'.
3263         (stringify_result_obj): Consistently use `result_obj' as the
3264         parameter name.
3265         Other minor cosmetic and typo fixes.
3267 2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
3269         tap/perl: don't redirect perl warnings/errors to log files
3270         With this change, the test `tap-driver-stderr.test' also passes
3271         with the perl implementation of the TAP driver.
3272         * lib/tap-driver.pl (start): Save the original stderr into the
3273         `OLDERR' file handle, and call ...
3274         (trap_perl_warnings_and_errors): ... this new function, trapping
3275         the `__WARN__' and `__DIE__' "pseudo-signals" to ensure that the
3276         warning and error messages goes to that original stderr stream.
3277         Since we are at it, be sure to prepend all possible "die" message
3278         with the name of the script as given by the `$ME' variable.
3280 2011-08-25  Stefano Lattarini  <stefano.lattarini@gmail.com>
3282         tap/perl: add copyright notice, version string, and emacs stuff
3283         * lib/tap-driver.pl: Add proper copyright notice and bug reporting
3284         address.  Remove obsolete heading comments.  Add trailing comments
3285         for emacs w.r.t. code-formatting rules and automatic updating of
3286         the date-based script version saved into the `$VERSION' variable.
3287         ($VERSION): Define to the current UTC date.
3289 2011-08-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
3291         tap/awk: don't redirect awk stderr to log files
3292         * lib/tap-driver.sh: Handle the file descriptors redirections
3293         more smartly, to avoid sending error messages from awk (about
3294         e.g. syntax or I/O errors) to the log files instead that to the
3295         console.
3296         * tests/tap-driver-stderr.test: New test, verifying the improved
3297         driver behaviour.  Notice that this test still fails when using
3298         the perl implementation of the TAP driver.
3299         * tests/Makefile.am (tap_other_tests): Update.
3301 2011-08-24  Stefano Lattarini  <stefano.lattarini@gmail.com>
3303         tap/awk: remove obsolete "FIXME" comment
3304         * lib/tap-driver.sh: Remove obsolete "FIXME" comment about our
3305         driver losing the exit status of the tested program; this issue
3306         has been solved in precedent commit `v1.11-1052-gd630a0d'.  Fix
3307         an unrelated typo in comments since we are at it.
3309 2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
3311         testsuite: avoid spurious failure on Solaris
3312         * tests/tap-signal.test (signal_caught): Fix a regression from
3313         commit `v1.11-1052-gd630a0d' that was causing this test to fail
3314         spuriously on Solaris (due to an already worked-around Solaris
3315         /bin/sh bug, see commit `v1.11-981-g0ef3ef5').
3317 2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
3319         testsuite: use the new awk+shell TAP driver in our own testsuite
3320         * tests/Makefile.am (TAP_LOG_DRIVER): Redefine to use the new
3321         awk+shell tap driver, which should be complete enough for use in
3322         a "controlled" production environment.
3324 2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
3326         tap/awk: handle non-zero exit status from the test command
3327         * lib/tap-driver.sh (get_test_exit_message): New function in the
3328         awk script, used to extract the exit status of the test program,
3329         or at least a good guess of it.
3330         (write_test_results): Use it, reporting an ERROR result if it
3331         detects that the test program exited with a non-zero status.
3332         * tests/tap-signal.test: Account for the differences in the
3333         error messages generated by the awk and perl TAP drivers.  Fix
3334         an unrelated typo in comments since we are at it.
3336 2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
3338         tap/awk: prepare to fetch the exit status of the test command
3339         * lib/tap-driver.sh: Rewrite some logic in the main parsing loop,
3340         to make it possible to read the exit status of the test command
3341         from the last line of the input stream.
3343 2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
3345         tap/awk: refactor for future changes
3346         * lib/tap-driver.sh: Rewrite the awk script so that the parsing
3347         of the input stream is implemented as a hand-rolled loop in the
3348         BEGIN block, using the `getline' builtin.
3350 2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
3352         testsuite: avoid spurious failure if rst2html program is missing
3353         * tests/tap-html.test ($required): Require `rst2html'.
3355 2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
3357         tap/awk: support Solaris /usr/xpg4/bin/awk
3358         * lib/tap-driver.sh: Use `\t', not `\\t', to represent tabulation
3359         character in regexps, even when inside double-quoted strings; that
3360         seems to be more portable to Solaris 10 XPG4 awk.
3362 2011-08-22  Stefano Lattarini  <stefano.lattarini@gmail.com>
3364         tap/awk: support Solaris /usr/bin/nawk
3365         * lib/tap-driver.sh (close_or_die): Remove, the use of the `close'
3366         builtin in there was confusing /usr/bin/nawk from Solaris 10 into
3367         a syntax error.
3368         (write_test_results): Simply use `close' on the `*.trs' file, that
3369         should be enough.
3371 2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
3373         tap/awk: correctly extract message from SKIP plans
3374         * lib/tap-driver.sh (/^1\.\.0+[ \t]*#/): Add a forgotten `?' to
3375         the regex used to extract the skip message from a "1..0" TAP plan.
3376         * tests/planskip.test: Check for the just-fixed bug.
3377         * tests/tap-planskip-unplanned-corner.test: Don't be too strict
3378         w.r.t. the formatting of the "skip whole test" message, to avoid
3379         failing due to bugs irrelevant for this test (like the one just
3380         fixed).
3382 2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
3384         tap/awk: support colorized output
3385         * lib/tap-driver.sh: Pass definition of colors to the BEGIN block
3386         of the awk script, using ...
3387         ($init_colors): ... this new variable, which supersedes ...
3388         ($red, $grn, $lgn, $blu, $mgn, $std): ... these variables, which
3389         have been consequently removed.
3390         ($color_tests): We don't have to pass this anymore to the awk
3391         script, so do not convert it to a numeric boolean.
3392         (decorate_result): Implement for real.
3393         With this change, the test 'tap-color.test' now passes.
3395 2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
3397         tap: real (but still incomplete) awk implementation of TAP driver
3398         * lib/tap-driver.sh: Add an incomplete, but mostly working,
3399         implementation of a TAP parser and driver in awk.  It doesn't yet
3400         support colorized output, fetching of exit status from test
3401         programs, nor a way to escape TAP directives in TAP result lines,
3402         but passes all the tests of TAP support in the automake testsuite,
3403         apart from the following ones:
3404           - tap-color.test
3405           - tap-escape-directive.test
3406           - tap-exit.test
3407           - tap-missing-plan-and-bad-exit.test
3408           - tap-passthrough-exit.test
3409           - tap-planskip-badexit.test
3410           - tap-planskip-unplanned-corner.test
3411           - tap-signal.test
3412         Tested on Debian GNU/Linux with GNU awk 3.1.7 and 3.0.2, "original
3413         awk" 2010-05-23-1, and mawk 1.3.3-15 (with which also the test
3414         `tap-realtime.test' fails, in addition to those listed above).
3416 2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
3418         testsuite: fix spurious failure due to Solaris 'wc' incompatibility
3419         * tests/tap-number-wordboundary.test ($planned): Strip any extra
3420         whitespace from the output of `wc', to cater to Solaris 10.
3422 2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
3424         coverage: keyword "SKIP" in TAP plan is case-insensitive
3425         * tests/tap-planskip-case-insensitive.test: New test.
3426         * tests/tap-planskip.test: Remove now-duplicated checks.
3427         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3429 2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
3431         coverage: ambiguous use of TAP "TODO"/"SKIP" directives
3432         * tests/tap-ambiguous-directive.test: New test.
3433         * tests/tap-todo-skip-together.test: Reference it in heading
3434         comments.
3435         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3437 2011-08-21  Stefano Lattarini  <stefano.lattarini@gmail.com>
3439         coverage: non-directive comments in TAP results are preserved
3440         * tests/tap-result-comment.test: New test.
3441         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3443 2011-08-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
3445         coverage: TAP result number followed by non-whitespace word boundary
3446         * tests/tap-number-wordboundary.test: New test.
3447         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3449 2011-08-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
3451         coverage: a TAP result numbered "0" is always out-of-order
3452         * tests/tap-test-number-0.test: New, checks that a test result
3453         numbered as 0 is to be considered out-of-order; this is
3454         consistent with the behaviour of the `prove' utility.
3455         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3457 2011-08-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
3459         cosmetics: fix botched indentation in perl TAP driver
3460         * lib/tap-driver.pl (main, Getopt::Long::GetOptions): Fix
3461         improper or botched indentation.
3463 2011-08-20  Stefano Lattarini  <stefano.lattarini@gmail.com>
3465         coverage: some more tests on corner cases of TAP support
3466         * tests/tap-no-spurious.test: Extend checks verifying that a line
3467         matching, say, the regex "^ok[a-zA-Z0-9_]" is *not* considered a
3468         TAP result.
3469         * tests/tap-no-spurious-numbers.test: New test, checking that our
3470         TAP driver doesn't spuriously recognize as TAP result numbers what
3471         is not (even if it seems pretty close).
3472         * tests/tap-negative-numbers.test: New test, checking that our
3473         TAP driver doesn't spuriously recognize negative TAP result
3474         numbers, but correctly interprets them as test descriptions
3475         instead.
3476         * tests/tap-plan-leading-zero.test, tap-numbers-leading-zero.test:
3477         New tests, checking how our driver fares in recognizing numbers
3478         with leading zeroes in TAP results or TAP plans.
3479         * tests/tap-planskip-malformed.test: New test, checking that a
3480         malformed TAP plan is not recognized as a valid plan.
3481         * tests/tap-plan-whitespace.test: New test, checking that a TAP
3482         plan line with trailing whitespace is recognized and handled
3483         correctly.
3484         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3486 2011-08-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
3488         testsuite: various fixlets and tweakings
3489         * tests/seenc.test: Make grepping of automake stderr stricter.
3490         Add a trailing `:' command.
3491         * tests/symlink.test: Likewise.  Also, define `$am_create_testdir'
3492         to "empty" to avoid bringing in unused auxiliary files (only to
3493         have to remove them right away), and use proper m4 quoting in
3494         `configure.in'.
3495         * tests/vpath.test: Make grepping of generated `Makefile.in'
3496         slightly stricter.  Prefer trailing `:' over trailing `Exit 0'.
3497         * tests/suffix6c.test: Unset OBJEXT to avoid interferences from
3498         the environment.
3499         * tests/suffix12.test: Do not whitespace-indent `##' comments
3500         when they are embedded in a makefile rule: having them indented
3501         is not part of the Automake API, and might cause failures with
3502         e.g., Tru64 make.
3503         * tests/syntax.test: Simplify the `Makefile.am' to ensure that
3504         automake doesn't fail for the wrong reasons.  Make grepping of
3505         automake stderr slightly stricter.
3506         * tests/test-harness-vpath-rewrite.test: Remove useless variable
3507         definition from `Makefile.am'.
3508         * tests/test-driver-custom-multitest.test: Fix typo in comments.
3509         * tests/self-check-me.tap: Fix minor typo in test description.
3510         * tests/vars3.test: Make grepping of automake stderr stricter
3511         and safer.
3512         * tests/version6.test: Add sanity check, verifying that the
3513         version number extracted from `automake --version' output seems
3514         legit.
3515         * tests/auxdir2.test: Renamed ...
3516         * tests/auxdir-compauted.tap: ... to this, and converted to the
3517         use of TAP.
3518         * tests/auxdir4.test: Renamed ...
3519         * tests/auxdir-unportable.tap: ... to this, and converted to the
3520         use of TAP.
3521         * tests/auxdir3.test: Renamed ...
3522         * tests/auxdir-misplaced.test: ... to this.
3523         * tests/auxdir5.test: Renamed ...
3524         * tests/auxdir-nonexistent.test: ... to this.
3525         * tests/auxdir9.test: Renamed ...
3526         * tests/auxdir-autodetect.test: ... to this.
3527         * tests/Makefile.am (TESTS): Update.
3528         (XFAIL_TESTS): Remove `auxdir2.test'.
3530 2011-08-19  Stefano Lattarini  <stefano.lattarini@gmail.com>
3532         testsuite: fix some redundant autotools calls in tests on TAP
3533         * tests/tap-deps.test: Do not call autotools and configure; there
3534         is no need to, since this script sources `tap-setup.sh'.
3535         * tests/tap-empty-diagnostic.test: Likewise.
3536         * tests/tap-escape-directive.test: Likewise.
3537         * tests/tap-fancy2.test: Likewise.
3538         * tests/tap-no-spurious.test: Likewise.
3539         * tests/tap-out-of-order.test: Likewise.
3541 2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
3543         * THANKS (Daniel Richard G.): Update e-mail address.
3545 2011-08-16  Daniel Richard G. <skunk@iskunk.org>  (tiny change)
3546             Stefano Lattarini  <stefano.lattarini@gmail.com>
3548         java: avoid compilation errors when CLASSPATH is empty
3549         * lib/am/java.am (CLASSPATH_ENV): When redefining `$CLASSPATH',
3550         do not append an empty component in case the previous value of
3551         CLASSPATH is empty or unset.
3552         * tests/java-empty-classpath.test: New test.
3553         * tests/Makefile.am (TESTS): Update.
3554         Fixes automake bug#9306.
3556 2011-08-16  Stefano Lattarini  <stefano.lattarini@gmail.com>
3558         parallel-tests: no more spurious successes for FreeBSD make
3559         Work around a bug of FreeBSD make bug that was causing the
3560         automake-generated "check" target to complete with success
3561         even if some tests failed; this happened only when FreeBSD
3562         make was run in concurrent mode (as in, e.g., "make -j2
3563         check").  The bug is not present in NetBSD make.
3564         This change fixes automake bug#9245:
3565          <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9245>
3566         See also FreeBSD PR bin/159730:
3567          <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730>
3568         * lib/am/check.am [%?PARALLEL_TESTS%] $(TEST_SUITE_LOG): Use a
3569         more "safe" (and apparently redundant) idiom to exit with error,
3570         so that the non-zero exit status is picked up also by FreeBSD
3571         make when it's running in concurrent mode.
3572         * NEWS: Update.
3573         * tests/check-concurrency-bug9245.test: New test.
3574         * tests/Makefile.am (TESTS): Update.
3576 2011-08-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
3578         hacking: we now require autoconf 2.68
3579         * HACKING ("Working in git"): Use autoconf and autom4te 2.68,
3580         not 2.67, in the examples.
3582 2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
3584         tap: improve granularity for tests on problematic TAP messages
3585         * tests/tap-message-0.test: Break up into ...
3586         * tests/tap-msg0-result.test, tests/tap-msg0-directive.test,
3587         tests/tap-msg0-planskip.test, tests/tap-msg0-misc.test,
3588         tests/tap-msg0-bailout.test: ... these new tests, and extend
3589         a little.
3590         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3592 2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
3594         tap: correctly handle string "0" in TAP messages
3595         * lib/tap-driver.pl (is_null_string): New function, can be used
3596         to determine whether a given string variable is empty or undefined.
3597         Useful to avoid pitfalls like:
3598           if ($message) { print "$message\n"; }
3599         which wouldn't print anything if $message is the literal "0".
3600         (handle_tap_test, handle_tap_plan, handle_tap_bailout): Use it,
3601         to avoid missing messages composed only by a literal "0" in TAP
3602         result descriptions and in skip, todo and bailout explanations.
3603         * tests/tap-message-0.test: Enhance.
3604         * tests/Makefile.am (XFAIL_TESTS): Remove it, it passes now.
3606 2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
3608         tap: a minor simplification in the perl TAP driver
3609         * lib/tap-driver.pl: The `--disable-hard-errors' option is a
3610         no-op, so just ignore it and its argument.
3612 2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
3614         parallel-tests: fix help screen for test driver scripts
3615         * lib/tap-driver.pl ($USAGE): The `--trs-file' option is mandatory
3616         too.
3617         * lib/tap-driver.sh (print_usage): Likewise.
3618         * lib/test-driver (print_usage): Likewise.
3619         ($scriptversion): Update.
3621 2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
3623         tap: add a dummy TAP driver script implemented in shell + awk
3624         The user can also now decide which implementation of the TAP driver
3625         to use in the testsuite by defining the `$am_tap_implementation'
3626         variable to either "perl" or "shell".  Future enhancements will
3627         allow the testsuite to automatically run the test scripts on TAP
3628         support with both the TAP driver implementations, to improve
3629         coverage.
3630         * tests/defs (fetch_tap_driver): Honor the `$am_tap_implementation'
3631         variable to decide which implementation of the TAP driver to fetch.
3632         ($am_tap_implementation): Default to "perl".
3633         * tests/tap-common-setup.test: Do not fetch the TAP driver, the
3634         code in tap-setup.sh does that already (and respecting runtime
3635         overriding of `$am_tap_implementation').
3636         * lib/tap-driver: Renamed ...
3637         * lib/tap-driver.pl: ... to this, and ...
3638         ($ME): ... adjusted this.
3639         * doc/automake.texi: Adjust to the renaming.
3640         * tests/Makefile.am (TAP_LOG_DRIVER): Likewise.
3641         * tests/tap-doc2.test: Likewise.
3642         * lib/tap-driver.sh: New script, still mostly dummy.
3643         * lib/Makefile.am (dist_script_DATA): Update, and since we are at
3644         it, rewrite it to make it easier to add new entries in the future.
3646 2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
3648         testsuite: refactor tests on TAP support in view of future changes
3649         * tests/defs (fetch_tap_driver): New subroutine; it fetches the
3650         automake-provided TAP driver from the `lib/' directory into the
3651         current directory, and edits its shebang line so that it will be
3652         run with the perl interpreter determined at configure time.
3653         * tests/tap-setup.sh: Use it.
3654         * tests/tap-common-setup.test: There's no need to AC_SUBST `PERL'
3655         anymore, nor to use it in the Makefile to run the TAP driver.
3656         Also, use the `fetch_tap_driver' function instead of copying the
3657         `tap-driver' auxiliary script directly.
3658         * tests/tap-bad-prog.tap: Likewise.
3659         * tests/tap-diagnostic-custom.test: Likewise.
3660         * tests/tap-doc.test: Likewise.
3661         * tests/tap-merge-stdout-stderr.test: Likewise.
3662         * tests/tap-more.test: Likewise.
3663         * tests/tap-more2.test: Likewise.
3664         * tests/tap-recheck.test: Likewise.
3665         * tests/tap-summary-aux.sh: Likewise.
3666         * tests/tap-basic.test: Likewise, and fix a grammaro in comments
3667         since we are at it.
3669 2011-08-17  Stefano Lattarini  <stefano.lattarini@gmail.com>
3671         test defs: fix typo in comments
3672         * tests/defs (get_shell_script): Fix typo in the function
3673         description.
3675 2011-08-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
3677         coverage: missing tap plan and non-zero exit status
3678         * tests/tap-missing-plan-and-bad-exit.test: New test.
3679         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3681 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
3683         testsuite: fix an unportable use of sed
3684         * tests/tap-todo-skip-whitespace.test: Alternation with "\|" in
3685         sed regular expressions is not portable to (at least) FreeBSD
3686         sed; do not use it.
3688 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
3690         testsuite: avoid spurious failure if rst2html program is missing
3691         * tests/test-driver-custom-no-html.test: Account for the
3692         possibility of a lacking `rst2html' program in our final
3693         grepping of make output.
3695 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
3697         tap: improve diagnosing and reporting of plan mismatches
3698         Problem exposed by a failure in the test 'tap-plan-errors.test'.
3699         * lib/tap-driver (NO_PLAN, EARLY_PLAN, LATE_PLAN): New constants.
3700         (Throughout the file): Use more complex semantics for `$plan_seen',
3701         which now also remember whether the plan that has been seen is an
3702         "early" or "late" plan; in turn, this makes ...
3703         ($tap_stopped): ... this variable redundant; remove it.
3704         (handle_tap_plan): Adjust to avoid producing spurious or confusing
3705         error messages about extra or mismatched "late" TAP plans.
3706         * tests/tap-plan-corned.test: Adjust and extend.
3707         * tests/tap-color.test: Likewise.
3709 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
3711         tap: log all TAP stream, even after a "Bail out!"
3712         * lib/tap-driver ($bailed_out): New global boolean variable,
3713         telling whether a "Bail out!" directive has been seen or not.
3714         (handle_tap_bailout): This function does not anymore stop the
3715         reading from TAP stream; instead, it sets `$bailed_out' to a
3716         true value, so that only the subsequent parsing of the input
3717         TAP stream is stopped.
3718         (finish): Remove, no more needed, its contents inlined into ...
3719         (main): ... this function, with related adjustments in the code
3720         flow.
3721         (get_test_exit_message): Do not "flush" the input TAP stream
3722         to fetch the exit status of test script, it is not anymore
3723         required.  Add a sanity check.
3724         * tests/tap-bailout-and-logging.test: New test.
3725         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3727 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
3729         coverage: TAP diagnostics after "Bail out!" aren't reported
3730         This is compatible with the behaviour of the `prove' utility.
3731         * tests/tap-bailout-suppress-later-diagnostic.test: New test.
3732         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3734 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
3736         coverage: TAP errors after a "Bail out!" directive aren't reported
3737         This is compatible with the behaviour of the `prove' utility.
3738         * tests/tap-bailout-suppress-later-errors.test: New test.
3739         * tests/tap-bailout-badexit.test: Renamed ...
3740         * tests/tap-bailout-suppress-badexit.test: ... to this, for
3741         consistency.
3742         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3744 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
3746         testsuite: reorganize tests on TAP plans
3747         * tests/tap-skip-whole.test: Rename ...
3748         * tests/tap-planskip.test: ... to this
3749         * tests/tap-skip-whole-badexit.test: Rename ...
3750         * tests/tap-planskip-badexit.test: ... to this.
3751         * tests/tap-skip-whole-bailout.test: Rename ...
3752         * tests/tap-planskip-bailout.test: ... to this.
3753         * tests/tap-skip-whole-bailout.test: Rename ...
3754         * tests/tap-planskip-later-errors.test: ... to this.
3755         * tests/tap-skip-whole-unplanned.test: Rename ...
3756         * tests/tap-planskip-unplanned.test: ... to this.
3757         * tests/tap-skip-whole-whitespace.test: Rename ...
3758         * tests/tap-planskip-whitespace.test: ... to this.
3759         * tests/tap-skip-whole-continue.test: Rename ...
3760         * tests/tap-planskip-and-logging.test: ... to this, extend to try
3761         more cases, and fix heading comments.
3762         * tests/tap-skip-whole-lastline.test: Rename ...
3763         * tests/tap-planskip-late.test: ... to this, fix heading comments,
3764         and remove some checks that are just a duplication of those already
3765         performed in the previous script.
3766         * tests/tap-results-with-planskip.test: Rename to ...
3767         * tests/tap-planskip-unplanned-corner.test: ... this, and improve
3768         hading comments.
3769         * tests/tap-planskip-later-errors.test: New test.
3770         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3772 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
3774         coverage: more TAP driver consistency w.r.t. 'prove'
3775         * tests/skip-results-with-planskip.test: New test, verifies that
3776         test results seen in a TAP stream that has a "plan with SKIP" are
3777         flagged as errors.
3778         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3780 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
3782         tap: improve some comments in the TAP driver
3783         * lib/tap-driver (handle_tap_plan): Improve comments describing
3784         possible errors in a "plan with SKIP" directive.
3786 2011-08-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
3788         tap: non-zero exit status after "Bail out!" should not be reported
3789         This new behaviour is more consistent with that of the `prove'
3790         utility.  Also, experience with the use of TAP in the Automake's
3791         own test suite has shown that reporting non-zero exit status from
3792         a script after it has issued a "Bail out!" directive is mostly
3793         redundant, more introducing noise rather than conveying useful
3794         information.
3795         * lib/tap-driver (finish): Inline the part of it that was getting
3796         the script exit status ...
3797         (main): ... in here.
3798         * tests/tap-bailout-badexit.test: New test.
3799         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3801 2011-08-11  Stefano Lattarini  <stefano.lattarini@gmail.com>
3803         tap: a "plan with SKIP" after test results is an error
3804         This new behaviour is both more natural and more consistent with
3805         that of the `prove' utility.
3806         * lib/tap-driver (handle_tap_plan): Do not stop TAP parsing when
3807         a "plan with SKIP" line (e.g., "1..0 # SKIP") is encountered, and
3808         do not print a "SKIP" line if some TAP result has already been
3809         seen.
3810         * tests/tap-skip-whole.test: Adapt.
3811         * tests/tap-skip-whole-lastline.test: Likewise.
3812         * tests/tap-global-result.test: Adapt and extend.
3813         * tests/tap-skip-plan-errors.test: Likewise, and fix an obsolete
3814         small part of a comment.
3815         * tests/tap-skip-whole-bailout.test: New test.
3816         * tests/tap-skip-whole-unplanned.test: Likewise.
3817         * tests/tap-skip-whole-continue.test: Likewise.
3818         * tests/Makefile.am (tap_with_common_setup_tests): Update.
3820 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
3822         test harness: avoid possible fork bomb
3823         This fixes a regression w.r.t. the master branch, exposed by
3824         test 'parallel-tests-fork-bomb.test'.
3825         * lib/am/check.am (am--redo-logs): Detect possible infinite
3826         recursion due to a test log in $(TEST_LOGS) being the same
3827         as $(TEST_SUITE_LOG).
3829 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
3831         coverage: enhance test against infinite recursion in test harness
3832         * tests/parallel-tests-fork-bomb.test: Enhance and extend a
3833         little now, for soon-to-be-implemented more explicit and safer
3834         semantics.
3836 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
3838         coverage: possible infinite recursion in the test harness
3839         Motivated by a regression in the 'test-protocols' branch.
3840         * tests/parallel-tests-fork-bomb.test: New test, checking that
3841         if $(TEST_SUITE_LOG) is in $(TEST_LOGS), we obtain a diagnosed
3842         error rather than a make hang or a fork bomb.
3843         * tests/Makefile.am (TESTS): Update.
3845 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
3847         test defs: yet more environment cleanup
3848         * tests/defs: Also unset the TEST_SUITE_LOG variable.
3850 2011-08-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
3852         self tests: some minor refactoring
3853         * tests/self-check-exit.tap: Disable the `errexit' shell flag;
3854         this allow to remove some boilerplate idioms and to make some
3855         code slightly less cumbersome.
3856         * tests/self-check-me.tap: Likewise.
3858 2011-08-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
3860         maintcheck: look for TAP-based tests without TAP plan
3861         * Makefile.am (sc_tests_tap_plan): New maintainer check.
3862         (syntax_check_rules): Add it.
3863         * tests/suffix10.tap: Declare a TAP plan.
3864         * tests/add-missing.tap: Likewise.
3866 2011-08-14  Stefano Lattarini  <stefano.lattarini@gmail.com>
3868         testsuite: avoid confusing SKIP messages for errored tests
3869         * tests/defs [$use_tap] (exit trap): Don't print the test plan
3870         in case the client script exited with a non-zero status.  This
3871         avoids the display of redundant "SKIP" messages for tests with
3872         lazy plans that error out before any test is run.
3874 2011-08-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
3876         testsuite: keep more debugging info around in 'add-missing.tap'
3877         * tests/add-missing.tap: Use a different directory for each test,
3878         so that in case of failure more information is kept around.
3879         Since we are at it, remove redundant TAP diagnostic, and define
3880         `$am_create_testdir' to "empty" to avoid bringing in unused
3881         auxiliary files.
3883 2011-08-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
3885         testsuite: more granular count of test results in our TAP library
3886         * tests/tap-functions.sh ($tap_bad_count_): Removed, superseded
3887         by ...
3888         ($tap_fail_count_, $tap_xpass_count_): ... these new variables,
3889         which keep more granular counts.
3890         ($tap_pass_count_: New variable.
3891         * tests/defs (exit trap): Adjust and simplify accordingly.
3893 2011-08-13  Stefano Lattarini  <stefano.lattarini@gmail.com>
3895         testsuite: fixlets and improvements in two long TAP-based tests
3896         * tests/depmod.tap: Clean up the subdirectories used by tests that
3897         passed, to avoid ending up with a too big test directory.  This is
3898         especially important since, on each and every system, at least some
3899         tests in this script are expected to be skipped (which ones exactly
3900         depends on the system), thus causing the test directory not to be
3901         removed when the script terminates.
3902         * tests/instspc.tap: Likewise (with the difference that tests here
3903         are not expected to be skipped, but to xfail).  Give more explicit
3904         error message in case of setup failure.  Skip the proper number of
3905         tests when required, to avoid spurious errors due to mismatched
3906         plan.  Also, really avoid to run the unsupported test cases when
3907         the need to skip them is detected.
3909 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
3911         test harness: recursive make invocations must use $(AM_MAKEFLAGS)
3912         * lib/am/check.am ($(TEST_SUITE_LOG)): Pass $(AM_MAKEFLAGS)
3913         to $(MAKE) when issuing a recursive make call.
3914         Problem detected by the `sc_tests_make_without_am_makeflags'
3915         maintainer check.
3917 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
3919         tests: fix spurious failure in 'suffix-chain.tap'
3920         * tests/suffix-chain.test: Use more uncommon suffixes that
3921         don't trigger built-in recipes with FreeBSD make.
3923 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
3925         testsuite: improvements to our shell TAP library and APIs
3926         These improvements impact only the Automake's own testsuite.
3927         * tests/tap-functions.sh (plan_): Allow new special arguments
3928         "unknown" a.k.a. "later" and "lazy" a.k.a. "now".  Perform
3929         sanity check the given arguments.  Adjust incorrect comments.
3930         (lazy_plan_): Removed, superseded by the new version of `plan_'.
3931         (not): New function, run a command and inverts its exit status.
3932         (ok_, not_ok_, skip_): These are just shorthands for common
3933         `result_' usages.
3934         (xfail_, xpass_, reset_test_count_): Removed, they are not used,
3935         nor does a legitimate use for them seem in sight.
3936         (not): New function, to run a command inverting its exit status.
3937         (command_not_ok_): Removed, superseded by `command_ok_' + `not'.
3938         (command_ok_): Extended to accept TAP directives.
3939         * tests/defs (trap): Don't use `late_plan_' anymore, use
3940         `plan_ "now"' instead.
3941         * tests/ac-output-old.tap: Update to take advantage of the new
3942         APIs.
3943         * tests/self-check-env-sanitize.tap: Likewise.
3944         * tests/suffix-chain.tap: Likewise.
3945         * tests/suffix10.tap: Likewise.
3946         * tests/suffix11.tap: Likewise.
3947         * tests/suffix3.tap: Likewise.
3948         * tests/suffix8.tap: Likewise.
3949         * tests/tap-bad-prog.tap: Likewise.
3950         * tests/self-check-exit.tap: Likewise, plus a small improvement
3951         in the name of a variable.
3953 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
3955         testsuite: convert some `suffix*' tests to TAP
3956         This will allow us to explicitly declare some expected failures
3957         involving Solaris make as such, instead of partly papering over
3958         them with skips and partly letting them fail too loudly.
3959         * tests/suffix-chain.test: Rename ...
3960         * tests/suffix-chain.tap: ... to this, and convert to the use of
3961         TAP.  Also, fix some bugs since we are at it, and ...
3962         ($required): ... require `cc'.
3963         * tests/suffix3.test: Rename ...
3964         * tests/suffix3.tap: ... to this, and convert to the use of TAP.
3965         Also, since we are at it, throw in some formatting fixes.
3966         * tests/suffix8.test: Rename ...
3967         * tests/suffix8.tap: ... to this, and convert to the use of TAP.
3968         Also, since we are at it, throw in some formatting fixes.
3969         * tests/suffix10.test: Rename ...
3970         * tests/suffix10.tap: ... to this, and convert to the use of TAP.
3971         * tests/suffix11.test: Rename ...
3972         * tests/suffix11.tap: ... to this, and convert to the use of TAP.
3973         * tests/Makefile.am (TESTS): Update.
3975 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
3977         tests: don't let a known Solaris make bug poison too many tests
3978         See automake bug#7670 and bug#7824.
3979         * tests/defs (make_can_chain_suffix_rules): New function, tell
3980         whether the make implementation in use can chain suffix rules
3981         automatically or not.
3982         * tests/suffix3.test: Use it to avoid issuing calls to make that
3983         are unportable to make implementations that are not smart enough
3984         to chain suffix rules automatically.
3985         * tests/suffix8.test: Use it to avoid issuing calls to make that
3986         * tests/suffix10.test: Use it to avoid issuing calls to make that
3987         * tests/suffix11.test: Use it to avoid issuing calls to make that
3988         * tests/suffix-chain.test: New test, exposes the limitation that
3989         we have papered over in the tests above.
3991 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
3993         gitignore: more use of anchors
3994         * .gitignore: Anchor files that are intended to be ignored only
3995         if found in the same directory of the `.gitignore' file, not also
3996         in its subdirectories.
3997         * doc/.gitignore, doc/amhello/.gitignore, lib/Automake/.gitignore,
3998         lib/Automake/tests/.gitignore, tests/.gitignore: Likewise.  Also,
3999         where needed, add new entries that were once implied by the
4000         non-anchored entries in the upper-level `.gitignore' files.
4002 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
4004         self tests: avoid spurious output on console, and related fixlets
4005         * tests/self-check-cleanup.test: Set `$stderr_fileno_' to `2'
4006         in the self tests, to avoid spurious diagnostic on console.
4007         * tests/self-check-exit.tap: Only unset `am_explicit_skips' and
4008         `$stderr_fileno_' in the self tests, not at the global level, it
4009         is more correct.
4010         ($init): New variable, to reduce code duplication.
4011         Some refactoring and adjustments to the name of the tests.
4013 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
4015         test defs: few more sanity checks
4016         * tests/defs: Catch some more (very unlikely) set-up or internal
4017         errors, and diagnose them explicitly.  This is intended mostly
4018         to be a theoretic-only improvement.
4020 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
4022         test defs: really make them "set -e" clean
4023         Motivated by a spurious failure of test `instsh3-w.shtst' on
4024         Solaris 10.
4025         * tests/defs: Make really "set -e" clean, to avoid spurious
4026         failures in case this file is sourced by a test script that has
4027         already set the `errexit' flag.  To be sure we don't regress,
4028         move the `set -e' call much earlier, and make the comment telling
4029         about the expected "set -e" cleanliness more loud and outstanding.
4031 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
4033         self tests: register an expected failures with Solaris /bin/sh
4034         Solaris 10 /bin/sh erroneously exit with success right away when
4035         the following three conditions are met at the same time:
4036          1. the `errexit' flag is active,
4037          2. an exit trap is installed, and
4038          3. a non-existing command is issued.
4039         * tests/self-exit.tap: When that bug is detected, issue an XFAIL
4040         rather than a FAIL.  Since we are at it, improve by avoiding
4041         creation of stray temporary files when testing for non-executable
4042         commands.
4044 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
4046         gitignore: update and improve for the testsuite files
4047         * tests/.gitignore: Don't ignore temporary partial log files,
4048         autogenerated tests and makefile fragments that are not used
4049         anymore.  Anchor all the remaining patterns.
4051 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
4053         self tests: some new uses of TAP, few extensions
4054         * tests/self-check-me.test: Renamed ...
4055         * tests/self-check-me.tap: .. to this, and converted to use TAP.
4056         * tests/self-check-exit.test: Renamed ...
4057         * tests/self-check-exit.tap: .. to this, and converted to use TAP.
4058         Set `$stderr_fileno_' to `2', to avoid spurious messages on the
4059         console.  Add a new test, and relax another one.
4060         * tests/self-check-env-sanitize.test: Renamed ...
4061         * tests/self-check-env-sanitize.tap: .. to this, and converted to
4062         the use TAP.
4063         * tests/Makefile.am (TESTS): Update.
4065 2011-08-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
4067         test defs: test directory creation more configurable
4068         After this change, the individual tests will be able to tell
4069         `./defs' whether or not to create a temporary test directory
4070         for them, and if yes, whether or not to pre-populate it.
4071         * tests/defs: Only create the temporary test directory if the
4072         variable `$am_create_testdir' is not set to "no".  In this
4073         case, only pre-populate it if that variable is not set to
4074         `$empty'.
4075         * tests/defs-static.in: Check that `$am_create_testdir' is not
4076         exported in the environment.
4077         * tests/self-check-env-sanitize.test: Update.
4078         * tests/self-check-dir.test: Extend, and make deeper and more
4079         robust.
4080         * tests/README (Section "Writing test cases" subsection "Do"):
4081         Update.
4082         * tests/autodist.test: Set `$am_create_testdir' instead of
4083         removing by hand files created by ./defs.
4084         * tests/tap-doc2.test: Likewise.
4086 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4088         testsuite: more uses of the `seq_' function
4089         * tests/parallel-tests-exit-statuses.test: Use the `seq_' function
4090         from `tests/defs', instead of duplicating its semantics.
4091         * tests/testsuite-summary-count.test: Likewise.
4093 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4095         testsuite: drop redundant environment sanitization
4096         * tests/Makefile.am (TESTS_ENVIRONMENT): Don't remove `planned'
4097         from the environment.
4098         * tests/defs-static.in: Don't complain if `planned' is set in
4099         the environment.
4100         * tests/self-check-env-sanitize.test: Update.
4102 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4104         test defs: fix bug in plain version of `skip_all_'
4105         * tests/plain-functions.sh (skip_all_): Call `skip_', not `skip'.
4107 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4109         test defs: small cleanups and tweakings
4110         * tests/defs: Where possible, prefer `framework_failure_' or
4111         `fatal_' to `Exit 99'.  Try to catch more possible hard errors
4112         and setup failures.  Do not hide expected error messages.  Avoid
4113         a couple of forks when copying files from `$(top_srcdir)/lib'.
4114         ($signal): Remove, no more needed.
4116 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4118         testsuite: improve interface for giving early TAP plan
4119         Since commit `v1.11-976-g4740f56', an early TAP plan can also be
4120         specified after input lines have already been seen, as long as
4121         no one of them is a TAP result line.  We can now take advantage
4122         of this in our own testsuite, allowing the TAP-based scripts to
4123         specify their earlier plan after having included `./defs'.  In
4124         particular, this offers the benefit of allowing those scripts to
4125         issue a "skip all" plan (e.g., "1..0 # SKIP reason ...") after
4126         the inclusion of `./defs', which wasn't possible with the older
4127         interface (introduced in commit `v1.11-1114-g0286308').
4128         * tests/defs: Don't try to call `plan_' if `$planned' is defined,
4129         the calling scripts can do that directly now.
4130         * tests/ac-output-old.tap: Use `plan_' directly instead of
4131         setting `$planned' before including `./defs'.
4132         * tests/automake-cmdline.tap: Likewise.
4133         * tests/depmod.tap: Likewise.
4134         * tests/instspc.tap: Likewise.
4135         * tests/tap-bad-prog.tap: Likewise.
4136         * tests/add-missing.tap: Don't set `$planned'.
4138 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4140         test defs: fix bug in TAP version of `skip_all_'
4141         * tests/tap-functions (skip_all_): Set `$have_tap_plan_' to "yes"
4142         when called, so that the exit trap won't write another TAP plan.
4144 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4146         test defs: fix skip directives to work also with TAP-based tests
4147         * test/defs: Use `skip_all_', not `skip_', to issue a skip of the
4148         whole calling test script.
4150 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4152         test defs: more environment cleanup
4153         * tests/defs: Also unset variables AM_COLOR_TESTS and
4154         AM_TESTS_ENVIRONMENT.
4156 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4158         test harness: more minor VPATH-rewrite issues
4159         * tests/am/check.am (am__set_TESTS_bases, $(TEST_SUITE_LOGS),
4160         am--redo-logs, recheck, recheck-html): Cosmetic fixlets to
4161         minimize the risk of unwanted VPATH rewrites.
4162         (check-TESTS): Likewise, and normalize trailing whitespace
4163         since we are at it.
4164         Bugs exposed by test cases `check6-p.test' and `check7-p.test'.
4166 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4168         test harness: "make -n check" works correctly with Solaris make
4169         To avoid some recipes being executed with "make -n", we used the
4170         trick of issuing recursive make calls not directly with $(MAKE),
4171         but with a simple indirection instead:
4172           ...
4173           am__stealth_MAKE = $(MAKE)
4174           ...
4175           target:
4176               ... $(am__stealth_MAKE) ...
4177           ...
4178         This hack worked with GNU make, but, unfortunately, not with
4179         Solaris make.  The present change removes the hack, and uses more
4180         proper idioms to avoid unwanted recipe executions with "make -n".
4181         Bug exposed by test case `parallel-tests-dry-run.test'.
4182         * lib/am/check.am (am__stealth_MAKE): Remove, no more used.
4183         (.log.trs): Break recipe in multiple shell invocations.
4184         ($(TEST_SUITE_LOG)): Likewise, and move some corner-case parts of
4185         the recipe to ...
4186         (am--redo-logs): ... this new internal helper .PHONY target.
4188 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4190         tests: fix spurious failure with Solaris make
4191         * tests/distcheck-configure-flags-am.test: Avoid using `+=' too
4192         liberally with AM_DISTCHECK_CONFIGURE_FLAGS, since the line breaks
4193         so introduced, in conjunction with single quotes, might confuse
4194         Solaris make.
4196 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4198         test harness: fixlet in workaround for VPATH rewrite issue
4199         Fixes a minor in previous commit `v1.11-983-gfda3de5'.
4200         * lib/am/check.am (am__set_TESTS_bases): Add forgotten end-of-line
4201         anchor to sed expression.  In comments, add reference to ...
4202         * tests/test-trs-basic.test: ... this test, which has been adapted
4203         and tightened (and tweaked).
4205 2011-08-08  Stefano Lattarini  <stefano.lattarini@gmail.com>
4207         test harness: work around a VPATH rewrite issue
4208         * lib/am/check.am (am__TEST_BASES): Removed, it's role taken
4209         over by ...
4210         (am__set_TESTS_bases): ... these new variable.
4211         ($(TEST_SUITE_LOG): Use it, to avoid VPATH rewrite issues.
4212         * automake.in (handle_tests): Update the code for the cleanup
4213         of the `.trs' file to use `$(TEST_LOGS)' instead of
4214         `$(am__TEST_BASES)'.
4215         * tests/test-harness-vpath-rewrite.test: New test, better
4216         exposing the problem fixed by this change
4217         * tests/Makefile.am (TESTS): Add it.
4218         * tests/test-trs-basic.test: Update and extend.
4220 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4222         parallel-tests: work around Solaris XPG4 make segfault
4223         Issue exposed by test `posixsubst-tests-p.test', and similar to
4224         the problem solved by commit `v1.11-159-ge7aa360'.
4225         * lib/am/check.am [%?PARALLEL_TESTS%] (check-TESTS): Trim trailing
4226         whitespace from $list, to avoid triggering a nasty bug (potential
4227         segfault) on Solaris XPG4 make and Heirloom make.
4229 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4231         testsuite: fix weird spurious failure with Solaris /bin/sh
4232         Solaris /bin/sh, when killed with a SIGTERM or SIGINT signal, can
4233         apparently end up exiting with exit status 208, instead of leaving
4234         the correct wide exit status to the parent.  See:
4235          <http://dbaspot.com/shell/396118-bourne-shell-exit-code-term.html>
4236         Work around this incompatibility.
4237         * tap-signal.test: Look for the above Solaris bug.
4238         (signal_caught): Adapt to handle it.
4240 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4242         testsuite: fix another spurious failure on Solaris make
4243         * tests/parallel-tests-log-override-recheck.test: Filter make
4244         output before grepping it, for make implementations that, like
4245         Solaris' one, print the whole of the failed recipe on failure.
4247 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4249         testsuite: fix two spurious failures on Solaris make
4250         * tests/tests-environment-and-log-compiler.test: Do not fail if
4251         "make -n check" fails, as that is issued only for debugging, its
4252         semantics being tested in other test scripts.
4253         * tests/test-driver-strip-vpath.test: Likewise.
4255 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4257         tap driver: refactor and remove dead code
4258         * lib/tap-driver (get_tap_line): Removed, ...
4259         (all callers): ... updated to use $parser->next directly instead.
4260         (peek_tap_line, unget_tap_line, @tap_lines): Remove, they're not
4261         used anymore.
4262         (TAP_PEEKING): Block deleted, all its subroutines and variables
4263         having been removed.
4265 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4267         testsuite: fix spurious failure in a test on TAP support
4268         * tests/tap-passthrough-exit.test: When the `--ignore-exit' flag
4269         of the TAP driver is used, don't look for a message reporting the
4270         non-zero exit statuses of tests in the log files; such message is
4271         not expected to be there anymore.  Related simplifications.
4273 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4275         tap: plan location is more liberal w.r.t. non-TAP lines
4276         With this change, only lines that are TAP results will matter
4277         w.r.t. the position of the TAP plan in the input; for example,
4278         this input:
4279           this is a non-TAP line
4280           # and this a TAP diagnostic line
4281           1..1
4282           ok 1
4283         was considered to be an error, diagnosed with a message "test
4284         plan in middle of output"; as effect of the current change, such
4285         input is now valid.  This is more consistent with the behaviour
4286         of the `prove' utility.
4287         * lib/tap-driver ($lineno): Removed, no more needed.
4288         ($tap_stopped): New global variable.
4289         (stringify_test_result): Return "ERROR" if a TAP result is found
4290         when `$tap_stopped' is set to true.
4291         (handle_tap_test): Diagnose TAP results that comes after a late
4292         plan.  Add a couple of blank lines, for clarity.
4293         (handle_tap_plan): Set `$tap_stopped' to true after a late plan
4294         is encountered.  Do not complain anymore for extra non-TAP lines
4295         preceding or following the plan.  Adjust comments.
4296         (main): Don't increment $lineno anymore.
4297         * tests/tap-plan.test: Extend a bit, and remove stale comment.
4298         * tests/tap-color.test: Adjust.
4299         * tests/tap-passthrough.test: Likewise.
4300         * tests/tap-plan-corner.test: Adjust and extend.
4301         * tests/tap-plan-errors.test: Likewise.
4302         * tests/tap-plan-middle.test: New test.
4303         * tests/tap-plan-corner2.test: Delete, it's obsolete now.
4304         * tests/Makefile.am (XFAIL_TESTS): Remove it.
4305         (tap_with_common_setup_tests): Likewise, and add
4306         `tap-plan-corner.test'.
4308 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4310         testsuite: remove now-passing test from XFAIL_TESTS
4311         * tests/Makefile.am (XFAIL_TESTS): Remove `tap-signal.test',
4312         which is passing since previous commit `v1.11-974-gc7fa872'.
4314 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4316         test defs: get name of TAP-using tests correctly
4317         This change fixes the names of the temporary directories used
4318         by the TAP-based tests (e.g., test `foo.tap' now uses `foo.dir'
4319         rather than `foo.tap.dir'); more importantly, this make the
4320         variable `$destdir' defined in `tests/defs' usable also in the
4321         TAP tests.
4322         ($me): Also strip the any `.tap' suffix from the name of the
4323         test.
4325 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4327         testsuite: TAP tests properly decide when to remove tempdirs
4328         Before this change, the TAP tests in the Automake testsuite were
4329         removing the temporary test directory even when they failed or
4330         were skipped, thus making debugging more difficult.
4331         * tests/tap-functions.sh (incr_tap_count): Removed, superseded
4332         by ...
4333         (incr_): ... this function, which can increment the value of any
4334         variable passed to it.
4335         (result_):  Updated to use `incr_' instead of the now-removed
4336         `incr_tap_count_'.  Keep count of failures, xfailures, xpasses,
4337         and skips, using ...
4338         ($tap_skip_count_, $tap_bad_count, _$tap_xfail_count_): ...
4339         these new variables.
4340         * tests/defs (trap): Try to use their values to decide whether
4341         the temporary directory being used by the test script should be
4342         removed or not.  Other code reorganizations.  And move the code
4343         for the removal of the temporary directory out to ...
4344         (rm_rf_): ... this new subroutine.
4345         (Main code): Use that instead of duplicating the code.
4347 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4349         testsuite: improve and refactor our custom TAP shell library
4350         This change is mostly done in preparation for the next one.
4351         * tests/tap-functions.sh (result_with_directive_): Merge into ...
4352         (result_): ... this function, which has been greatly extended and
4353         improved in various ways.
4354         (ok_, not_ok_, skip_, xfail_, xpass_): Adjust.
4355         Adjust comments.  Remove an extra empty line.
4356         * tests/instspc.tap: Use the new improved interface of `result_'.
4357         * tests/tap-bad-prog.tap: Likewise.
4359 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4361         testsuite: update "user interface" description in tests/README
4362         * tests/README (Subsection "Interpretation"): Mention the "ERROR"
4363         outcome.
4364         (Subsection "Getting details from failures"): Don't tell that the
4365         test scripts can be run directly, this is not 100% true; anymore;
4366         instead ...
4367         (Subsection "About the tests"): ... use this new subsection to
4368         explain how to run the tests (either simple or TAP-based) by hand.
4369         (Subsection "Supported shells"): Extend to refer to TAP tests too.
4371 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4373         testsuite: TAP tests can have early plan now
4374         * tests/defs: When using TAP, allow the user to specify the number
4375         of tests through the `$planned' variable.
4376         (trap): Do not print the auto-generated plan if an explicit one
4377         has already been printed.
4378         * tests/defs-static.in: Complain and bail out if the `$planned'
4379         variable is exported in the environment.  Reformat the code to
4380         facilitate future additions.
4381         * tests/Makefile.am (TESTS_ENVIRONMENT): Neutralize `$planned'.
4382         * tests/self-check-env-sanitize.test: Update.
4383         * tests/ac-output-old.tap: Give an explicit TAP plan, by defining
4384         `$planned' just before including `./defs'.
4385         * tests/depmode.tap: Likewise.
4386         * tests/automake-cmdline.tap: Likewise.
4387         * tests/tap-bad-prog.tap: Likewise.
4388         * tests/instspc.tap: Likewise, and related adjustments.
4389         * tests/add-missing.tap: Make it explicit that we have no a-priori
4390         plan, and tell why.
4392 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4394         testsuite: run autogenerated tests with $(LOG_COMPILER) too
4395         This change enhances consistency in the testsuite.
4396         * tests/Makefile.am: Some cosmetic reordering, to keep the
4397         definition of FOO_LOG_COMPILER near to the place where `.foo'
4398         is added to $(TEST_EXTENSIONS).
4399         (PTEST_LOG_COMPILER): Run `$(srcdir)/parallel-tests.sh' with
4400         `$(LOG_COMPILER)', not with `$(SHELL)'.
4401         (SHTST_LOG_COMPILER): Likewise.
4403 2011-08-07  Stefano Lattarini  <stefano.lattarini@gmail.com>
4405         testsuite: run TAP and "plain" tests with the same $(LOG_COMPILER)
4406         With this change, it will be easier to override, at make time, the
4407         shell used to run the tests.
4408         * tests/Makefile.am (LOG_COMPILER): Define to `$(SHELL)'.
4409         (TEST_LOG_COMPILER): Re-define to `$(LOG_COMPILER)'.
4410         (TAP_LOG_COMPILER): Likewise.
4412 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4414         testsuite: run TAP-based tests explicitly with $(SHELL)
4415         * tests/Makefile.am (TAP_LOG_COMPILER): Define to `$(SHELL)'.
4417 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4419         tap driver: handle signals received by the tests being run
4420         * lib/tap-driver (get_test_exit_message): Also deal with signals,
4421         by using the `wait' method of the TAP::Parser object instead of
4422         the `exit' method.  This required the use of the standard perl
4423         module `POSIX'.
4424         * doc/automake.texi (Use TAP with the Automake test harness):
4425         Document that `--ignore-exit' has effect also on terminating
4426         signals.  Add a "synchronizing" comment that references the tests
4427         'tap-exit.test' and 'tap-signal.test'.
4428         * tests/tap-signal.test: Extend and adjust.
4430 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4432         test driver: a preparatory refactoring (2)
4433         * lib/tap-driver (finish): Move code to fetch the message about
4434         the exit status of the test being run to ...
4435         (get_test_exit_message): ... this new subroutine.
4437 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4439         tap driver: a preparatory refactoring (1)
4440         * lib/tap-driver (finish): Do not flush the TAP stream nor
4441         fetch the exit status of the TAP producer if running with
4442         the `--ignore-exit' option.  Obviously, don't try to write
4443         such exit status in the test log anymore.
4445 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4447         cosmetics: typofix in the name of a function in the TAP driver
4448         * lib/tap-driver (testuite_error): Renamed ...
4449         (testsuite_error): ... to this, and minor related reformatting.
4451 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4453         tap: scripts with a SKIP plan but with exit status != 0 must error
4454         This change has been motivated by Automake's own testsuite.  Some
4455         TAP tests there were erroring out (due to unexpected, unhandled
4456         failures) before having encountered TAP result, so that the
4457         simple-minded shell library implementing TAP generation ended up
4458         printing a "1..0" trailing test plan; this caused the script to be
4459         reported as a SKIP rather than an ERROR -- a nasty false negative.
4460         * lib/tap-driver: Add prototypes for each subroutine, to free up
4461         the order in which they can be defined and called.
4462         (main): Move the code checking for a bad exit status of the TAP
4463         producer ...
4464         (finish): ... here, and flush the TAP stream to ensure that the
4465         parser always obtains the producer's exit status.
4466         * tests/tap-skip-whole-badexit.test: New test.
4467         * tests/Makefile.am (tap_with_common_setup_tests): Add it.
4469 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4471         tap: fix whitespace munging of diagnostic messages
4472         * lib/tap-driver (extract_tap_comment): Pass the `g' flag to the
4473         substitution operator, to strip also trailing whitespaces.  Fixes
4474         a failure in test `tap-whitespace-normalization.test'.
4476 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4478         testsuite: refactor and cleanup 'instspc.tap'
4479         * tests/instspc.tap (is_in_list): New helper subroutine.
4480         (expected_to_fail): Re-implement using it.
4481         (define_problematic_string): Likewise.  Also, rename the special
4482         arguments `build-fail' and 'install-fail' to respectively
4483         `builddir-fail' and `destdir-fail', and other related changes.
4484         (Test data definition): Adapt.
4485         ($instspc_xfail_builds_list): Renamed ...
4486         ($builddir_xfails): ... to this.
4487         ($instspc_xfail_installs_list): Renamed ...
4488         ($destdir_xfails): ... to this.
4489         ($instspc_names_list): Renamed ...
4490         ($test_names_list): ... to this.
4491         ($instspc_test_string): Renamed ...
4492         ($test_string): ... to this.
4493         Add some explicative and "FIXME" comments.
4495 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4497         testsuite: use TAP for `depmod*' tests, related simplifications
4498         * tests/depmod-tests.sh: Delete this complex and multifarious
4499         script, moving all it checks it used to perform into ...
4500         * tests/depmod.tap: ... this TAP-based test script.  And extend
4501         it quite a bit, since the new form of the test was papering over
4502         some pre-existing failures (this was due to the fact that the
4503         values used for the VPATH were shorter in the new test script).
4504         * tests/depmod-data.test: Deleted.
4505         * tests/Makefile.am ($(srcdir)/depmod-tests.am): Don't include
4506         nor generate it anymore.
4507         (EXTRA_DIST): Don't distribute depmod-tests.sh anymore.
4508         (TEST_EXTENSIONS): Remove '.depmod'.
4509         (DEPMOD_LOG_COMPILER): Deleted.
4510         (depmod-data.log, $(depmod_tests:.depmod=.log)): Delete
4511         dependencies for these files, which are not used anymore.
4512         ($(depmod_tests)): Delete this dummy dependency declaration.
4513         (TESTS): Remove $(depmod_tests).
4514         (handwritten_tests): Remove depmod-data.test, add depmod.tap.
4515         * bootstrap: Don't generate tests/depmod-tests.am anymore.
4517 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4519         testsuite: use TAP for `instspc*' tests, related simplifications
4520         * tests/instspc-tests.sh: Delete this complex and multifarious
4521         script, moving all it checks it used to perform into ...
4522         * tests/instspc.tap: ... this TAP-based test script.
4523         * tests/instspc-data.test: Deleted.
4524         * tests/Makefile.am ($(srcdir)/instspc-tests.am): Don't include
4525         nor generate it anymore.
4526         (EXTRA_DIST): Don't distribute instspc-tests.sh anymore.
4527         (TEST_EXTENSIONS): Remove '.instspc'.
4528         (INSTSPC_LOG_COMPILER): Deleted.
4529         (XFAIL_TESTS): Remove $(instspc_xfail_tests).
4530         (instspc-data.log, $(instspc_tests:.instspc=.log)): Delete
4531         dependencies for these files, which are not used anymore.
4532         ($(instspc_tests)): Delete this dummy dependency declaration.
4533         (TESTS): Remove $(instspc_tests).
4534         (handwritten_tests): Remove instspc-data.test, add instspc.tap.
4535         * bootstrap: Don't generate tests/instspc-tests.am anymore.
4537 2011-08-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
4539         testsuite: do fd redirections with $(AM_TESTS_FD_REDIRECT)
4540         * tests/Makefile.am: The redirections of file descriptors needed
4541         by our test scripts is now done using the $(AM_TESTS_FD_REDIRECT)
4542         variable (the new blessed way since commit `v1.11-906-gb9e9d54'),
4543         not using an hack involving $(AM_TESTS_ENVIRONMENT).  This has
4544         the further benefit of allowing the use of $(TESTS_ENVIRONMENT)
4545         again on part of the users.
4546         * tests/Makefile.am (AM_TESTS_ENVIRONMENT): Remove redirection of
4547         file descriptors.
4548         (AM_TESTS_FD_REDIRECT): Redirect file descriptor 9 to original
4549         stderr.
4550         Comments adjusted.
4551         * tests/plain-functions.sh ($stderr_fileno_): Update comment.
4553 2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
4555         testsuite: use custom TAP diagnostic in our own tests
4556         This change allow us to easily and transparently avoid spurious
4557         TAP diagnostic in our own testsuite, with the help of the new
4558         `--diagnostic-string' option of our TAP test driver.
4559         * tests/Makefile.am (TAP_LOG_DRIVER_FLAGS): Also pass option
4560         `--diagnostic-string' with value `#%#' (necessarily obtained
4561         through some shell indirections).
4562         * tests/tap-functions.sh (diag_): Assume that the string denoting
4563         TAP diagnostic is stored in the `$diag_string_' variable.  Update
4564         comments.
4565         ($diag_string_): Initialize to "#".
4566         * tests/defs ($diag_string_): Re-define to "#%#".
4567         (show_): Remove, it's obsolete now.
4568         * add-missing.tap: Don't use `show_' anymore to avoid spurious
4569         TAP diagnostic; `cat' should suffice now.
4571 2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
4573         tap: fix typo in TAP driver version message
4574         * lib/tap-driver (anonymous subroutine printing the script version
4575         message): Add missing trailing newline to the version message.
4577 2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
4579         tap docs: we don't support pragma or version directives (yet)
4580         * doc/automake.texi (Incompatibilities with other TAP parsers
4581         and drivers): Document that limitation.  Normalize an unrelated
4582         "TODO" item.
4584 2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
4586         tap: new option to change the string designating TAP diagnostic
4587         Here we introduce a new option `--diagnostic-string' in our TAP
4588         test driver, that allows the user to specify which string should
4589         denote the beginning of a TAP diagnostic line.  This change is
4590         not gratuitous, nor result if over-engineering: it is motivated
4591         by real issues that have emerged during the use of TAP in the
4592         Automake's own testsuite (see the commit `v1.11-1082-g9b967c2'
4593         "testsuite: yet more use of TAP, and related extensions").
4594         * doc/automake.texi (Use TAP with Automake test harness): Document
4595         the new option.
4596         (Incompatibilities with other TAP parsers and drivers): Report it
4597         as a potential source of incompatibility.
4598         * lib/tap-driver ($diag_string): New global variable, defaulting
4599         to "#", and whose value can be changed ...
4600         (Getopt::Long::GetOptions): ... by the newly recognized option
4601         `--diagnostic-string'.
4602         (handle_tap_comment): Subroutine removed, some of its simple logic
4603         inlined ...
4604         (main): ... in here, where now ...
4605         (extract_tap_comment): ... this new subroutine is used.
4606         ($USAGE): Adjust.
4607         * tests/tap-diagnostic.test: Make one check slightly stricter.
4608         * tests/tap-diag-custom.test: New test.
4609         * tests/Makefile.am (tap_other_tests): Add it.
4611 2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
4613         check: add small "synchronization" comment to `test-driver'
4614         * lib/test-driver: Add comment to the code initializing ANSI color
4615         escapes, telling to keep it in sync with the similar initialization
4616         in `lib/am/check.am'.
4618 2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
4620         maintcheck: fix spurious failure w.r.t. use of bare "exit"
4621         * tests/check12.test: Cosmetic changes to avoid triggering a
4622         spurious failure of the `sc_tests_Exit_not_exit' maintainer
4623         check.
4625 2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
4627         check: update comments to reflect recent heavy changes
4628         * lib/am/check.am [%?PARALLEL_TESTS%]: Update the comments to
4629         reflect the recent changes.  Remove quite many comments that
4630         were merely duplicating excerpts from the Automake manual.
4632 2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
4634         check: small cleanups and refactorings in test harness and drivers
4635         * lib/tap-driver (yn): New subroutine, converts a boolean value to
4636         a "yes" or "no" string.
4637         (write_test_results): Use it, and related reformatting.
4638         * lib/test-driver (trap): Also remove the `.trs' file on signals,
4639         for extra safety.
4640         (fatal): Remove this function, it's never used.
4641         ($logfile, $trsfile): Renamed ...
4642         ($log_file, $trs_file): ... to these, for clarity, and in order to
4643         be more consistent with the `tap-driver' script.
4644         Improve a couple of comments.
4645         * automake.in (handle_tests): Don't define anymore the now-obsolete
4646         make macro `$(TEST_LOGS_TMP)', nor add it to the list of files to
4647         be removed upon "make mostlyclean".
4648         * lib/am/check.am ($(TEST_SUITE_LOG)): New shell function `f_ok',
4649         tells whether a path refers to an existing, regular, readable file.
4650         Use it throughout.
4651         (recheck): Be safer w.r.t. make implementation that run recipes
4652         with `errexit' shell flag active.
4654 2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
4656         testsuite: use AM_TESTS_FD_REDIRECT where appropriate
4657         * parallel-tests-interrupt.test: Use AM_TESTS_FD_REDIRECT, not
4658         AM_TESTS_ENVIRONMENT, to define file descriptors' redirection
4659         for "make check".  Fix botched comment.
4661 2011-08-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
4663         docs: some fixlets in documentation on testsuites support
4664         * doc/automake.texi (Script-based Testsuites): Rename node ...
4665         (Scripts-based Testsuites): ... to this.  Break overly long lines
4666         in an example (were causing problems with PDF output).
4667         (Parallel Test Harness): Don't intend paragraphs that come after
4668         examples or bulleted list.
4669         (Overview of Custom Test Drivers Support): Fix typo s/the the/the/.
4670         (Declaring Custom Test Drivers): When giving an aside, prefer comma
4671         to parentheses, as it disrupts the reading flow less.
4672         (API for Custom Test Drivers): Remove a sentence that was basically
4673         duplicated from the previous subsection.
4674         (Command-line arguments for test drivers): Don't intend paragraph
4675         coming after an itemized list.  Clarify wording and fix grammaros.
4676         Add a couple of cross-references to earlier explanations of `.log'
4677         and `.trs' files.
4678         (Links and external resources): Node renamed ...
4679         (Links and external resources on TAP): ... to this, for clarity.
4680         Slightly extend and clarify introductory sentence.
4682 2011-08-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
4684         test harness: be aware of more metadata, simplify test drivers
4685         * lib/am/check.am ($(TEST_SUITE_LOG)):  When producing the
4686         global test log, take into account the new metadata field
4687         `:global-test-result:, to write nicely formatted RST section
4688         titles, instead of leaving this chore to the individual test
4689         drivers.
4690         (am_rst_section): Re-introduce this variable, as removed in
4691         commit `v1.11-870-ga27c9c4'.
4692         * lib/test-driver, lib/tap-driver: Write the global test result
4693         as metadata in the `.trs' file, not as (part of) a formatted RST
4694         subsection title in the `.log' file.  Related simplifications;
4695         in particular, get rid of temporary files usage.
4696         * doc/automake.texi (Log files generation and test results
4697         recording): Document the new metadata.
4698         * tests/check12.test: Update.
4699         * tests/parallel-tests-harderror.test: Likewise.
4700         * tests/parallel-tests-interrupt.test: Likewise.
4701         * tests/parallel-tests-log-override-2.test: Likewise.
4702         * tests/parallel-tests-log-override-recheck.test: Likewise.
4703         * tests/parallel-tests-unreadable.test: Likewise.
4704         * tests/tap-global-result.test: Likewise.
4705         * tests/test-metadata-results.test: Likewise.
4706         * tests/test-log.test: Likewise, and another minor unrelated fix.
4707         * tests/test-metadata-global-result.test: New test.
4708         * tests/Makefile.am (TESTS): Update.
4710 2011-08-03  Stefano Lattarini  <stefano.lattarini@gmail.com>
4712         tap: check that also a trailing TAP plan can hold a skip directive
4713         * tests/tap-skip-whole-lastline.test: New test.
4714         * tests/Makefile.am (tap_with_common_setup_tests): Add it.
4716 2011-08-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
4718         testsuite: more correct names for a couple of tests
4719         * tests/parallel-tests-ext-driver.test: Rename ...
4720         * tests/parallel-tests-log-compiler-1.test: ... to this, and
4721         adjust heading comments.
4722         * tests/parallel-tests-ext-driver-prog.test: Rename ...
4723         * tests/parallel-tests-log-compiler-2.test: ... to this, and
4724         adjust heading comments.
4725         * tests/Makefile.am (TESTS): Update.
4727 2011-08-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
4729         testsuite: fix another spurious failure
4730         * tests/parallel-tests-ext-driver.test: Name out custom/dummy
4731         log compilers as `foo-compiler' rather `foo-driver'; not only
4732         this is less confusing, it also avoids errors due to the dummy
4733         log compiler `test-driver' overriding the `test-driver' helper
4734         script installed by Automake.
4735         * tests/parallel-tests-ext-driver-prog.test: Adjust heading
4736         comments.
4738 2011-08-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
4740         testsuite: fix a spurious failure
4741         * tests/parallel-tests-ext-driver.test: Exporting of environment
4742         variables directly from $(LOG_COMPILER) variables is not allowed
4743         anymore.  Adjust to this.
4745 2011-08-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
4747         testsuite: yet more use of TAP, and related extensions
4748         * tests/defs (show_): New function, display the contents of one or
4749         more files on stdout, with bells & whistles (both for cosmetic and
4750         practical reasons, the latter aimed at avoiding spurious TAP
4751         diagnostic).
4752         (AUTOMAKE_run): Extend and adapt to make it compatible with TAP
4753