platform/upstream/automake.git
12 years agomaintcheck: remove an obsolete check
Stefano Lattarini [Thu, 23 Feb 2012 21:06:14 +0000 (22:06 +0100)]
maintcheck: remove an obsolete check

* syntax-checks.mk (sc_perl_local_no_parens): Remove, we don't even
allow the use of local but for the '$_' and '$~' special variables.
(syntax_check_rules): Adjust.

12 years agonews: update w.r.t. change in quoting format
Stefano Lattarini [Thu, 23 Feb 2012 21:00:49 +0000 (22:00 +0100)]
news: update w.r.t. change in quoting format

* NEWS (New in 1.11.1a): State that we prefer to quote 'like this'
or "like this" rather than `like this', as according to the new GCS
recommendations.

12 years agoautomake: do not quote `like this', as per GCS recommendation
Stefano Lattarini [Thu, 23 Feb 2012 19:50:41 +0000 (20:50 +0100)]
automake: do not quote `like this', as per GCS recommendation

* automake.in: Convert comments, diagnostic and help screen to the
use of new quoting format 'like this' or "like this" rather than
`like this'.
* tests/stdlib2.test: Adjust.
* tests/ltinstloc.test: Likewise.
* tests/location.test: Likewise.
* tests/libtool8.test: Likewise.
* tests/ldadd.test: Likewise, and prefer trailing ':' over trailing
'Exit 0'.

12 years agoaclocal: do not quote `like this', as per GCS recommendation
Stefano Lattarini [Thu, 23 Feb 2012 19:41:10 +0000 (20:41 +0100)]
aclocal: do not quote `like this', as per GCS recommendation

* aclocal.in: Convert comments, diagnostic and help screen
to the use of new quoting format 'like this' or "like this"
rather than `like this'.

12 years agopm: do not quote `like this', as per GCS recommendation
Stefano Lattarini [Thu, 23 Feb 2012 19:25:26 +0000 (20:25 +0100)]
pm: do not quote `like this', as per GCS recommendation

This patch converts the internal perl modules used by automake and
aclocal to the use of new quoting format 'like this' or "like this"
rather than `like this'.

* lib/Automake/ChannelDefs.pm, lib/Automake/Channels.pm,
lib/Automake/Condition.pm, lib/Automake/Configure_ac.pm,
lib/Automake/DisjConditions.pm, lib/Automake/FileUtils.pm,
lib/Automake/General.pm, lib/Automake/Item.pm,
lib/Automake/Rule.pm, lib/Automake/Getopt.pm,
lib/Automake/Options.pm, lib/Automake/Struct.pm,
lib/Automake/VarDef.pm, lib/Automake/Variable.pm,
lib/Automake/Version.pm, lib/Automake/XFile.pm: Update and
adjust quoting format throughout, in comments and diagnostic.
Some minor related rewordings and reformatting since we are
at it.

12 years agom4: do not quote `like this', as per GCS recommendation
Stefano Lattarini [Thu, 23 Feb 2012 18:36:20 +0000 (19:36 +0100)]
m4: do not quote `like this', as per GCS recommendation

This patch converts the files comprising the automake's own build
system to the use of new quoting format 'like this' or "like this"
rather than `like this'.

* m4/auxdir.m4, m4/ccstdc.m4, m4/depend.m4, m4/depout.m4, m4/tar.m4,
m4/init.m4, m4/maintainer.m4, m4/make.m4, m4/missing.m4, m4/vala.m4,
m4/mkdirp.m4, m4/sanity.m4, m4/silent.m4, m4/strip.m4: Update and
adjust quoting format throughout, in comments and diagnostic.  Some
minor related rewordings and reformatting since we are at it.  Bump
serial numbers.

12 years agobuild: do not quote `like this', as per GCS recommendation
Stefano Lattarini [Thu, 23 Feb 2012 18:21:00 +0000 (19:21 +0100)]
build: do not quote `like this', as per GCS recommendation

This patch converts the files implementing the automake's own build
system to the use of new quoting format 'like this' or "like this"
rather than `like this'.

* bootstrap, configure.ac, syntax-checks.mk, Makefile.am,
lib/Makefile.am, m4/Makefile.am, syntax-checks.mk: Update quoting
format throughout, in comments and diagnostic.  Some minor related
rewordings and reformatting since we are at it.

12 years agohacking: update advice w.r.t. release process
Stefano Lattarini [Thu, 23 Feb 2012 14:40:31 +0000 (15:40 +0100)]
hacking: update advice w.r.t. release process

* HACKING: Don't describe the obsolete 'git-release' target anymore.
Instead, document the new and improved targets 'git-tag-release' and
'git-upload-release' (introduced in commit v1.11-674-gaf5f939 of
25-01-2012, "release: revamp rules to tag and upload the releases").

12 years agohacking: do not quote `like this', as per GCS recommendation
Stefano Lattarini [Thu, 23 Feb 2012 14:27:36 +0000 (15:27 +0100)]
hacking: do not quote `like this', as per GCS recommendation

* HACKING: Quote 'like this' or "like this", not `like this'.  This
is done for consistency with the new recommendations in the GNU
Coding Standards, and because I've come to actually prefer the '...'
and "..." quoting format over the `...' one.

12 years agoam: do not quote `like this', as per GCS recommendation
Stefano Lattarini [Thu, 23 Feb 2012 14:15:26 +0000 (15:15 +0100)]
am: do not quote `like this', as per GCS recommendation

This patch converts the automake-provided '*.am' fragments, and
related files, to the use of new quoting format 'like this' or
"like this" rather than `like this'.

* lib/am/check.am: Update quoting format throughout, in comments
and diagnostic.  Some related rewordings, reformatting, and removal
of redundant commands since we are at it.
* lib/am/configure.am: Likewise.
* lib/am/dejagnu.am: Likewise.
* lib/am/depend2.am: Likewise.
* lib/am/distdir.am: Likewise.
* lib/am/inst-vars.am: Likewise.
* lib/am/install.am: Likewise.
* lib/am/lang-compile.am: Likewise.
* lib/am/lisp.am: Likewise.
* lib/am/ltlib.am: Likewise.
* lib/am/mans.am: Likewise.
* lib/am/progs.am: Likewise.
* lib/am/remake-hdr.am: Likewise.
* lib/am/subdirs.am: Likewise.
* lib/am/tags.am: Likewise.
* lib/am/texi-vers.am: Likewise.
* lib/am/texibuild.am: Likewise.
* lib/am/texinfos.am: Likewise.
* lib/am/yacc.am: Likewise.

12 years agotests: quote 'like this', not `like this', as per GCS recommendation
Stefano Lattarini [Thu, 23 Feb 2012 12:07:57 +0000 (13:07 +0100)]
tests: quote 'like this', not `like this', as per GCS recommendation

This patch converts the automake testsuite and related files, to
the use of new quoting format 'like this' or "like this" rather
than `like this'.

