This adds proper semantical tests (i.e. run make to check the
rebuild rules are correctly triggered) in addition to tentative
grepping of the generated Makefile.in(s).
* tests/remake.test: Enable `errexit' shell flag, and related
changes. Modernize `configure.in'. Add trailing `:' command.
Improve heading comments, and add a reference to new sister test
remake1a.test.
* tests/remake3.test: Likewise (but with sister test being
remake3a.test).
* tests/remake2.test: Improve heading comments. Enable `errexit'
shell flag, and related changes. Modernize `configure.in'. Make
grepping of `Makefile.in' slightly stricter. Add trailing `:'
command.
* tests/remake5.test: Also run the `distcheck' target. Add
trailing `:' command. Use proper m4 quoting in configure.in.
* tests/remake4.test: Prefer `$me' over hard-coded test name.
* tests/remake7.test: Use the `configure.in' stub created by
./defs, rather than writing it from scratch.
* tests/remake6.test: Likewise. Also, add trailing `:' command,
and ensure verbose printing of captured make output.
* tests/remake1a.test: New test, sister of remake.test.
* tests/remake3a.test: New test, sister of remake3.test.
* tests/remake8a.test: New test.
* tests/remake8b.test: Likewise.
* tests/remake9a.test: Likewise.
* tests/remake9b.test: Likewise.
* tests/remake9c.test: Likewise.
* tests/remake9d.test: Likewise.
* tests/remake10a.test: Likewise.
* tests/remake10b.test: Likewise.
* tests/remake10c.test: Likewise.
* tests/remake11.test: Likewise.
* tests/remake12.test: Likewise.
* tests/Makefile.am (TESTS): Updated.
* tests/auxdir.test: Enable `errexit' shell flag. Prefer `$me'
over hard-coded test name. Use proper m4 quoting. Add trailing
`:' command.
* tests/auxdir2.test: Likewise. Try to call automake also with
the `-a' option, so that it will not fail for spurious reasons.
* tests/auxdir3.test: Add an explanatory comment and a trailing
`:' command.
* tests/auxdir4.test: Prefer `$me' over hard-coded test name.
Make grepping of automake stderr slightly stricter. Also, now
this test just checks about Automake's reaction to unportable
auxiliary directory names (and it has been extended in this
respect). Moved the checks about non-existent auxiliary
directories to ...
* tests/auxdir5.test: ... this new test.
* tests/auxdir6.test: New test.
* tests/auxdir7.test: Likewise.
* tests/auxdir8.test: Likewise.
* tests/auxdir9.test: Likewise.
* tests/Makefile.am (TESTS): Updated.
Improve tests on generated portions of configure help screen.
* tests/help-depend.test: Grepping of configure help screen
relaxed to cater for possible line wrapping, and tightened in
other respects.
* tests/help-depend2.test: Likewise.
* tests/help-dmalloc.test: Likewise.
* tests/help-lispdir.test: Likewise.
* tests/help-maintainer.test: Likewise.
* tests/help-multilib.test: Likewise.
* tests/help-silent.test: Likewise.
* tests/help-upc.test: Likewise.
* tests/help-init.test: Grepping of configure help screen
tightened.
Libobj tests: refer to automake bug tracker for limitations.
* tests/libobj15b.test (configure.in): In the comment explaining
why an apparently redundant AC_OUTPUT is indeed needed, refer
to the relevant entry in the Automake bug tracker rather than
describing the bug in detail with a FIXME-style comment.
* tests/libobj15c.test: Likewise.
* tests/libobj20b.test: Likewise.
* tests/canon-name.test: Add trailing `:' command. When writing
configure.in, prefer to use $me instead of hard-coding the test
name.
* tests/canon3.test: Prefer trailing `:' over trailing `Exit 0'.
* tests/canon4.test: Likewise. Make grepping of Makefile.in
stricter. Improve heading comment, and add reference to ...
* tests/canon6.test: ... this new test (sister test of the
previous one).
* tests/canon.test: Prefer cat + here-doc over echo to append
text to configure.in. Extend grepping of Automake stderr. Add
trailing `:' command.
* tests/canon5.test: Likewise.
* tests/canon7.test: New file, stress test on canonicalization.
* tests/canon8.test: New test, for better coverage (check that
the `@' character is not transliterated in canonicalizations).
* tests/Makefile.am: Updated.
* tests/dejagnu.test: Do not create useless dummy test script.
Add trailing `:' command. In heading comments, add reference
to ...
* tests/check12.test: ... this new "semantic" test, covering
concurrent use of dejagnu tests, simple tests and `check-local'
target.
* tests/dejagnu2.test: Make test more reliable, by avoid weak
grepping of make output. Prefer `cat' over `echo' to append
to configure.in. Quote literal dots in grep regexps. Prefer
`grep -c ...' over `grep ... | wc -l'. Make grepping of
automake stderr slightly stricter. Add trailing `:' command.
* tests/dejagnu3.test: Prefer `cat' over `echo' to append to
configure.in. Check stderr of expected-to-fail "make" call.
Remove extra blank lines from Makefile.am.
* tests/dejagnu4.test: Prefer `cat' over `echo' to append to
configure.in. Prefer `mv -f' over plain `mv' when the target
file already exists. Avoid extra mkdir calls by creating more
directories at once. Better use of blank lines. Check that
the `*.log' and `*.sum' files are created by runtest also when
"make check" fails.
* tests/dejagnu7.test: Prefer `cat' over `echo' to append to
configure.in. Better use of blank lines. Add a trailing `:'
command.
* tests/dejagnu6.test: Likewise, and give the dejagnu test a
more descriptive name.
* tests/dejagnu5.test: Likewise. Also, simply define package
name to `$me' rather than using a non-obvious sed script to
extract it from `AC_INIT', and write the Makefile.am with only
one command.
* tests/Makefile.am (TESTS): Updated.
* tests/aclibobj.test: Removed, superseded by ...
* tests/libobj1.test: ... this new test, which runs autoconf,
./configure and make, to ensure everything really works.
* tests/libobj3.test: Add trailing `:' command. Quote literal dot
in grep regexp.
* tests/libobj4.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command. Use proper m4 quoting.
* tests/ltlibobjs.test: Likewise.
* tests/libobj5.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command. Make more robust by using
longer filenames to be grepped.
* tests/libobj8.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command. Use the configure.in
stub provided by ./defs, rather than writing it from scratch.
* tests/libobj2.test: Likewise. Also, add calls to autoconf,
./configure and make, to ensure everything really works.
* tests/libobj7.test: Likewise, and ensure that at least one
function listed in AC_REPLACE_FUNCTIONS is truly replaced.
* tests/libobj13.test: Make grepping of Automake stderr slighty
stricter. Add trailing `:' command.
* tests/libobj12.test: Likewise. Also, prefer "cat + here-doc"
over "echo" to append to Makefile.am, and some cosmetic changes
in spacing.
* tests/libobj14.test: Call `Exit 1' if sourcing of ./defs fails.
Slighty improve m4 quoting. Add trailing `:' command.
* tests/libobj10.test: Add calls to autoconf, ./configure and
make, to ensure everything really works. Also, remove tests that
nonexistent source for AC_LIBOBJ cause an Automake failure: this
is already checked by ...
* tests/libobj15a.test: ... this new test.
* tests/libobj15b.test: New test, sister test of libobj15a.test,
checks AC_LIBSOURCE instead of AC_LIBOBJ.
* tests/libobj15c.test: New test, sister test of libobj15a.test,
checks AC_LIBSOURCES instead of AC_LIBOBJ.
* tests/libobj11.test: Removed, superseded by ...
* tests/libobj16a.test: ... this new test.
* tests/libobj16b.test: New test, sister test of libobj16a.test,
but using oldish/depracated idioms.
* tests/libobj17.test: New test.
* tests/libobj18.test: Likewise.
* tests/libobj19.test: Likewise.
* tests/libobj20a.test: Likewise.
* tests/libobj20b.test: Likewise.
* tests/libobj20c.test: Likewise.
* tests/Makefile.am (TESTS): Updated.
Prefer running configure and make over grepping the generated
files; this is both more correct and less fragile.
* tests/colon.test: Made more "semantic", as described above.
* tests/colon5.test: Likewise.
* tests/colon6.test: Likewise.
* tests/colon7.test: Likewise.
* tests/colon2.test: Likewise, and improve syncing with sister
test `colon3.test'.
* tests/colon3.test: Likewise (but with the sister test being
`colon2.test' here).
Tests required tools: also try `-v' option for GNU compilers.
* tests/defs.in: In the loop on "$required" tools, for gcc
and g++, also run "gcc -v" (resp. "g++ -v"), to get more
information, and for consistency with gcj.
Enable `set -e' in more tests (plus some tweakings).
* tests/mkinstall.test: Enable `errexit' shell flag, and related
changes. Add a trailing `:' command, if needed.
* tests/mdate2.test: Likewise.
* tests/objc.test: Likewise.
* tests/noinst.test: Likewise.
* tests/outdir.test: Likewise.
* tests/number.test: Likewise.
* tests/pluseq.test: Likewise.
* tests/req.test: Likewise.
* tests/rulepat.test: Likewise.
* tests/specflg6.test: Likewise.
* tests/spell3.test: Likewise.
* tests/parse.test: Likewise, and ...
(configure.in): Use the stub created by ./defs, rather than
writing it from scratch. Remove useless calls to AC_PROG_RANLIB
and AC_OUTPUT.
* tests/mdate4.test: Likewise.
* tests/mkinstall.test: Likewise, and ...
(configure.in): ... drop useless call to `AC_OUTPUT'.
* tests/output.test: Enable `errexit' shell flag, and related
changes. Add a trailing `:' command.
(configure.in): Modernize.
* tests/output2.test: Likewise.
* tests/output3.test: Likewise.
* tests/output4.test: Likewise.
* tests/mdate3.test: Enable `errexit' shell flag, and related
changes. Prefer `$me' over hard-coded test name.
* tests/nodistdir.test: Enable `errexit' shell flag, and related
changes. Prefer trailing `:' over trailing `Exit 0'.
* tests/nodist.test: Likewise. Also, prefer cat + here-doc over
echo to create input test files, and do not create useless dummy
C source files.
* tests/nodist2.test: Likewise.
* tests/ppf77.test: Enable `errexit' shell flag, with related
changes. Add a trailing `:' command. Do not create useless
dummy source files.
* tests/spelling.test: Enable `errexit' shell flag, with related
changes. Add a trailing `:' command. Also, grep Automake error
message.
* tests/specflg3.test: Enable `errexit' shell flag, with related
changes. Avoid unportable use of `-e' option of fgrep. Prefer
trailing `:' over trailing `Exit 0'. Remove extra empty lines,
and cosmetic changes to whitespaces.
* tests/obsolete.test: Enable `errexit' shell flag, with related
changes. Improve verbosity. Other miscellanous changes.
Improve and extend tests on `:=' variable assignments.
* tests/colneq.test: Avoid redundant use of variable assignments
in Makefile.am. Use command-line automake options instead of
editing AUTOMAKE_OPTIONS in Makefile.am. Make grepping of the
generated Makefile.in slightly stricter. Add a trailing `:'
command.
* tests/colneq2.test: Do not create unneeded dummy files. Run
also autoconf, ./configure and make. Add trailing `:' command.
* tests/colneq3.test: New test, similar to colneq.test, but
running also autoconf, ./configure and make.
* tests/Makefile.am (TESTS): Update.
* automake.in (parse_arguments): Do not recognize anymore options
`--Werror' and `--Wno-error' as synonyms of respectively `-Werror'
and `-Wno-error'.
* tests/werror.test: Update: use `-Werror' instead of `--Werror'.
* NEWS: Update.
In some tests on automake-produced silent rules, we forced the
use of gcc depmode to improve testsuite coverage; but this has
unsurprisingly led to spurious failures when some non-GNU C
compilers were used. So we are now careful to require GCC in
tests that force gcc depmode.
From reports by Ralf Wildenhues.
* silent5.test: Test removed, its content split into ...
* silent-many-generic.test, silent-many-gcc.test: ... these new
sister tests, the latter of which forces gcc depmode and lists
"gcc" in $required.
* silentlex.test: Test removed, its content split into ...
* silent-lex-generic.test, silent-lex-gcc.test: ... these new
sister tests, the latter of which forces gcc depmode and lists
"gcc" in $required.
* silentyacc.test: Test removed, its content split into ...
* silent-yacc-generic.test, silent-yacc-gcc.test: ... these new
sister tests, the latter of which forces gcc depmode and lists
"gcc" in $required.
* tests/Makefile.am (TESTS): Updated.
Modernize, improve and/or tweak some test scripts.
* tests/maintclean.test: Use proper m4 quoting. Add trailing `:'
command.
* tests/sinclude.test: Likewise, and add a couple of blank lines,
for clarity.
* tests/make.test: Move setting of `errexit' shell flag earlier in
the script (just after inclusion of ./defs). Use the configure.in
stub created by ./defs, rather than writing it from scratch. Some
cosmetic changes in spacing. Ensure we wait enough time before
touching configure.in to trigger the rebuild rules.
* tests/makej.test: Use `$me' instead of hard-coding the test
name. Add trailing `:' command.
* tests/version7.test: Likewise.
* tests/space.test: Enable `errexit' shell flag, and related
changes.
* tests/makevars.test: Likewise. Also, prefer trailing `:' over
trailing `Exit 0', and be more tolerant of white spaces when
grepping Makefile.in.
Separate checks on target overriding into multiple test scripts.
* tests/overrid.test: Deleted, its contents separated into ...
* tests/override-suggest-local.test: ... this new test ...
* tests/override-html.test: ... and this new test ...
* tests/override-conditional-1.test: ... and this new test ...
* tests/override-conditional-2.test: ... and this new test (still
xfailing).
* tests/Makefile.am (TESTS, XFAIL_TESTS): Updated.
Code cleanup after removal of option `--output-directory'.
* automake.in ($output_directory): Remove, it's unconditionally
defined to `.' and used only ...
(generate_makefile): ... in this subroutine, which now has been
edited and simplified accordingly.
* Makefile.am (release-stats): Be sure to take into account all
the generated tests, by grepping the test scripts to decide which
ones of them are automatically generated.
* tests/repeated-options.test: New test, check that automake
does not complain on repeated options, nor generate broken or
incorrect makefiles.
* tests/Makefile.am (TESTS): Updated.
Fix spurious failures of silent5.test with Sun Fortran.
* tests/silent5.test: Strip from the make output some verbose
messages possibly printed by the SunStudio fortran compilers,
to avoid spurious failures. This bug has been there from the
very first version of this test script.
Fix spurious failures of silent-rules tests with Sun Fortran.
* tests/silentf77.test: Strip from the make output some verbose
messages possibly printed by the SunStudio fortran compilers, to
avoid spurious failures. Add a trailing `:' command.
* tests/silentf90.test: Likewise.
Fix regression in colon{5,6}.test (failures on AIX 5.3).
* tests/colon5.test: Also substitute `@SHELL@' with `$SHELL' when
post-processing the generated Makefile.in, to work around a bug
of AIX 5.3 make which doesn't allow setting the `$(SHELL)' macro
on the commend line. Calls to `$MAKE' adjusted accordingly.
* tests/colon6.test: Likewise.
Regression introduced in commit v1.11-175-gf9fe878 "Modernize,
improve and/or extend tests `colon*.test", and reported by Ralf
Wildenhues.
* tests/backcompat5.test: Remove double-hash comments
from makefile rule commands, they are not part of the
Automake API. Fixes testsuite failure with Tru64 make.
* tests/ansi.test: Remove redundant hackish check done using a
hand-postprocessed Makefile.in. This checs worked by setting
the `$(SHELL)' macro on the command line of make, but this is
not supported by the AIX 5.3 make implementation.
This bug has been lurking for a long time, and was activated by
commit v1.11-125-gc1f6cdb "Enable `errexit' shell flag in various
tests". Report by Ralf Wildenhues.
Ralf Wildenhues [Sun, 14 Nov 2010 16:53:49 +0000 (17:53 +0100)]
Fix install-strip when $(STRIP) contains several words.
* lib/am/install.am (install-strip): Update comment. Use
separate sub-make invocations for empty and nonempty $(STRIP),
to fix quoting issues.
* tests/strip2.test, tests/strip3.test: New tests.
* tests/Makefile.am (TESTS): Adjust.
Fix bug in test `backcompat6.test' (MSYS portability).
* tests/backcompat6.test (Makefile.am): Grep the output from the
test program, rather than diffing it, to avoid spurious failures
on MinGW/MSYS due to LF vs. CRLF line endings.
* m4/regex.m4: Document the `AM_WITH_REGEX' macro as obsolete,
and state that it should be removed two years from now.
(AM_WITH_REGEX): Raise an m4-time warning of the "obsolete"
category when this macro is used.
* doc/automake.texi (Public Macros): Move description of
`AM_WITH_REGEX' from here ...
(Obsolete Macros): ... to here, and declare it as obsolete
and "to be removed in a future version".
* tests/regex-obsolete.test: New test.
* tests/Makefile.am (TESTS): Update.
* tests/defs: Give meaningful messages about the reasons of a
test skip; this is especially useful as this file is run without
verbose xtraces on. Related reorderings in the code and new
comments.
Enable `set -e' in more tests (plus some tweakings).
* tests/implicit.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command.
* tests/insh2.test: Likewise.
* tests/instman2.test: Likewise.
* tests/interp.test: Likewise.
* tests/interp2.test: Likewise.
* tests/library.test: Likewise.
* tests/mclean.test: Likewise.
* tests/info.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command. Remove useless chaff from
generated Makefile.am. Add a "FIXME" comment.
* tests/include.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command. Prefer cat + here-doc over
echo to append to configure.in. Make tests more robust by using
longer and less common names to grep. Remove an useless call to
echo. Remove an useless subshell.
* tests/header.test: Enable `errexit' shell flag, and related
changes. Use proper m4 quoting. Add excerpts from the original
report of the bug tested for by this script.
* tests/gcj.test: Enable `errexit' shell flag, and related
changes. Use proper m4 quoting. Add trailing `:' command.
* tests/gcj3.test: Likewise.
* tests/ldflags.test: Likewise.
* tests/libtool.test: Likewise.
* tests/listval.test: Likewise.
* tests/javaprim.test: Likewise, and prefer cat + here-doc over
echo to append to configure.in.
* tests/javasubst.test: Likewise.
* tests/discorver.test: Enable `errexit' shell flag. Prefer
trailing `:' over trailing `Exit 0'.
* tests/instdat.test: Enable `errexit' shell flag, and related
changes. Use proper m4 quoting. Avoid usless subshell. Prefer
cat + here-doc over echo to append to configure.in.
* tests/libtool2.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command. Use the configure.in
stub provided by ./defs, rather than writing it from scratch.
Tests defs: move static definitions in a new file `defs-static'.
The new file is meant to be idempotent w.r.t. mutiple inclusions.
* tests/defs.in: Removed, its contents split among ...
* tests/defs-static.in: ... this new file ...
* tests/defs: ... and this new file, including the former.
* configure.ac (AC_CONFIG_FILES): Remove `tests/defs', add
`tests/defs-static'.
(AC_CONFIG_LINKS): Add `tests/defs'.
* tests/Makefile.am ($(parallel_tests)): Update.
($(instspc_tests)): Likewise.
* tests/.gitignore: Update.
* tests/defs.in ($testsbuilddir): Substitute from @abs_builddir@.
Add sanity check on $testsbuilddir, similar to those on
$testsrcdir and $top_testsrcdir.
Tests defs: do not print message "Running test $0" anymore.
* tests/defs.in: Printing the message "=== Running test $0" at
the beginning of each tests made sense when Automake used the old
test-driver, which sent all the output directly to stdout/stderr.
Now that the parallel test-driver is used, which saves output of
each test in its correspoding log file, that old message is just
useless noise.
* tests/defs.in: We already save the value of `pwd` in $curdir
early in the file, so there no need to recalculate it later, when
the current working directory is not changed.
Tests defs: do not use `Exit' where plain `exit' suffices.
* tests/defs.in: Use "exit 77" rather than "Exit 77" to skip the
test when required libtool/gettext macros are not found, since
such skips would take place before the exit trap is installed.