* tests/defs (GNUmake): Instead of just skipping the tests
requiring GNU make if $MAKE is not GNU make, try to look for
it and, if found, redefine $MAKE accordingly. This will help
to transparently increase coverage on non-GNU systems which
have GNU make available in PATH.
* tests/acloca22.test: Improve and extend the heading comments.
Add reference to related tests 'remake-deleted-m4-file.test' and
'remake-renamed-m4-macro-and-file.test'. Since we are at it,
add trailing `:' command, and few blank lines for readability.
* tests/remake-renamed-m4-macro-and-file.test: In the heading
comments, add reference to the related test 'acloca22.test'.
tests: few more checks on automatic remake support
* tests/remake-all-1.test: New test, check that the "all" target
triggers rebuilt of outdated Makefiles.
* tests/remake-all-2.test: Likewise, but for when the makefiles
are not named `Makefile'.
* tests/Makefile.am (TESTS): Update.
tests: check some remake features with non-GNU make too
* tests/acloca14.test ($required): Drop "GNUmake". This test
works as-is with non-GNU make implementations.
* tests/remake1a.test: Likewise.
* tests/aclocal4.test ($required): Drop "GNUmake".
Modify the test to have it work also with non-GNU make.
* tests/remake5.test: Likewise.
* tests/remake8a.test: Likewise.
* 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/remake12.test: ($required): Drop "GNUmake".
Adapt the test to make it work also with non-GNU make (if
it supports an "include" directive).
* tests/java-compile-run-nested.test: Use `$PATH_SEPARATOR', not
`:', to separate entries of extended PATH and CLASSPATH variables.
* tests/java-compile-run-flat.test: Likewise.
* tests/color2.test: If $MAKE contains command-line arguments (as
in e.g., "make -j2"), expect's directive "spawn $env(MAKE)" fails
spuriously, because it tries to run "$MAKE" as a single command.
Fix this with proper uses of the TCL `eval' builtin.
tests: extend tests on dependency tracking with VPATH
* tests/depmod-tests.sh: New script, fulfilling a threefold role:
1. it is called to generate a Makefile.am snippet, containing the
definition of proper lists of tests;
2. it is called to set up a directory containing some common data
files and autotools-generated files used by the aforementioned
tests (this is done for speed reasons only); and
3. it is called to properly run those tests, one at a time.
* tests/depcomp9.test: Delete, it's obsolete now.
* tests/depcomp10.test: Likewise.
* tests/Makefile.am ($(srcdir)/depmod-tests.am): Include this
snippet, which defines ...
(depmode_tests): ... this new macro, containing the list of the
newly generated `*.depmod' tests.
(TESTS_EXTENSIONS): Add `.depmod'.
(DEPMOD_LOG_COMPILER): Define. It calls `depmod-tests.sh', so that
the "depmode tests" will be executed by passing that driver script
a proper parameter.
($(depmod_tests)): New dependency declaration (dummy, but required
in order to have make actually produce expected log files from the
`.depmod.log' suffix rule).
(TESTS): Add $(depmod_tests).
(EXTRA_DIST): Distribute depmod-tests.sh.
Other minor cosmetic changes and reorderings.
* bootstrap: Generate depmod-tests.am.
* tests/.gitignore: Updated.
tests: avoid extra test generation (for `instspc' tests)
We don't really need to generate tons and tons of wrapper test
scripts (presently, ~ 90) just to run what is basically a single
test (specifically, `instspc-tests.sh') with different parameters.
In fact, the possibility of running a single driver script with
multiple files/configurations/parameters is one of the major
selling points of the 'parallel-tests' testsuite driver of
automake. So why not use ourselves more extensively the best
features we provide?
* tests/instspc-tests.sh: Update heading comments. Expect
to be executed, not sourced. Update handling of command-line
arguments. Adjust to reflect the renaming of "instspc tests"
from `instspc-*.test' to `*.instspc'.
* tests/instspc-data.test: Update heading comments. Execute
driver script `instspc-tests.sh', instead of sourcing it.
Give more informative messages in case of internal errors.
* tests/Makefile.am (TESTS_EXTENSIONS): Define explicitly (to
`.test' and `.instspc').
(TESTS): Add `$(instspc_tests)'.
(generated_tests): Remove `$(instspc_tests)'.
(INSTSPC_LOG_COMPILER): Define. Calls `instspc-tests.sh', so
that the "instspc tests" will be now executed by passing that
driver script a proper parameter.
($(instspc_tests)): Remove, we don't need anymore to generate
this tests.
($(instspc_tests:.test=.log)): Remove, substituted by ...
($(instspc_tests:.instspc=.log)): ... this.
($(instspc_tests)): New dependency declaration (dummy, but
required in order to have make actually produce expected log
files from the `.instspc.log' suffix rule).
(MAINTAINERCLEANFILES, generated_tests): Don't extend with
$(instspc_tests) anymore.
Update comments.
build: improve the definition of the list of testcases
* tests/Makefile.am (handwritten_tests): New variable.
(generated_tests): Likewise.
(TESTS): Redefine as the union of the above.
(EXTRA_DIST): Extend using $(handwritten_tests) and
$(generated_tests) rather than $(TESTS).
* tests/gen-parallel-tests: Update accordingly, and
make more robust.
* tests/defs: Use shorter messages when giving reasons for test
skipping; it turns out these shorter messages are also clearer.
If more info might be useful, send them to the log file only.
tests: fix self check spurious failure with older bash versions
* tests/self-check-cleanup.test: Add trailing `:' to the test code
passed to $SHELL, otherwise older versions of bash (at least 2.05
and 3.2.39) fail to correctly remove the temporary directory in
the exit trap.
tests: add sanity check to 'self-check-cleanup.test'
* tests/self-check-cleanup.test: Check that the "hacked" file
`defs-static' used by the test differs from the "vanilla" one
in builddir. This also offers a little more debugging output.
testsuite: display reasons for skips to the console
* tests/Makefile.am (AM_TESTS_ENVIRONMENT): Open file descriptor
`9' to the original stderr; define `stderr_fileno_' to `9', and
export it.
* tests/self-check-report.test: Prevent new spurious failures by
removing from the environment any definition of `stderr_fileno_'.
* tests/defs: Move the checks verifying that the variables `me',
`parallel_tests' and `required' aren't set in the environment ...
* tests/defs-static.in: ... in here, with some optimizations to
avoid useless forks. Also, do the same checks for the variables
`original_AUTOMAKE' and `original_ACLOCAL' too.
* tests/self-check-env-sanitize.test: Update.
* tests/Makefile.am (TESTS_ENVIRONMENT): Unset also variables
`original_AUTOMAKE' and `original_ACLOCAL'.
java coverage: try to build and run a java program
* tests/java-compile-run-flat.test: New test, try to build and run
a "UNIX-style" java program (complete with wrapper shell script
and the like) with a "flat" source-tree setup (i.e., everything in
the top-level directory).
* tests/java-compile-nested.test: Likewise, but using a more
typical "nested" source-tree setup.
* tests/Makefile.am (TESTS): Update.
tests: fix spurious failure in a test on TESTS (VPATH-related)
* check-tests-in-builddir.test: When not using the parallel-tests
option, do not check that VPATH components are not present in the
displayed test name, since the simple-tests driver do not try to
strip them.
java: allow both JAVA and nobase_JAVA in the same Makefile.am
* automake.in (handle_java): Also strip `nobase_' from the given
prefix, when needed.
* tests/java-clean.test: Update and extend.
* tests/java-compile-install.test: Likewise.
* tests/java-no-duplicate.test: Likewise.
* tests/java-sources.test: Likewise.
* tests/java-noinst.test: Likewise.
* tests/java-mix-dist-nodist.test: Renamed to ...
* tests/java-mix.test: ... this, and extended.
* tests/java-nobase.test: New test, still xfailing due to
unrelated issues.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
Jim Meyering [Sun, 16 Jan 2011 14:36:07 +0000 (15:36 +0100)]
test defs: new subroutines for test skipping/failing.
* tests/defs.in (Exit): Move definition of this function earlier.
(warn_, skip_, fail_, framework_failure_): New functions, inspired
to the homonyms in gnulib's tests/init.sh.
($stderr_fileno_): New global variable, used by the new functions
above.
* tests/README: Updated.
* tests/mclean.test: Remove, it's a weak grepping test completely
superseded by the much more complete `maintclean.test'.
* tests/Makefile.am (TESTS): Update.
* tests/defs.in: Sanity check: abort if any of `parallel_tests'
or `required' is in the environment.
($sed_unindent_prog): Initialize to empty, to avoid interferences
from the environment.
* tests/self-check-me-in-env.test: Renamed to ...
* tests/self-check-env-sanitize.test: ... this, and extended.
* tests/Makefile.am (TESTS): Update.
(TESTS_ENVIRONMENT): Unset variables `parallel_tests' and
`required'. Adjust comments.
tests: don't allow `$me' to be overridden from the environment
* tests/defs.in: Sanity check: abort if $me is in the environment.
* tests/self-check-me-in-env.test: New test.
* tests/Makefile.am (TESTS_ENVIRONMENT): Unset variable `me'.
(TESTS): Update.
java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am
Fixes automake bug#8434.
* automake.in (handle_java): Strip `dist_' and `nodist_' from
the given prefix. Define a new internal Makefile variable
`am__java_sources'. Related adjustments.
* lib/am/java.am (JAVAC, JAVAROOT, CLASSPATH_ENV): Define only the
first time this am file is processed.
(class%DIR%.stamp): Stamp file renamed ...
(class%NDIR%.stamp): ... to this, so that the `dist_' and `nodist_'
prefixes are stripped from the name of the stampfile. Adjust
declaration of dependencies by using the new automake-generated
internal variable `$(am__java_sources)'. In the rule, use `$@'
as the name of the target, rather than hard-coding it.
* tests/java.test: Update and extend.
* tests/java-no-duplicate.test: New test.
* tests/java-mix-dist-nodist.test: Likewise.
* tests/java-compile-and-install.test: Likewise.
* tests/java-clean.test: Likewise.
* tests/java-sources.test: Likewise.
* tests/Makefile.am (TESTS): Update.
The AM_TESTS_SETUP naming was not a good one after all. It may
be technically more correct than AM_TESTS_ENVIRONMENT, but the
latter is a better one simply because it is easier to remember,
and even if you've never heard of it and only know the semantics
of TESTS_ENVIRONMENT, you can have a straightforward way to
figure out how AM_TESTS_ENVIRONMENT would work.
* tests/check.am (am__check_pre): Update.
* doc/automake.in (Simple Tests using parallel-tests): Update.
* tests/parallel-tests-am_tests_setup.test: Renamed ...
* tests/parallel-tests-am_tests_environment.test: ... to this,
and updated.
* tests/Makefile.am (TESTS): Update.
check: new developer-reserved AM_TESTS_SETUP variable
For reference, see the discussion at:
<http://lists.gnu.org/archive/html/automake-patches/2011-01/msg00213.html>
* lib/am/check.am [%?PARALLEL_TESTS%] (am__check_pre): Pass also
$(AM_TESTS_SETUP). Comments updated, and some typos fixed.
* doc/automake.texi (Simple Tests using parallel-tests): Document
AM_TESTS_SETUP. Reorder some of the existing documentation a bit.
* tests/parallel-tests-am_tests_setup.test: New test.
* tests/depcomp8b.test: Add the `--enable-dependency-tracking'
option to the ./configure invocation, so that slower dependency
extractors are not rejects.
* tests/depcomp8b.test: Likewise. Also ...
(foo.c): ... since we are at it, fix spacing to be consistent
with GNU coding standards.
The following additional changes has been made:
* m4/amversion.in: Bump serial number from `1' to `8', to avoid
potential future conflicts with branch-1.11.
* m4/amversion.m4: Likewise.
* m4/gcj.m4: Likewise.
* m4/python.m4: Likewise.
* m4/install-sh.m4: Likewise.
* tests/self-check-cleanup.test: Be laxer when grepping output
from `ls -l', to account for ACLs and SELinux-only files.
* tests/self-check-dir.test: Source `defs-static' to read in the
correct definition for $SHELL.
* tests/self-check-me.test: Likewise, and extend a bit.
maintainer check: quote literal `$' in Makefile rule
* Makefile.am (sc_tests_PATH_SEPARATOR): Escape literal `$'
character in double-quoted string. Fix a bug in which the rule
emitted an erroneously empty substring in its error message.
coverage: test lex-generated "#line" directives postprocessing
* tests/yacc-line.test: In heading comments, add reference to new
sister test `lex-line.test'.
* tests/lex-line.test: New test.
* tests/Makefile.am (TESTS): Update.
tests: minor improvements to a couple of yacc tests
* tests/yacc-auxdir.test: Avoid running autoconf, it's not
needed.
* tests/yacc-line.test: Also check that the yacc-generated C
and header files do not contain "#line" directives referencing
`y.tab.c' or `y.tab.h'. Add a couple of explicative comments.
tests: fix spurious failure in test 'yacc-d-cxx.test'
* tests/yacc-d-cxx.test: Create ylwrap script before calling
automake for the first time, so that the script gets correctly
distributed. Add checks verifying it indeed is.
test defs: define default $distdir (help reducing duplication)
* tests/defs.in ($distdir): New variable, might be used in
testcases checking distribution-related features.
* tests/pr9.test: Use it.
* tests/subdir9.test: Likewise.
* tests/vtexi3.test: Add comment explaining why we redefine
$distdir in this test.
tests: do not uselessly require GNU make or gcc in a few tests
* tests/lex3.test: Remove gcc from requirements, as any working C
compiler should be ok. Consequently, do not clobber user CFLAGS.
Also, remove GNUmake from requirements; it was added (see commit
`Release-1-8-103-g0d2f592') because this test fails with FreeBSD
make due to VPATH issues -- but so do many other yacc-related and
lex-related tests currently, and requiring GNU make in all of
them would unacceptably reduce coverage.
* tests/lexvpath.test: Remove gcc from requirements, as any
working C compiler should be ok.
* tests/yacc4.test: Likewise.
* tests/yacc8.test: Likewise.
* tests/lex5.test: Likewise. Also, do not require anymore GNU
make; to compensate, explicitly call "$MAKE Makefile" to update
the out-of-date Makefile if $MAKE is not GNU make.
tests: split yacc6.test, for better separation and coverage
* tests/yacc6.test: Test removed, its content extended and split
into ...
* tests/yacc-auxdir.test, tests/yacc-depend.test,
tests/yacc-line.test: ... these new tests.
* tests/yacc-depend2.test: New test, exposes the failure that
FreeBSD used to encounter in yacc6.test.
* tests/Makefile.am (TESTS): Update.
depcomp: fix bugs in tests and in the depcomp script
* lib/depcomp (gcc): Remove duplicated `-e' from sed invocation.
* tests/depcomp10.test: Make it executable. Fix a blunder that
has left part of an intended comment not prefixed by `#', thus
causing shell syntax errors. In this same comment, break a
too-long reported error message on multiple lines, for clarity.
Add reference to the relevant bug report. Add a comment which
explains why the test result 'skipped' if the first "make" call
fails. Add other useful comments.
* tests/depcomp9.test: Slightly improve comments.
* lib/depcomp: Be sure to remove VPATH-prefixed object from
dependency output when creating stub rule.
* tests/depcomp10.test: New test.
* tests/Makefile.am (TESTS): Update.
* NEWS: Update.
Report by Bruno Haible.
test defs: fix 'javac' requirement for older JDK versions
The Java compiler from JDK 1.5 (and presumably earlier versions)
cannot handle the `-version' option by itself; and while it does
print the version number, it then errors out with an usage error:
$ javac -version
javac 1.5.0_22
javac: no source files
Usage: javac <options> <source files>
...
Luckily, adding the `-help' option to the `javac' invocation
seems to fix this problem.
* tests/defs.in (javac): Pass also the `-help' option to the
`javac' program. Add a comment explaining why it is needed.
cosmetics: fix typos and wording in some yacc tests
* tests/yacc-cxx.test (foo.cc): Clarify comment about the content
of this file being valid C++ but invalid C.
(parse1.yy): Likewise. Also, remove redundant parentheses in a
`return' statement.
* tests/yacc-d-cxx.test (write_parse): Clarify comment about the
content of the generated files being valid C++ but invalid C.
(write_main): Likewise.
* tests/yacc-basic.test: Remove redundant parentheses in a
`return' statement.
* tests/yacc-d-vpath.test: Adjust spacing around curly brackets.
* tests/yaccvpath.test: Likewise.
* tests/yaccdry.test: Likewise.
* tests/yacc8.test: Likewise.
* tests/yacc4.test: Likewise.
yacc: update NEWS and docs about yacc-generated headers extensions
* doc/automake.texi (Yacc and Lex): Document explicitly that
extensions of yacc-generated headers are modelled after the
extension of the corresponding sources.
* NEWS: Update.