This is done for consistency with the new recommendations in the GNU
Coding Standards, and, well, because I've come to actually prefer
the '...' and "..." quoting formats over the `...' one.

* tests/README: Update quoting format throughout.  Remove some
"excessive" use of quoting, and throw in minor rewording where
appropriate.
* tests/Makefile.am: Likewise, for comments.
* tests/CheckListOfTests.am: Likewise.
* tests/defs-static.in: Likewise.
* tests/defs: Likewise.
* tests/trivial-test-driver: Likewise.
* Many tests/*.tap, tests/*.test and tests/*.sh files: Likewise,
and for the diagnostic and informational messages as well.
* tests/gen-testsuite-part: Likewise, and for the generated tests
as well.

12 years agospy: "rm -f" and "rm -rf" without args are portable
Stefano Lattarini [Wed, 22 Feb 2012 13:27:17 +0000 (14:27 +0100)]
spy: "rm -f" and "rm -rf" without args are portable

According to recent testing by Eric Blake, it seems that all
non-museum rm(1) implementations don't complain if called without
file operands, *if* the '-f' option is used.  This behaviour will
likely be mandated by future versions of the POSIX standard as
well.

We'd like to start assuming this rm(1) behaviour in future Automake
releases, in order to simplify some automake-provided cleanup rules.
So, for the moment, we add a new "spy" test in our test suite, to
try ensuring that all the rm(1) implementation we encounter "in the
wild" truly behaves as expected in this regard.

For more references, see this discussion on the bug-autoconf list:
 <http://lists.gnu.org/archive/html/bug-autoconf/2012-02/msg00002.html>
which sprang from coreutils bug#10819:
 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10819>
and brought to the POSIX issue#542:
 <http://austingroupbugs.net/view.php?id=542>
which has been accepted and will ensure that future version of the
POSIX standards will mandate that 'rm' shouldn't complain if called
without file operands, when the '-f' option is in use.

* tests/spy-rm.test: New test.
* tests/list-of-tests.mk: Add it.

12 years agotests: avoid spurious failures under "make distcheck"
Stefano Lattarini [Wed, 22 Feb 2012 11:30:38 +0000 (12:30 +0100)]
tests: avoid spurious failures under "make distcheck"

* tests/tap-setup.sh: Pass also '-f' option to 'cp' invocations,
so that files that have already been copied in without write
permissions will still be overwritten where needed, instead of
causing a spurious testsuite failure.  Issue seen when the
testsuite is run under "distcheck".
* tests/defs (get_shell_script): Remove target file before
overwriting it, for the same reason.  Rework code flow a bit
since we are at it.

12 years agofixup: avoid spurious failure for 'parallel-tests-many.test'
Stefano Lattarini [Wed, 22 Feb 2012 10:30:54 +0000 (11:30 +0100)]
fixup: avoid spurious failure for 'parallel-tests-many.test'

* tests/parallel-tests-many.test: Adjust grepping of "make check"
and "make recheck" output to match the new format of the testsuite
summary.  Remove redundant 'set -e' call since we are at it.

12 years agotests: prefer 'configure.ac' over 'configure.in'
Stefano Lattarini [Tue, 21 Feb 2012 18:47:36 +0000 (19:47 +0100)]
tests: prefer 'configure.ac' over 'configure.in'

With this change, our testsuite now uses 'configure.ac' as the
name for the typical autoconf input, instead of the obsolescent
'configure.in' (which has been deprecated for several years, at
least since autoconf 2.50).

Most of the test cases changed by this commit have been
automatically modified with this sed command (using GNU
sed):

  sed -i 's/\<configure\(\\\?\)\.in\>/configure\1.ac/g'

* syntax-checks.mk (sc_tests_no_configure_in): New syntax check.
(syntax_check_rules): Add it.
* tests/defs: Create stub for autoconf input in 'configure.ac',
not in 'configure.in'.  Adjust comments.
($AUTOCONF, $AUTOHEADER, $AUTORECONF): Remove workaround for the
infamous debian autoconf wrapper: we don't need such workaround
anymore now that we name our autoconf input as 'configure.ac'.
For more information, see commit v1.11-564-g63da492 "test defs:
hack to support autoconf-wrapper programs" of 16-12-2011.
* tests/README: Use 'configure.ac', not 'configure.in'.
* Many many tests: Likewise.
* tests/backcompat3.test: Adjust to avoid spurious failures.
* tests/backcompat5.test: Likewise.
* tests/missing6.test: Likewise.
* tests/backcompat6.test: Likewise, and extend a bit since we
are at it.

12 years agocoverage: expose automake bug#7868
Stefano Lattarini [Wed, 28 Dec 2011 21:37:44 +0000 (22:37 +0100)]
coverage: expose automake bug#7868

Expose the command-line length limit issue that can affect the
Automake-generated parallel-tests harness, especially on systems
where this limit is smaller (e.g., MinGW/MSYS).

Suggestion by Bob Friesenhahn.

* tests/parallel-tests-many.test: New test.  We have verified that
it actually exposes the bug#7868, as it passes when we opportunely
reduce the number of test cases in $(TESTS).  Checked on NetBSD 5.1
64bit, Debian unstable 32bit, Solaris 10 64bit and Cygwin 1.5 32bit.
* tests/list-of-tests.mk (handwritten_TESTS): Add it.
* tests/Makefile.am (XFAIL_TESTS): Likewise.

12 years agotests: remove obsoleted "icc" requirement
Stefano Lattarini [Tue, 21 Feb 2012 21:19:16 +0000 (22:19 +0100)]
tests: remove obsoleted "icc" requirement

* tests/defs (icc): This requirement is not used anymore by any
test case, so remove it.

12 years agoreadme: fix typo in tests/README
Stefano Lattarini [Tue, 21 Feb 2012 18:23:50 +0000 (19:23 +0100)]
readme: fix typo in tests/README

12 years agotests: "make installcheck" shouldn't run the testsuite twice
Stefano Lattarini [Tue, 21 Feb 2012 13:06:25 +0000 (14:06 +0100)]
tests: "make installcheck" shouldn't run the testsuite twice

* Makefile.am (installcheck-local): Remove.  The "installcheck"
target provided by automake is already a recursive target, so
there's no need to have an 'installcheck-local' recipe that
manually recurse into 'tests/'.  In fact, such a manual recursion
was causing the testsuite to be run twice by "make installcheck".

12 years agonews: minor fixlets and reorganization
Stefano Lattarini [Tue, 21 Feb 2012 12:33:27 +0000 (13:33 +0100)]
news: minor fixlets and reorganization

* NEWS: Get rid of form-feed characters (^L) throughout the file.
Use separator lines instead (composed by 76 '~' characters), or
just an extra blank lines for older less verbose entries (those
predating the 1.8 release).
(New in 1.11.3): Move description of planned future backward
incompatibilities that won't make it to 1.12 ...
(New in 1.11a): ... in here.  Quote 'like this', not `like this'.
Other minor miscellaneous rewordings and fixlets.

12 years agocosmetics: few typofixes
Stefano Lattarini [Tue, 21 Feb 2012 09:03:17 +0000 (10:03 +0100)]
cosmetics: few typofixes

12 years agoautomake: new option 'serial-tests'
Stefano Lattarini [Mon, 20 Feb 2012 17:33:50 +0000 (18:33 +0100)]
automake: new option 'serial-tests'

Currently, automake offers a 'parallel-tests' option to enable the
use of the parallel testsuite harness in the generated Makefiles,
but no option to explicitly state the intention of using the older
serial testsuite driver (which is currently the default).

This makes the parallel test harness seems like a second-class
citizen (while actually it should be the other way around); more
importantly, it will prevent us from making the parallel harness
be the default one in future automake versions, since the users
of the serial harness would then have no way to instruct automake
to continue using it.

We solve all of this by introducing a new 'serial-tests' option.

* lib/Automake/Options.pm (_process_option_list): Recognize the
new option, and related minor refactoring.
* tests/serial-tests.test: New test.
* tests/list-of-tests.mk: Add it.
* doc/automake.texi: Update.
* NEWS: Likewise.

12 years agotests: fix a timestamp issue, and other minor buglets
Stefano Lattarini [Mon, 20 Feb 2012 13:04:46 +0000 (14:04 +0100)]
tests: fix a timestamp issue, and other minor buglets

Reported by Panther Martin in automake bug#10848.

* tests/conffile-leading-dot.test: Add a proper '$sleep' invocation,
to avoid spurious failures on fast systems without sub-second
timestamp resolutions.  Add other minor related and unrelated
improvements and fixlets since we are at it.

12 years agoautomake: new option to print location of scripts and data files
Stefano Lattarini [Sun, 19 Feb 2012 17:43:28 +0000 (18:43 +0100)]
automake: new option to print location of scripts and data files

With this change, we add a new automake option '--print-libdir'
that prints (on stdout) the path of the directory containing the
Automake-provided scripts (e.g., 'missing' and 'install-sh') and
data files (e.g., INSTALL or texinfo.tex).

Suggestion by Nick Bowler.  See also automake bug#10473.

* automake.in (parse_arguments): Handle the new option.
(usage): Mention it.
* doc/automake.texi (automake Invocation): Document it.
* NEWS: Update.
* tests/print-dir.test: New test.
* tests/list-of-tests.mk: Add it.

12 years agodocs: prefer the awk+sh TAP driver over the perl one
Stefano Lattarini [Sun, 19 Feb 2012 16:12:55 +0000 (17:12 +0100)]
docs: prefer the awk+sh TAP driver over the perl one

We had completed our shell+awk implementation of the TAP driver
months ago, but never documented it in the manual, continuing to
document only the "prototype" written in perl instead.  Time to
fix this, before the 1.12 release.

* doc/automake.texi (Use TAP with the Automake test harness): Now
we document the use of the awk+shell implementation of our TAP
driver, rather than of the perl one.
* tests/tap-doc2.test: Adjust to use the shell+awk implementation
of the TAP driver.

12 years agotests: be stricter in determining whether "make -jN" works
Stefano Lattarini [Sun, 19 Feb 2012 13:53:53 +0000 (14:53 +0100)]
tests: be stricter in determining whether "make -jN" works

* tests/parallel-tests3.test: With at least Solaris 10 CCS make,
"make -jN" does not fail, but merely prints a warning about
"DistributedMake -j option" being ignored.  This was causing this
test case to fail spuriously.  So we now use a stricter check in
determining whether make works in parallel mode.  Since we are at
it, we try to cater also to Sun Distributed make, which understands
"-j N" but *not* "-jN".

12 years agotests: don't trust exit status of "make -k"
Stefano Lattarini [Sun, 19 Feb 2012 10:48:08 +0000 (11:48 +0100)]
tests: don't trust exit status of "make -k"

* tests/parallel-tests-extra-programs.test: Unless $MAKE is GNU
make, don't trust the exit status of "$MAKE -k".  Fixes a spurious
failure with OpenBSD 5.0 make and NetBSD 5.1 make.

12 years agotests: fix race condition in 'self-check-dir.tap'
Stefano Lattarini [Sun, 19 Feb 2012 10:00:45 +0000 (11:00 +0100)]
tests: fix race condition in 'self-check-dir.tap'

* tests/self-check-dir.tap (do_check): Don't fail if "ls -l" fails.

12 years agoparallel-tests: fix another BSD parallel make issue
Stefano Lattarini [Sat, 18 Feb 2012 12:59:26 +0000 (13:59 +0100)]
parallel-tests: fix another BSD parallel make issue

When BSD make is run in parallel mode, it apparently strips any
leading directory component from the automatic variable '$*' (of
course, against what POSIX mandates).  This was causing FreeBSD 9.0
make and NetBSD 5.1 make to spuriously fail with automake-generated
test harnesses if subdir tests were present *and* make was being
run in parallel mode.  This issue affected also the Automake own
testsuite.

* lib/am/check2.am (am__set_b): New internal variable.
(%OBJ%, %EXT%.log, %EXT%$(EXEEXT).log): Use it to work around
the described BSD make issue.
* tests/parallel-tests3.test: Enhanced to expose the bug.
* tests/parallel-tests-subdir.test: Enhance a little, since we
are at it.
* NEWS: Update.

12 years agotests: avoid FreeBSD make VPATH issues in more tests (see bug#7884)
Stefano Lattarini [Sat, 18 Feb 2012 08:47:57 +0000 (09:47 +0100)]
tests: avoid FreeBSD make VPATH issues in more tests (see bug#7884)

See also similar change 'v1.11-755-g818bc40' of 07-02-2012,
"tests: work around bug#7884 in many yacc/lex tests".  The
rationale for this change is basically the same.

* tests/lex-lib-external.test: Use "yl_distcheck" instead of
bare "$MAKE distcheck" to avoid extra failures caused by
automake bug#7884.
* tests/lex-noyywrap.test: Likewise.
* tests/lex-libobj.test: Likewise.
* tests/man6.test: This test suffers from the same FreeBSD make
incompatibility in VPATH handling that is the source of automake
bug#7884.  Since this is caused by rules that are defined in the
Makefile.am by the test itself, rather that being generated by
automake, the best thing to do is to skip this test if we detect
the presence of said make incompatibility (through the function
'useless_vpath_rebuild').
* tests/man8.test: Likewise.

12 years agocosmetics: remove extra trailing whitespace in configure.ac
Stefano Lattarini [Sat, 18 Feb 2012 08:26:30 +0000 (09:26 +0100)]
cosmetics: remove extra trailing whitespace in configure.ac

12 years agoMerge branch 'yacc-quote-fix'
Peter Rosin [Fri, 17 Feb 2012 23:07:11 +0000 (00:07 +0100)]
Merge branch 'yacc-quote-fix'

12 years agotests: avoid spurious failure with FreeBSD make
Stefano Lattarini [Fri, 17 Feb 2012 22:50:30 +0000 (23:50 +0100)]
tests: avoid spurious failure with FreeBSD make

* tests/parallel-tests-extra-programs.test: FreeBSD make seems to
write (some) diagnostic messages on stdout instead than on stderr,
so now we also grep the stdout for the expected make diagnostic.

12 years agotests: fix broken quoting in the generated yacc grammar
Peter Rosin [Fri, 17 Feb 2012 21:09:38 +0000 (22:09 +0100)]
tests: fix broken quoting in the generated yacc grammar

Fixes problem introduced by v1.11-1912-ge0906b7 "tests: avoid
spurious failure with non-bison yacc" from 12-02-2012.

* tests/suffix10.tap (Makefile.am): Avoid outer single quotes
when we need to produce single quotes.

12 years agofixup: always use correct path for automake/aclocal wrappers
Stefano Lattarini [Fri, 17 Feb 2012 15:01:25 +0000 (16:01 +0100)]
fixup: always use correct path for automake/aclocal wrappers

Otherwise, bootstrapping from a git checkout won't work anymore.
Issue introduced in today's commit 'v1.11-1974-ga98e58f'.

* doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Export PATH in a
way that makes the automake and aclocal wrappers truly accessible
(the location of this wrappers has been modified in a recent commit,
but this makefile hadn't been updated accordingly).
(update_mans): Likewise.

12 years agotests: fix spurious failure in VPATH build
Stefano Lattarini [Fri, 17 Feb 2012 14:32:10 +0000 (15:32 +0100)]
tests: fix spurious failure in VPATH build

* tests/self-check-dir.tap: Adjust to handle running in a VPATH
build correctly.

12 years agotests: fix many spurious failures in VPATH builds
Stefano Lattarini [Fri, 17 Feb 2012 14:20:03 +0000 (15:20 +0100)]
tests: fix many spurious failures in VPATH builds

The 'is' helper script, used by some test cases since commit
'v1.11-1830-g96401cb' of 08-02-2012, "tests: better way to compare
lists in Makefile rules", is not available in VPATH builds, since
it resides in $(srcdir), nor in $(builddir), and only $(builddir)
is added to $PATH in the test script.  This was causing spurious
failures.

Solve this issue by re-organizing a bit the layout and placing of
wrapper and help scripts used by the testsuite.  This reorganization
is by no mean complete, but should be enough to solve the VPATH
issues.

* tests/is: Moved ...
* tests/ax/is: ... here
* tests/automake.in: Moved ...
* tests/wrap/automake.in: ... here.
* tests/aclocal.in: Moved ...
* tests/wrap/aclocal.in: ... here.
* tests/defs-static.in ($am_bindir, $PATH): Adjust.
* configure.ac (AC_CONFIG_FILES): Likewise.
* tests/Makefile.am (EXTRA_DIST, check_SCRIPTS): Likewise.
* tests/get-sysconf.test: Likewise.
* .gitignore: Likewise.

12 years agotests: relax a test to cater to NetBSD make
Stefano Lattarini [Fri, 17 Feb 2012 12:46:53 +0000 (13:46 +0100)]
tests: relax a test to cater to NetBSD make

* tests/parallel-tests-empty-testlogs.test: When $(TESTS) is empty,
NetBSD 5.1 make ends up defining $(TESTS_LOGS) to ".log" rather than
to the empty string (as would be expected).  This behaviour was
causing a check in this test case to fail.  But that check was in
fact overly strict, since our recipes are smart enough to work
around the botched-up substitution.  Also, the failure wasn't a
regression from Automake 1.11, since that version too would have
triggered the same error with NetBSD 5.1 make.  So we just relax
the test a little to avoid extra noise in the testsuite.

12 years agoMerge branch 'maint'
Stefano Lattarini [Fri, 17 Feb 2012 12:29:19 +0000 (13:29 +0100)]
Merge branch 'maint'

* maint:
  dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS)

12 years agodryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS)
Stefano Lattarini [Fri, 17 Feb 2012 10:52:13 +0000 (11:52 +0100)]
dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS)

* lib/am/header-vars.am (am__make_dryrun): Be smarter and more
correct in handling shell metacharacters in $(MAKEFLAGS).

12 years agotests: TAP-based tests should error if no plan was specified
Stefano Lattarini [Fri, 17 Feb 2012 12:14:57 +0000 (13:14 +0100)]
tests: TAP-based tests should error if no plan was specified

After this change, it will still be OK for TAP-based tests not to
report any explicit TAP plan -- but they should state *explicitly*
that they want to do so, by calling the 'plan_' function with a
proper argument (currently, either "later" or "unknonwn").

Motivated by a recent issue introduced by yesterday's commit
'v1.11-1959-g0699a84' (pointed out by Peter Rosin, and fixed
by follow-up commit 'v1.11-1961-gea44190').

* tests/tap-functions.sh (plan_): Get rid of '$have_tap_plan_',
and refactor use and initialization of '$planned_' in a way that
will allow client script to get more information on which kind
of plan (if any) has been declared by the former 'plan_' invocation.
(skip_all_): Adjust.
* tests/defs (exit trap): Only print the "lazy" TAP plan if 'plan_'
has requested that *explicitly*.
* syntax-check.mk (sc_tests_tap_plan): Remove: it's obsolete now,
since a TAP-based test that doesn't call 'plan_' explicitly won't
print any TAP plan, and the TAP driver will catch that and report
an error.
(syntax_check_rules): Adjust.

12 years agotests: expose $(am__dry_run) limitations
Stefano Lattarini [Fri, 17 Feb 2012 09:57:37 +0000 (10:57 +0100)]
tests: expose $(am__dry_run) limitations

Currently, the internal $(am__dry_run) macro can fail in weird ways
when $(MAKEFLAGS) contains shell metacharacters.  Let's expose this
limitation in the testsuite (and fix a couple of related weaknesses
since we are at it).

* tests/make-dryrun.test: Moved ...
* tests/make-dryrun.tap: ... here, converted to TAP, and extended to
expose the described limitations.  Also ...
(am_parallel_tests): Define this so that the 'gen-testsuite-part'
script won't generate a useless wrapper script.
* test/list-of-tests.mk: Update.

12 years agocosmetics: fix commit message typo in previous
Peter Rosin [Fri, 17 Feb 2012 09:23:26 +0000 (10:23 +0100)]
cosmetics: fix commit message typo in previous

* .git-log-fix: The file is called .git-log-fix, nothing else.

12 years agofixup: .git-log-fix should not be executable
Peter Rosin [Fri, 17 Feb 2012 09:13:15 +0000 (10:13 +0100)]
fixup: .git-log-fix should not be executable

* .fix-git-log: Set mode 644.

12 years agomaint: support amending the generated ChangeLog, and fix a typo
Peter Rosin [Fri, 17 Feb 2012 08:52:07 +0000 (09:52 +0100)]
maint: support amending the generated ChangeLog, and fix a typo

* Makefile.am (gitlog_to_changelog_options): Add support for
amending the generated ChangeLog.
(EXTRA_DIST): Update.
* .git-log-fix: New file with things to amend to the generated
ChangeLog, starting with a fix for a typo in v1.11-1963-g3b369e6
"maint: use AC_PACKAGE_BUGREPORT to avoid duplication" from
yesterday.

12 years agocosmetics: normalize copyright notice in some tests
Stefano Lattarini [Thu, 16 Feb 2012 22:14:00 +0000 (23:14 +0100)]
cosmetics: normalize copyright notice in some tests

* tests/lisp3.test: Normalize copyright notice to read the
same of that of other tests.
* tests/lisp4.test: Likewise.
* tests/lisp5.test: Likewise.
* tests/lisp6.test: Likewise.
* tests/lisp7.test: Likewise.
* tests/lisp8.test: Likewise.
* tests/lispdry.test: Likewise.

12 years agoreadme: fix grammaro
Stefano Lattarini [Thu, 16 Feb 2012 21:30:52 +0000 (22:30 +0100)]
readme: fix grammaro

Reported by Eric Blake.

* README: Use "also has" instead of "has also"; the former sounds
better to a native speaker.

12 years agomaint: use AC_PACKAGE_BUGREPORT to avoid duplication
Stefano Lattarini [Thu, 16 Feb 2012 21:29:32 +0000 (22:29 +0100)]
maint: use AC_PACKAGE_BUGREPORT to avoid duplication

* configure.ac: In the message reporting whether the user is about
to build an alpha or beta version, use the autoconf-provided
AC_PACKAGE_BUGREPORT macro instead of duplicating the bur reporting
address.

12 years agoreadme: update and renew
Stefano Lattarini [Thu, 16 Feb 2012 20:54:51 +0000 (21:54 +0100)]
readme: update and renew

* README: Remove stale or now-obvious description and advices.
Add reference to the INSTALL file.  Some minor rewordings.

12 years agodepcomp tests: fix up today's botched commit
Stefano Lattarini [Thu, 16 Feb 2012 19:49:43 +0000 (20:49 +0100)]
depcomp tests: fix up today's botched commit

Today's commit 'v1.11-1959-g0699a84' has caused the generated
'depcomp*.tap' tests to call the 'plan_' function *before* it is
defined, and has also caused the extra checks required for better
libtool coverage to be run only when libtool is *not* in use,
rather than the other way around.  Fix this mess.

Report by Peter Rosin.

* tests/gen-testsuite-part: Include './defs' in the generated
tests, rather than doing so from 'depcomp.sh'.  Adjust the count
of TAP tests for 'depcomp-lt-auto.test' (it's 84, not 72).
* tests/depcomp.sh: Adjust accordingly, and fix inverted logic
about the decision of when to run extra checks for libtool.

12 years agobuild: clearer diagnostic if "make" is invoked before "./configure"
Stefano Lattarini [Thu, 16 Feb 2012 18:52:37 +0000 (19:52 +0100)]
build: clearer diagnostic if "make" is invoked before "./configure"

Since a GNUmakefile wrapper has been introduced in our build
system, a "make" invocation issued before a "./configure" one
has caused GNU make to die with the cryptic message:

  GNUmakefile:18: Makefile: No such file or directory
  GNUmakefile:19: /syntax-checks.mk: No such file or directory
  make: *** No rule to make target `/syntax-checks.mk'.  Stop.

* GNUmakefile: Detect when we are being run from an unconfigured
tree, and give helpful diagnostic.

12 years agodepcomp tests: put TAP plan in generated tests
Stefano Lattarini [Thu, 16 Feb 2012 18:08:58 +0000 (19:08 +0100)]
depcomp tests: put TAP plan in generated tests

This avoids a spurious maintcheck failure, and also simplifies
the 'depcomp.sh' helper script a little.

* tests/gen-testsuite-part: Create and place also a proper 'plan_'
call (to emit the TAP plan) in each generated 'depmod*.tap' test.
* tests/depcomp.sh: Remove 'plan_' invocations, and simplify a
little since we are at it.

12 years agoupdate-copyright: don't touch COPYING and INSTALL
Stefano Lattarini [Thu, 16 Feb 2012 17:53:09 +0000 (18:53 +0100)]
update-copyright: don't touch COPYING and INSTALL

Reported by Peter Rosin.

* update-copyright: Also exclude the COPYING and INSTALL files
found in the top-level directory.
* COPYING, INSTALL: Revert update of copyright years done in
today's commit 'v1.11-1948-g641a5a4'.

12 years agomaintcheck: whitelist some false positives
Stefano Lattarini [Thu, 16 Feb 2012 17:44:13 +0000 (18:44 +0100)]
maintcheck: whitelist some false positives

Instead of tweaking or dumbing down some of our sources or tests
in order not to make them spuriously trigger few maintainer checks,
we tweak such checks instead.

* syntax-checks.mk (sc_tests_overriding_macros_on_cmdline): Also
allow the variable 'exp' to be overridden on the make command line.
Whitelist the test 'make-dryrun.test' where appropriate.
(sc_mkinstalldirs): When whitelisting the 'mkinstalldirs' occurrence
in 'lib/Makefile.am', do not look for the exact line number: it is
obviously too fragile.

12 years agotests: avoid spurious failure with parallel make
Stefano Lattarini [Thu, 16 Feb 2012 12:36:25 +0000 (13:36 +0100)]
tests: avoid spurious failure with parallel make

* tests/parallel-tests-extra-programs.test: Run make with the '-k'
option where appropriate, to ensure it doesn't stop at the first
error, which would prevent the building of the extra programs we
expect it to build.

12 years agotests: avoid spurious failure on older Cygwin
Stefano Lattarini [Thu, 16 Feb 2012 11:30:23 +0000 (12:30 +0100)]
tests: avoid spurious failure on older Cygwin

* tests/tap-signal.tap: Sending a SIGQUIT on Cygwin 1.5 can cause a
segmentation fault instead (sometimes at least).  Don't let this
older bug pollute the results of our testsuite.

12 years agofixup: display captured make stdout in 'tap-signal.tap'
Stefano Lattarini [Thu, 16 Feb 2012 10:52:55 +0000 (11:52 +0100)]
fixup: display captured make stdout in 'tap-signal.tap'

12 years agotests: avoid spurious failure in 'suffix3.tap'
Stefano Lattarini [Thu, 16 Feb 2012 10:31:55 +0000 (11:31 +0100)]
tests: avoid spurious failure in 'suffix3.tap'

* tests/suffix3.tap (foo.zoo): This C++ file fails to compile with
older g++ (3.4.4) on Cygwin 1.5.25 if we #include <iostream>.  Don't
do that, since it's not strictly required, and the "using namespace"
directive is already enough to ensure the file contents is valid C++
but invalid C.

12 years agodocs: fix typo in description of AM_YFLAGS
Stefano Lattarini [Thu, 16 Feb 2012 10:09:50 +0000 (11:09 +0100)]
docs: fix typo in description of AM_YFLAGS

Report by Akim Demaille.

* doc/automake.texi (Program variables): Don't list "-d -t" twice
in the examples of valid ways to specify the '-d' flag to Yacc;
instead, use "-d -t" and "-t -d".  Add missing period.

12 years agotests: another spurious failure with older autoconf fixed
Stefano Lattarini [Thu, 16 Feb 2012 10:04:50 +0000 (11:04 +0100)]
tests: another spurious failure with older autoconf fixed

* tests/aclocal8.test (configure.in): Also call 'AC_INIT', it's
required by some older autoconf versions (e.g., 2.63).
* tests/acloca15.test: Likewise.  Add trailing ':' command since
we are at it.

12 years agotests: fix spurious failure with older autoconf
Stefano Lattarini [Thu, 16 Feb 2012 09:58:03 +0000 (10:58 +0100)]
tests: fix spurious failure with older autoconf

* tests/conffile-leading-dot.test: Relax grepping of 'config.status'
stderr, to cater for older autoconf.  Issue revealed by a failure
with autoconf 2.63 on Cygwin 1.5.25.

12 years agomaint: sync auxiliary files from upstream
Stefano Lattarini [Thu, 16 Feb 2012 09:51:23 +0000 (10:51 +0100)]
maint: sync auxiliary files from upstream

* lib/texinfo.tex: Synced from upstream, by "make fetch".
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.

12 years agomaint: run "make update-copyright"
Stefano Lattarini [Thu, 16 Feb 2012 09:46:23 +0000 (10:46 +0100)]
maint: run "make update-copyright"

12 years agomaint: add some missing copyright notices
Stefano Lattarini [Thu, 16 Feb 2012 09:42:38 +0000 (10:42 +0100)]
maint: add some missing copyright notices

* tests/ChangeLog-old: Add copyright notice.
* tests/aclocal.in: Likewise.
* tests/automake.in: Likewise.
* tests/extract-testsuite-summary: Likewise.
* tests/prove-runner: Likewise.

12 years agoMerge branch 'maint'
Stefano Lattarini [Thu, 16 Feb 2012 09:35:19 +0000 (10:35 +0100)]
Merge branch 'maint'

* maint:
  update-copyright: don't touch files synced from external packages

12 years agoupdate-copyright: don't touch files synced from external packages
Stefano Lattarini [Thu, 16 Feb 2012 09:33:30 +0000 (10:33 +0100)]
update-copyright: don't touch files synced from external packages

* Makefile.am (update-copyright): Do not update copyright years of
files synced from external packages, as given by the '$(FETCHFILES)'
variable.  Silence the recipe since we are at it.

12 years agoMerge branch 'extra-dist-tests-ksh-bug'
Stefano Lattarini [Thu, 16 Feb 2012 09:09:48 +0000 (10:09 +0100)]
Merge branch 'extra-dist-tests-ksh-bug'

* extra-dist-tests-ksh-bug:
  tests: fix spurious failure when testing wildcards in EXTRA_DIST

12 years agotests: fix spurious failure when testing wildcards in EXTRA_DIST
Stefano Lattarini [Thu, 16 Feb 2012 09:05:35 +0000 (10:05 +0100)]
tests: fix spurious failure when testing wildcards in EXTRA_DIST

* tests/extra10.test: Remove the "make distcheck" call, since, at
least with GNU make 3.82, it trips on the fact that $(srcdir) is
not explicitly used in the wildcard in EXTRA_DIST.

12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 15 Feb 2012 18:32:07 +0000 (19:32 +0100)]
Merge branch 'maint'

* maint:
  fixup: distribute 'lib/update-copyright'

12 years agofixup: distribute 'lib/update-copyright'
Stefano Lattarini [Wed, 15 Feb 2012 18:00:10 +0000 (19:00 +0100)]
fixup: distribute 'lib/update-copyright'

While the 'update-copyright' script shouldn't be needed by final
users, that's not a good reason to keep it out by the distribution,
as doing so might be unhelpful toward occasional but curious users
interested in peeking into the automake build system.

* lib/Makefile.am (EXTRA_DIST): Distribute 'update-copyright'.

12 years agomaint: prefer $(GIT) over hard-coded "git" in maintainer recipes
Stefano Lattarini [Wed, 15 Feb 2012 17:47:15 +0000 (18:47 +0100)]
maint: prefer $(GIT) over hard-coded "git" in maintainer recipes

* Makefile.am (update-copyright, autodiffs): Use '$(GIT)' instead
of hard-coding 'git'.

12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 15 Feb 2012 17:40:06 +0000 (18:40 +0100)]
Merge branch 'maint'

* maint:
  maint: add a rule to use gnulib's update-copyright

12 years agoMerge branch 'extra-dist-tests-ksh-bug'
Stefano Lattarini [Wed, 15 Feb 2012 17:31:33 +0000 (18:31 +0100)]
Merge branch 'extra-dist-tests-ksh-bug'

* extra-dist-tests-ksh-bug:
  tests: avoid ksh bug for wildcards in EXTRA_DIST

12 years agoMerge branch 'yl-work-for-master'
Stefano Lattarini [Wed, 15 Feb 2012 17:29:57 +0000 (18:29 +0100)]
Merge branch 'yl-work-for-master'

* yl-work-for-master: (44 commits)
  tests: truly use Lex and Yacc selected by configure
  news: fix grammaros related to Yacc
  yacc/lex tests: avoid spurious skips with non-GNU make
  fixup: remove double news entry
  tests: workaround for shells with broken 'set -e'
  tests: avoid spurious failure with non-bison yacc
  tests: fix spurious failures due to missing 'yywrap()' function
  fixup: list of yacc/lex tests was botched
  tests: work around bug#7884 in many yacc/lex tests
  yacc/lex tests: remove an unneeded workaround for bug#8485
  yacc/lex tests: avoid too much failures with FreeBSD make
  yacc-dist-nobuild.test: add reference to bug#7884
  yacc tests: fix bug in 'yacc-cxx.test'
  lex tests: fix spurious link errors on Solaris
  lex: "make clean" removes .c files from non-distributed .l
  lex tests: make test on Lex dependency tracking more "semantic"
  lex tests: remove erroneous check about ylwrap distribution
  yacc tests: "make clean" removes C++ files from non-distributed .y
  tests: add a workaround for automake bug#8485
  tests: add a couple of inter-tests reference
  ...

12 years agocscope: is only expected to work with GNU make in VPATH setup
Stefano Lattarini [Wed, 15 Feb 2012 09:16:36 +0000 (10:16 +0100)]
cscope: is only expected to work with GNU make in VPATH setup

The 'cscope' functionality does not properly handle VPATH rewrites;
so we explicitly document that, for now, it is only ensured to work
with GNU make when doing a VPATH build, and we adjust testsuite
requirements accordingly.

Issue revealed by a failure of 'cscope.test' with Solaris 10 CCS
make.

* doc/automake.texi (Tags): Document the limitations of the cscope
support.  Couple of fixlets to formatting since we are at it.
* tests/cscope.test: Converted to TAP, and thus moved ...
* tests/cscope.tap: ... here.  Only run tests with VPATH builds when
using GNU make.  Adjust so that no C, C++, Fortran or Java compiler,
nor any Emacs program, will be required to run this test.
* tests/list-of-tests.mk: Adjust.

12 years agomaint: add a rule to use gnulib's update-copyright
Jim Meyering [Sun, 12 Feb 2012 15:57:42 +0000 (16:57 +0100)]
maint: add a rule to use gnulib's update-copyright

* lib/update-copyright: New file, from gnulib.
* Makefile.am (FETCHFILES): Add update-copyright to the list.
(fetch): Fetch it.
(update-copyright): New rule.

12 years agoMerge branch 'doc-no-history'
Stefano Lattarini [Tue, 14 Feb 2012 20:30:56 +0000 (21:30 +0100)]
Merge branch 'doc-no-history'

* doc-no-history:
  docs: move chapter on automake history out of main manual

12 years agocheck: fix test-suite.log formatting with NetBSD sed
Stefano Lattarini [Tue, 14 Feb 2012 20:23:04 +0000 (21:23 +0100)]
check: fix test-suite.log formatting with NetBSD sed

* lib/am/check.am (am__rst_section): Tweak to ensure en extra final
newline is printed also with NetBSD sed.  Issue revealed by a
failure of 'test-metadata-global-result.test'.
* tests/rst-formatting.test: New test, checking the internal
variables '$(am__rst_title)' and '$(am__rst_section)'.
* tests/list-of-tests.mk: Add it.

12 years agotests: avoid ksh bug for wildcards in EXTRA_DIST
Stefano Lattarini [Tue, 14 Feb 2012 18:26:29 +0000 (19:26 +0100)]
tests: avoid ksh bug for wildcards in EXTRA_DIST

Some shells, like NetBSD 5.1 /bin/ksh, have a bug that causes
wildcards resulting from an unquoted parameter expansion not to
be expanded as expected in some cases:

    $ touch a b c d
    $ /bin/sh -c 'var="[ab]" && echo $var' # As expected.
    a b
    $ /bin/ksh -c 'var="[ab]" && echo $var' # Oops.
    [ab]
    $ /bin/ksh -c 'var="?" && echo $var' # But this as expected.
    a b c d

This was causing a failure in our testsuite.  Work around that.

See also:
<http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00149.html>

* tests/extra11.test: Work around the described issue by using the
$(wildcard) builtin in the EXTRA_DIST definition.  This is not a
problem, since this test was assuming GNU make anyway.  Since we are
at it, enhance coverage a little by also running "make distcheck".
* tests/extra10.test: Similarly, enhance coverage by also running
"make distcheck", and fix a minor bug in the process.  But continue
using a "bare" wildcard expression in EXTRA_DIST, without involving
the $(wildcard) builtin, to ensure coverage of similar usages "in
the wild".

12 years agoMerge branch 'fix-tap-signal-test'
Stefano Lattarini [Tue, 14 Feb 2012 13:28:57 +0000 (14:28 +0100)]
Merge branch 'fix-tap-signal-test'

* fix-tap-signal-test:
  fixup: fix test tap-signal.tap to avoid false negatives

12 years agofixup: fix test tap-signal.tap to avoid false negatives
Stefano Lattarini [Tue, 14 Feb 2012 13:28:34 +0000 (14:28 +0100)]
fixup: fix test tap-signal.tap to avoid false negatives

Problem introduced by yesterday commit v1.11-1851-g79b2c6a,
"tests: avoid yet other spurious failures on NetBSD"

* tests/tap-signal.tap: Truly ensure the exit status of the make
call under test is correctly reflected in the TAP result displayed
by the corresponding 'command_ok_' invocation.

12 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 14 Feb 2012 13:07:12 +0000 (14:07 +0100)]
Merge branch 'maint'

* maint:
  fixup: do not tickle makefile-deps.test with the make_dryrun code
  gitattributes: custom merge driver for ChangeLog not needed anymore
  gitattributes: use "union" merge driver for NEWS

12 years agofixup: do not tickle makefile-deps.test with the make_dryrun code
Peter Rosin [Tue, 14 Feb 2012 11:55:32 +0000 (12:55 +0100)]
fixup: do not tickle makefile-deps.test with the make_dryrun code

* lib/am/header-vars.am (am__make_dryrun): Avoid code matching
'^ *:' in the Makefile, as that tickles makefile-deps.test.

12 years agogitattributes: custom merge driver for ChangeLog not needed anymore
Stefano Lattarini [Tue, 14 Feb 2012 12:25:35 +0000 (13:25 +0100)]
gitattributes: custom merge driver for ChangeLog not needed anymore

* .gitattributes: We don't maintain a version-controlled ChangeLog
file anymore, so we have no need to specify a custom merge driver
for it anymore.  Update accordingly.

12 years agogitattributes: use "union" merge driver for NEWS
Stefano Lattarini [Tue, 14 Feb 2012 12:21:26 +0000 (13:21 +0100)]
gitattributes: use "union" merge driver for NEWS

This should help in reducing the spurious merge conflicts for the
NEWS file, which have already caused a great deal of confusion and
wasted time.

Suggestion by Eric Blake:
http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00119.html

* .gitattributes (NEWS): Use the "union" merge driver.

12 years agotests: truly use Lex and Yacc selected by configure
Stefano Lattarini [Tue, 14 Feb 2012 09:11:02 +0000 (10:11 +0100)]
tests: truly use Lex and Yacc selected by configure

When 'yacc-work' was merged into 'yl-work-for-master' in commit
v1.11-1910-ge6c40d4 (12-02-2012), the values for $YACC and $LEX
stopped being substituted directly by config.status, and started
being substituted by a Makefile rule using the contents of the
$(YACC) and $(LEX) makefile variables.

Unfortunately, our configure.ac was calling AM_SUBST_NOTMAKE on
'YACC' and 'LEX' (see commit v1.11-284-g34ca92b of 29-01-2011,
"tests: don't define YACC and LEX in the Makefiles", for a
rationale), so that the $(YACC) and $(LEX) in the Makefile simply
hold the default make-provided values (that is, "yacc" and "lex"
respectively), independently of what yacc and lex programs were
defined at configure time.

Apart from reducing coverage and creating confusion, this behaviour
also caused spurious failures on systems lacking a yacc and/or lex
programs.

Problem reported by Peter Rosin.  References:
 <http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00131.html>
 <http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00132.html>

* configure.ac (AM_SUBST_NOTMAKE): Don't call anymore on 'YACC' nor
on 'LEX'.

12 years agodepcomp tests: do not specify LDFLAGS for static libraries
Peter Rosin [Tue, 14 Feb 2012 01:56:39 +0000 (02:56 +0100)]
depcomp tests: do not specify LDFLAGS for static libraries

Commit v1.11-1848-gb3f34ca accidentally specified LDFLAGS
for libbaz even when built as a static library, which is
not allowed.

* tests/depcomp.sh (src/Makefile.am): Don't add any LDFLAGS
when libbaz is built as a static library.

12 years agodepcomp tests: avoid redundant runs for non-libtool test
Peter Rosin [Tue, 14 Feb 2012 01:51:55 +0000 (02:51 +0100)]
depcomp tests: avoid redundant runs for non-libtool test

When running the dependency tests without libtool, it's
not meaningful to run the tests three-fold, the libtool
configure options are simply ignored anyway.

* tests/depcomp.sh: Only run the tests three-fold when
libtool is in use.

12 years agotests: avoid yet other spurious failures on NetBSD
Stefano Lattarini [Mon, 13 Feb 2012 23:14:36 +0000 (00:14 +0100)]
tests: avoid yet other spurious failures on NetBSD

* tests/tap-signal.tap: Add a "strategically placed" extra 'echo'
command and a temporary silencing of xtraces; they are required
to avoid possible garbled output with NetBSD make, which would
miss some final newlines in the expected places and thus mess up
our TAP output.

12 years agotests: avoid a spurious failure on NetBSD
Stefano Lattarini [Mon, 13 Feb 2012 22:54:24 +0000 (23:54 +0100)]
tests: avoid a spurious failure on NetBSD

* tests/test-driver-is-distributed.test: Rewrite to avoid having to
edit configure.in; such editing was subtly botched on NetBSD (the
'AC_CONFIG_AUX_DIR' call got misplaced, ending up *before* the
'AC_INIT' call), and that caused an hard-to-track bug.  Since we
are at it, extend coverage a little.

12 years agotests: avoid spurious failure with NetBSD /bin/ksh
Stefano Lattarini [Mon, 13 Feb 2012 21:24:35 +0000 (22:24 +0100)]
tests: avoid spurious failure with NetBSD /bin/ksh

* tests/parallel-tests-fd-redirect-exeext.test (configure.in): Tweak
so that we don't end up with the generated configure script having
two nested subshells that start with '((':

  ((./conftest$EXEEXT 9>&1) | grep "^foobar") >&5 2>&5

which is unportable and could confuse some shells (e.g., NetBSD 5.1
/bin/ksh) into thinking we are trying to perform an arithmetic
operation.

12 years agotests: increase coverage for depcomp tests
Peter Rosin [Mon, 13 Feb 2012 20:21:48 +0000 (21:21 +0100)]
tests: increase coverage for depcomp tests

On platforms requiring that no undefined symbols exist in order
to build shared libraries (e.g. Windows DLLs), you have to
explicitly declare that the libtool library you are building
does not actually have any undefined symbols, for libtool to
even try to build it as a shared library.  Without that
explicit declaration, libtool falls back to a static library
only, regardless of any --enable-shared flags etc.

tests/depcomp.sh (Makefile.am): Add -no-undefined if a libtool
library (.la) is built.
(src/Makefile.am): Likewise.

12 years agonews: fix grammaros related to Yacc
Peter Rosin [Mon, 13 Feb 2012 20:13:12 +0000 (21:13 +0100)]
news: fix grammaros related to Yacc

* NEWS: Fix some grammaros and typos.

12 years agoyacc/lex tests: avoid spurious skips with non-GNU make
Stefano Lattarini [Mon, 13 Feb 2012 18:33:51 +0000 (19:33 +0100)]
yacc/lex tests: avoid spurious skips with non-GNU make

* tests/defs (useless_vpath_rebuild): Fix botched logic that
was causing this function to always diagnose non-GNU make
implementations as being affected by the "useless rebuilds
in VPATH setup" bug (that affects FreeBSD make and causes
automake bug#7884).

12 years agofixup: remove double news entry
Peter Rosin [Mon, 13 Feb 2012 15:43:34 +0000 (16:43 +0100)]
fixup: remove double news entry

* NEWS: Remove double (stale) news entry introduced by a botched
merge.

12 years agotests: workaround for shells with broken 'set -e'
Stefano Lattarini [Sun, 12 Feb 2012 17:03:08 +0000 (18:03 +0100)]
tests: workaround for shells with broken 'set -e'

* tests/dist-formats.tap: Some versions of the BSD shell wrongly
bail out when the 'errexit' shell flag is active and the left-hand
command in a "&&" list fails and that list is the *last* command
of a "case" statement.  This was causing an incorrect initialization
of the '$missing_compressors' variable, and thus potential spurious
failures when non-existing programs were assumed to be available.

12 years agotests: workaround for shells with broken 'set -e'
Stefano Lattarini [Sun, 12 Feb 2012 16:16:54 +0000 (17:16 +0100)]
tests: workaround for shells with broken 'set -e'

* tests/yacc-cxx.test: Some versions of the BSD shell wrongly bail
out when the 'errexit' shell flag is active if the left-hand
command in a "&&" list fails and such list is the *last* command
of a "for" or "while" loop or of an "if" construct.  Work around
this issue.
* tests/check12.test: Likewise.

12 years agotests: avoid spurious failure with non-bison yacc
Stefano Lattarini [Sun, 12 Feb 2012 16:02:33 +0000 (17:02 +0100)]
tests: avoid spurious failure with non-bison yacc

Issue revealed by a failure on NetBSD 5.1.

* tests/suffix10.tap (Makefile.am): Adjust the rule generating
the '.y' files so that such files won't use bison-only features.

12 years agotests: fix spurious failures due to missing 'yywrap()' function
Stefano Lattarini [Sun, 12 Feb 2012 15:37:44 +0000 (16:37 +0100)]
tests: fix spurious failures due to missing 'yywrap()' function

The AC_PROG_LEX Autoconf macro does not diagnose a failure to find
the "lex library" expected to provide a 'yywrap' function (function
which is required to link most lex-generated programs).  On the
contrary, when all the link attempts (i.e., with '-ll' and '-lfl')
fail, configure declares that no lex library is needed, and simply
proceeds with the configuration process -- only for the build to
possibly fail later, at make time.

This behaviour is intended; the Autoconf manual reads:

  You are encouraged to use Flex in your sources, since it is
  both more pleasant to use than plain Lex and the C source it
  produces is portable.  In order to ensure portability, however,
  you must either provide a function 'yywrap' or, if you don't use
  it (e.g., your scanner has no '#include'-like feature), simply
  include a '%noyywrap' statement in the scanner's source.

This AC_PROG_LEX behaviour is causing some spurious failures of
the Automake testsuite in environments which lack a proper library
providing 'yywrap' (this happens for example on Fedora-based
systems).   The proper workaround is to simply provide a fall-back
implementation of 'yywrap' in our lexers.

See also similar commits 'v1.11-546-gca0ba5d' (24-10-2011),
'v1.11-1085-gb5c3968' (24-10-2011) and 'v1.11-871-geb147a1'
(25-05-2011).

* tests/lex-clean.test: Provide a dummy 'yywrap' function.
* tests/lex-line.test: Likewise.
* tests/lex-nodist.test: Likewise.
* tests/lex-depend.test: Likewise.
* tests/lex-clean-cxx.test: Move the dummy 'yywrap' function
from the main '.cc' file into the '.lxx' file, so that it won't
be subject to the namespace declaration in the '.cc' file (which
was causing a spurious link error in systems without a default
"lex library").

12 years agoMerge branch 'yacc-work' into yl-work-for-master
Stefano Lattarini [Sun, 12 Feb 2012 14:06:17 +0000 (15:06 +0100)]
Merge branch 'yacc-work' into yl-work-for-master

* yacc-work: (37 commits)
  fixup: list of yacc/lex tests was botched
  tests: work around bug#7884 in many yacc/lex tests
  yacc/lex tests: remove an unneeded workaround for bug#8485
  yacc/lex tests: avoid too much failures with FreeBSD make
  yacc-dist-nobuild.test: add reference to bug#7884
  yacc tests: fix bug in 'yacc-cxx.test'
  lex tests: fix spurious link errors on Solaris
  lex: "make clean" removes .c files from non-distributed .l
  lex tests: make test on Lex dependency tracking more "semantic"
  lex tests: remove erroneous check about ylwrap distribution
  yacc tests: "make clean" removes C++ files from non-distributed .y
  tests: add a workaround for automake bug#8485
  tests: add a couple of inter-tests reference
  lex tests: require just `lex' instead of `flex'
  fix typo in ChangeLog (2011-05-04)
  tests defs: use `skip_' for skipping yacc/lex related tests
  lex/yacc tests: remove redundant $distdir definition
  coverage: test lex-generated "#line" directives postprocessing
  tests: minor improvements to a couple of yacc tests
  tests: fix spurious failure in test 'yacc-d-cxx.test'
  ...

+ Extra non-trivial edits:

* tests/defs.in: Delete; the differences from maint has been
merged into 'tests/defs' and 'tests/defs-static.in'.
* tests/defs (yacc, lex): Use 'skip_all_', not 'skip_', to
skip the whole test case if yacc (resp. lex) is missing.
(bison): New, set up the environment so that 'bison -y' will
be used as the yacc program.
(useless_vpath_rebuild, yl_distcheck): Moved in from
'tests/defs.in'.
* tests/defs-static.in ($YACC, $LEX): Default to the values
determined at configure time, and allow them to be overridden
by the more namespace-safe variables '$AM_TESTSUITE_YACC' and
'$AM_TESTSUITE_LEX' respectively.
* tests/Makefile.am (do_subst): Also substitute '@YACC@' and
'@LEX@'.
* Several tests: Fix requirements declarations, by preferring
'lex' and 'yacc' over 'flex' and 'bison' whenever possible.