* maint:
coverage: test interactions of `nobase_' and `nodist_'
cosmetics: fix various typos and grammaros
py-compile: '--' and non-option arguments terminate the option list
py-compile: complain on unrecognized options
py-compile: normalize error and help messages
python tests: add "unit tests" on py-compile
py-compile: the '--destdir' option now accepts a blank argument
python: run the 'py-compile' script with $(SHELL)
* python-work:
cosmetics: fix various typos and grammaros
py-compile: '--' and non-option arguments terminate the option list
py-compile: complain on unrecognized options
py-compile: normalize error and help messages
python tests: add "unit tests" on py-compile
py-compile: the '--destdir' option now accepts a blank argument
python: run the 'py-compile' script with $(SHELL)
java: fix various blunders in test 'java-mix.test'
* tests/java-mix.test: Add missing call to `set -e'. Fix inverted
semantics (`.java' files are expected *not* to be distributed by
default, not the other way round). Fix various typos in the name
of the `.java' files. Correct other minor blunders. Improve some
comments.
* java-work:
fix: remove duplicated ChangeLog entries
java: allow both JAVA and nobase_JAVA in the same Makefile.am
java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am
fix: regenerate tests/Makefile.in
tests defs: use `skip_' for skipping java-related tests
java tests: use $PATH_SEPARATOR where appropriate
java coverage: test JAVACFLAGS and AM_JAVACFLAGS
java coverage: test rebuild rules for java
java coverage: try to build and run a java program
test defs: new requirement for the default java interpreter
java tests: tweak and make stricter a couple of tests
java coverage: add test on uninstall with JAVA primary
java tests: require java compiler more properly
java: allow both JAVA and nobase_JAVA in the same Makefile.am
java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am
automake: remove code duplication in 'handle_tests'
* automake.in (handle_tests): Factor out some code dealing with
test extensions and rules for generation of `.log' files into ...
(handle_per_suffix_test): ... this new subroutine.
* tests/parallel-tests-exeext.test: New test.
* tests/Makefile.am (TESTS): Update.
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.
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.
* maint:
tests: fix spurious failure on fast machines
aclocal: better URL reference in error message
coverage: distcheck-hook to catch missing/outdated *.m4 files
aclocal: more granularity in acdir overriding
* maint:
tests: fix spurious failure on fast machines
aclocal: better URL reference in error message
coverage: distcheck-hook to catch missing/outdated *.m4 files
aclocal: more granularity in acdir overriding
* tests/amhello-binpkg.test: Add missing $EXEEXT usage.
fix: list test 'vala-vpath.test' in XFAIL_TESTS
tests: simplify wrapper for aclocal
fix: minor typo in ChangeLog
coverage: vala support failing for VPATH from-scratch builds
docs: report few more automake parsing limitations
tests: list "forgotten" test script in TESTS
ylwrap: fix unusual indentation whitespace
* tests/aclocal-acdir.test: Avoid spurious failures due to caching
issues, by cleaning the autom4te cache between all the aclocal
invocations, and by always calling autoconf with the `--force'
flag.
* aclocal.in (scan_file): In the error message about underquoted
definitions, reference the automake page at `www.gnu.org', not
at `sources.redhat.com'.
coverage: distcheck-hook to catch missing/outdated *.m4 files
Related to automake bug#9037.
* tests/distcheck-missing-m4.test: New test.
* tests/distcheck-outdated-m4.test: Likewise.
* tests/distcheck-hook-m4.am: New data file, used by the new
tests.
* tests/Makefile.am (distcheck-m4-missing.log,
distcheck-m4-outdated.log): Depend on it.
(EXTRA_DIST): Distribute it.
(TESTS): Add the new tests.
Before this change, using the `--acdir' option caused aclocal to
redefine both the directory of automake-provided m4 macros and the
directory of third-party system-wide m4 macros. With this change,
we deprecate the `--acdir' aclocal option, and introduce two new
options `--automake-acdir' and `--system-acdir', to allow for more
granularity.
* aclocal.in (@automake_includes, @system_includes,
@user_includes): Fix and extend comments.
(usage): Update.
(handle_acdir_option): New function.
(parse_arguments): Recognize new options `--system-acdir' and
`automake-acdir', and handle `--acdir' using the new function
above. Simplify logic by assuming that the directory of
third-party system-wide m4 files always exists.
* tests/aclocal.in: Update to use the new options, instead of
the deprecated. `--acdir'.
* m4/dirlist: Move ...
* m4/acdir/dirlist: ... here.
* m4/Makefile.am (EXTRA_DIST): Update.
(m4datadir): Rename ...
(automake_acdir): ... to this. Accordingly, ...
(dist_m4data_DATA): ... rename this ...
(dist_automake_ac_DATA): ... to this.
(system_acdir): New, directory.
(dist_system_ac_DATA): New, defined to an empty value; this will
ensure that the $(system_acdir) directory will be created by
"make install".
* tests/aclocal.test: Remove check about the `--print-ac-dir'
option of aclocal, it has been moved into ...
* tests/aclocal-print-acdir.test: ... this new test, and quite
extended.
* tests/aclocal-acdir.test: New test.
* tests/Makefile.am (TESTS): Add the new tests.
* NEWS, bootstrap: Update.
* doc/automake.texi (aclocal Options, Macro Search Path): Update.
* lib/tap-driver.pl (trap_perl_warnings_and_errors): Do not use
the three-args version of the `open' builtin, it is not well
supported by older perl versions (at least perl 5.6.2).
(start): Add a no-op statement to pacify a "possible typo ... used
only once" perl warning.
tap/perl: be more portable to older TAP::Parser versions
* lib/tap-driver.pl (start): Do not call the `ignore_exit' method
on our TAP parser: it is not supported in older TAP::Parser
versions (e.g., 3.10), and is not really required by our usage of
the parser object.
* maint:
* tests/amhello-binpkg.test: Add missing $EXEEXT usage.
fix: list test 'vala-vpath.test' in XFAIL_TESTS
tests: simplify wrapper for aclocal
fix: minor typo in ChangeLog
coverage: vala support failing for VPATH from-scratch builds
docs: report few more automake parsing limitations
tests: fix spurious failures due to ignored signals
* tests/defs (is_blocked_signal): New function.
* tests/parallel-tests-interrupt.test: Do not try to use/trap
signals that are ignored by the parent shell: they will be
ignored by all the child processes too.
* tests/self-check-exit.test: Likewise.
* tests/self-check-cleanup.test: Likewise, and do few minor
improvements and extensions since we are at it.
* master:
* tests/amhello-binpkg.test: Add missing $EXEEXT usage.
fix: list test 'vala-vpath.test' in XFAIL_TESTS
tests: simplify wrapper for aclocal
fix: minor typo in ChangeLog
automake: fix regression due to de-ansification support removal
coverage: vala support failing for VPATH from-scratch builds
docs: report few more automake parsing limitations
automake: cleanups after de-ansification support removal (2)
automake: cleanups after de-ansification support removal (1)
ansi: remove obsolete code/files for de-ANSI-fication support
ansi: reject attempts to use automatic de-ANSI-fication support
tests: remove tests about obsolete de-ANSI-fication support
docs: remove description of de-ANSI-fication support from manual
* tests/aclocal.in: Remove use of $ACLOCAL_TESTSUITE_FLAGS and
extra `-I' flags; they are not really required, since the file
`m4/amversion.m4' is generated in the srcdir anyway.
* tests/acloca10.test: Remove use of $ACLOCAL_TESTSUITE_FLAGS.
* tests/acloca18.test: Likewise.
* tests/defs.in: Don't nullify $ACLOCAL_TESTSUITE_FLAGS, and do
not export it.
* remove-deansification:
automake: fix regression due to de-ansification support removal
automake: cleanups after de-ansification support removal (2)
automake: cleanups after de-ansification support removal (1)
ansi: remove obsolete code/files for de-ANSI-fication support
ansi: reject attempts to use automatic de-ANSI-fication support
tests: remove tests about obsolete de-ANSI-fication support
docs: remove description of de-ANSI-fication support from manual
automake: fix regression due to de-ansification support removal
The last change `v1.11-947-g136b489' removed code that automake
was using to decide whether binary objects were built by the
generated Makefile.in, so that it could avoid to emit unneeded
code when this was not the case. Re-introduce such code in a
less-obfuscated form, and add a test to ensure we don't regress
again.
* automake.in ($must_handle_compiled_objects): New global
variable, telling whether the generated Makefile has to build
compiled objects.
(initialize_per_input): Reset it.
(handle_programs, handle_libraries, handle_ltlibraries): Set
it to a true value when required.
(handle_compile): Don't generate any code if the variable
`$must_handle_compiled_objects' is not set to a true value.
* tests/no-extra-makefile-code.test: New test.
* tests/Makefile.am (TESTS): Add it.
docs: report few more automake parsing limitations
Partly motivated by automake bug#8360.
* doc/automake.texi (General Operation): Report few more automake
limitations w.r.t. parsing of unusual makefile constructs. Related
minor reorderings.
* tests/doc-parsing-buglets-colneq-subst.test: New test.
* tests/doc-parsing-buglets-tabs.test: Likewise.
* tests/Makefile.am (TESTS): Update.
ansi: remove obsolete code/files for de-ANSI-fication support
* lib/ansi2knr.1, lib/ansi2knr.c: Deleted.
* lib/Makefile.am (dist_pkgvdata_DATA): Do not list them anymore.
* lib/am/ansi2knr.am: Delete.
* lib/am/Makefile.am (dist_am_DATA): Do not list it anymore.
* lib/Automake/Variable.pm (%_am_macro_for_var): Remove entries for
`ANSI2KNR' and `U'.
* m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Don't care anymore
about possible definition of the `$U' variable.
* automake.in (@common_files): Drop `ansi2knr.1' and `ansi2knr.c'.
(struct): Remove scalar field `ansi'.
All callers adjusted.
(&lang_c_finish, %de_ansi_files): Remove, they're not required
anymore.
All callers adjusted.
($get_object_extension_was_run): Fix typo in comment.
(&get_object_extension): Drop code dealing with de-ansification;
this function basically a no-op now, but is required to properly
initialize `$get_object_extension_was_run' variable.
(&handle_languages, &handle_compile, &lang_c_rewrite): Drop code
dealing with de-ansification.
The variable that is used by our test scripts to decide whether
they are "plain" or TAP-based is `using_tap'; however, some
peripheral sanity checks and sanitization code in our testsuite
were erroneously using the `use_tap' variable instead. Fix that.
* tests/Makefile.am (AM_TESTS_ENVIRONMENT): Nullify `using_tap',
not `use_tap'.
* tests/defs-static.in: Check that `using_tap', not `use_tap',
is not exported.
* tests/self-check-env-sanitize.test: Update.
tests: avoid re-running a test with the 'parallel-tests' option
* tests/backcompat5.test (parallel_tests): Define to "no", to
prevent the generation of a sibling test script that uses the
'parallel-tests' driver. That would be useless anyway, since
we manually override the contents of configure.in, thus clobbering
the `parallel-tests' option in AM_INIT_AUTOMAKE.
Fix a typo in comments since we are at it.
ansi: reject attempts to use automatic de-ANSI-fication support
* tests/protos.m4 (AM_C_PROTOTYPES): Error out whenever called.
* lib/Automake/Options.pm (_process_option_list ): Error out
with a proper error message when the `ansi2knr' option is used.
Related updates to comments.
* tests/depacl2.test: Update.
* tests/ansi2knr-no-more.test: New test.
* tests/Makefile.am (TESTS): Add it.
* NEWS: Update.
docs: remove description of de-ANSI-fication support from manual
* doc/automake.texi (Auxiliary Programs): Remove mention of
`ansi2knr.c' and `ansi2knr.1'.
(Obsolete Macros): Remove mention of `AM_C_PROTOTYPES'. Do not
index it nor variables `ANSI2KNR' and `U' anymore.
(List of Automake options): Remove mention of `ansi2knr' option,
and obsolete entries for concept and option indexes.
(Optional): Remove entry about `AM_C_PROTOTYPES'.
(@c LocalWords): Remove `ansi' and `knr'.
(@menu, @detailmenu): Remove entries about de-ANSI-fication
support.
tests: fix spurious failure for awk implementation of TAP driver
* tests/tap-realtime.test: The awk+shell implementation of the TAP
driver must "read ahead" of one line in order to catch the exit
status of the test script it runs. So, in the TAP-producer script
here, be sure to echo one "dummy" line after each TAP result line
in order not to cause false positives.
* tests/Makefile.am (TESTS): Also list ...
* tests/java-empty-classpath.test: ... this test. Since we are
at it, remove trailing whitespace from a couple of lines.
* lib/tap-driver.sh (setup_result_obj): Handle escaping of TAP
directives in a way tat is (mostly) compatible by what is done
by the TAP::Parser module.
With this change, the tests `tap-escape-directive.test' and
`tap-escape-directive-2.test' now also pass with the shell/awk
implementation of the TAP driver.
* tests/tap-escape-directive.test: Make grepping of testsuite
progress output slightly stricter.
* tests/tap-escape-directive-2.test: New test (failing with the
awk implementation of the TAP driver).
* tests/Makefile.am (tap_with_common_setup_tests): Update.
tap: improve syncing between awk+shell and perl implementations
* lib/tap-driver.pl (stringify_test_result): Renamed ...
(stringify_result_obj): ... to this. Break up a clause in the
long "if/elsif/.../else" construct to avoid unaesthetic line
breaks and to be more synced with the sibling function in
`tap-driver.sh'. Rename the `$result', `$PASS' and `$FAIL'
variables to respectively `$result_obj', `$COOKED_PASS' and
`$COOKED_FAIL', for clarity and better syncing.
(handle_tap_test): Renamed ...
(handle_tap_result): ... to this, and change the name of the
`$test' local variable to `$result_obj'.
(extract_comment): Reimplement using the simpler `index' and
`substr' builtins, rather than with more advanced uses of
regular expressions.
(%test_results, @test_results): Renamed respectively ...
(%test_results_seen, @test_results_list): ... to these, and
related adjustments throughout the `TEST_RESULTS' block.
(main, get_global_test_result): Refactor and do some cosmetic
changes to make these functions clearer and better synced with
sibling code in `tap-driver.sh'.
Other minor cosmetic and typo fixes.
* lib/tap-driver.sh (extract_tap_comment): Remove outdated
"FIXME" comments.
(get_global_test_result): Small reordering to make it better
synced with its sibling function in `tap-driver.pl'.
(stringify_result_obj): Consistently use `result_obj' as the
parameter name.
Other minor cosmetic and typo fixes.
tap/perl: don't redirect perl warnings/errors to log files
With this change, the test `tap-driver-stderr.test' also passes
with the perl implementation of the TAP driver.
* lib/tap-driver.pl (start): Save the original stderr into the
`OLDERR' file handle, and call ...
(trap_perl_warnings_and_errors): ... this new function, trapping
the `__WARN__' and `__DIE__' "pseudo-signals" to ensure that the
warning and error messages goes to that original stderr stream.
Since we are at it, be sure to prepend all possible "die" message
with the name of the script as given by the `$ME' variable.
tap/perl: add copyright notice, version string, and emacs stuff
* lib/tap-driver.pl: Add proper copyright notice and bug reporting
address. Remove obsolete heading comments. Add trailing comments
for emacs w.r.t. code-formatting rules and automatic updating of
the date-based script version saved into the `$VERSION' variable.
($VERSION): Define to the current UTC date.
* lib/tap-driver.sh: Handle the file descriptors redirections
more smartly, to avoid sending error messages from awk (about
e.g. syntax or I/O errors) to the log files instead that to the
console.
* tests/tap-driver-stderr.test: New test, verifying the improved
driver behaviour. Notice that this test still fails when using
the perl implementation of the TAP driver.
* tests/Makefile.am (tap_other_tests): Update.
* lib/tap-driver.sh: Remove obsolete "FIXME" comment about our
driver losing the exit status of the tested program; this issue
has been solved in precedent commit `v1.11-1052-gd630a0d'. Fix
an unrelated typo in comments since we are at it.
* tests/tap-signal.test (signal_caught): Fix a regression from
commit `v1.11-1052-gd630a0d' that was causing this test to fail
spuriously on Solaris (due to an already worked-around Solaris
/bin/sh bug, see commit `v1.11-981-g0ef3ef5').
testsuite: use the new awk+shell TAP driver in our own testsuite
* tests/Makefile.am (TAP_LOG_DRIVER): Redefine to use the new
awk+shell tap driver, which should be complete enough for use in
a "controlled" production environment.
tap/awk: handle non-zero exit status from the test command
* lib/tap-driver.sh (get_test_exit_message): New function in the
awk script, used to extract the exit status of the test program,
or at least a good guess of it.
(write_test_results): Use it, reporting an ERROR result if it
detects that the test program exited with a non-zero status.
* tests/tap-signal.test: Account for the differences in the
error messages generated by the awk and perl TAP drivers. Fix
an unrelated typo in comments since we are at it.
tap/awk: prepare to fetch the exit status of the test command
* lib/tap-driver.sh: Rewrite some logic in the main parsing loop,
to make it possible to read the exit status of the test command
from the last line of the input stream.
* lib/tap-driver.sh: Rewrite the awk script so that the parsing
of the input stream is implemented as a hand-rolled loop in the
BEGIN block, using the `getline' builtin.
* lib/tap-driver.sh: Use `\t', not `\\t', to represent tabulation
character in regexps, even when inside double-quoted strings; that
seems to be more portable to Solaris 10 XPG4 awk.
* lib/tap-driver.sh (close_or_die): Remove, the use of the `close'
builtin in there was confusing /usr/bin/nawk from Solaris 10 into
a syntax error.
(write_test_results): Simply use `close' on the `*.trs' file, that
should be enough.
tap/awk: correctly extract message from SKIP plans
* lib/tap-driver.sh (/^1\.\.0+[ \t]*#/): Add a forgotten `?' to
the regex used to extract the skip message from a "1..0" TAP plan.
* tests/planskip.test: Check for the just-fixed bug.
* tests/tap-planskip-unplanned-corner.test: Don't be too strict
w.r.t. the formatting of the "skip whole test" message, to avoid
failing due to bugs irrelevant for this test (like the one just
fixed).
* lib/tap-driver.sh: Pass definition of colors to the BEGIN block
of the awk script, using ...
($init_colors): ... this new variable, which supersedes ...
($red, $grn, $lgn, $blu, $mgn, $std): ... these variables, which
have been consequently removed.
($color_tests): We don't have to pass this anymore to the awk
script, so do not convert it to a numeric boolean.
(decorate_result): Implement for real.
With this change, the test 'tap-color.test' now passes.
tap: real (but still incomplete) awk implementation of TAP driver
* lib/tap-driver.sh : Add an incomplete, but mostly working,
implementation of a TAP parser and driver in awk. It doesn't yet
support colorized output, fetching of exit status from test
programs, nor a way to escape TAP directives in TAP result lines,
but passes all the tests of TAP support in the automake testsuite,
apart from the following ones:
- tap-color.test
- tap-escape-directive.test
- tap-exit.test
- tap-missing-plan-and-bad-exit.test
- tap-passthrough-exit.test
- tap-planskip-badexit.test
- tap-planskip-unplanned-corner.test
- tap-signal.test
Tested on Debian GNU/Linux with GNU awk 3.1.7 and 3.0.2, "original
awk" 2010-05-23-1, and mawk 1.3.3-15 (with which also the test
`tap-realtime.test' fails, in addition to those listed above).
coverage: ambiguous use of TAP "TODO"/"SKIP" directives
* tests/tap-ambiguous-directive.test: New test.
* tests/tap-todo-skip-together.test: Reference it in heading
comments.
* tests/Makefile.am (tap_with_common_setup_tests): Update.
coverage: a TAP result numbered "0" is always out-of-order
* tests/tap-test-number-0.test: New, checks that a test result
numbered as 0 is to be considered out-of-order; this is
consistent with the behaviour of the `prove' utility.
* tests/Makefile.am (tap_with_common_setup_tests): Update.
coverage: some more tests on corner cases of TAP support
* tests/tap-no-spurious.test: Extend checks verifying that a line
matching, say, the regex "^ok[a-zA-Z0-9_]" is *not* considered a
TAP result.
* tests/tap-no-spurious-numbers.test: New test, checking that our
TAP driver doesn't spuriously recognize as TAP result numbers what
is not (even if it seems pretty close).
* tests/tap-negative-numbers.test: New test, checking that our
TAP driver doesn't spuriously recognize negative TAP result
numbers, but correctly interprets them as test descriptions
instead.
* tests/tap-plan-leading-zero.test, tap-numbers-leading-zero.test:
New tests, checking how our driver fares in recognizing numbers
with leading zeroes in TAP results or TAP plans.
* tests/tap-planskip-malformed.test: New test, checking that a
malformed TAP plan is not recognized as a valid plan.
* tests/tap-plan-whitespace.test: New test, checking that a TAP
plan line with trailing whitespace is recognized and handled
correctly.
* tests/Makefile.am (tap_with_common_setup_tests): Update.
testsuite: fix some redundant autotools calls in tests on TAP
* tests/tap-deps.test: Do not call autotools and configure; there
is no need to, since this script sources `tap-setup.sh'.
* tests/tap-empty-diagnostic.test: Likewise.
* tests/tap-escape-directive.test: Likewise.
* tests/tap-fancy2.test: Likewise.
* tests/tap-no-spurious.test: Likewise.
* tests/tap-out-of-order.test: Likewise.
* master:
* THANKS (Daniel Richard G.): Update e-mail address.
java: avoid compilation errors when CLASSPATH is empty
parallel-tests: no more spurious successes for FreeBSD make
hacking: we now require autoconf 2.68
* maint:
* THANKS (Daniel Richard G.): Update e-mail address.
java: avoid compilation errors when CLASSPATH is empty
parallel-tests: no more spurious successes for FreeBSD make
hacking: we now require autoconf 2.68
* maint:
* THANKS (Daniel Richard G.): Update e-mail address.
java: avoid compilation errors when CLASSPATH is empty
parallel-tests: no more spurious successes for FreeBSD make
hacking: we now require autoconf 2.68
test defs: more environment cleanup
tests: fix spurious failure with Solaris make
maintcheck: fix maintainer-check failures, both real and spurious
docs: how to use '-I' option in AM_CPPFLAGS for best VPATH support
tests: relax a test on amhello examples to cater to Solaris tar
docs: add references between the 2 sections on java support
Sync auxiliary files from upstream.
Daniel Richard G [Tue, 16 Aug 2011 13:19:14 +0000 (15:19 +0200)]
java: avoid compilation errors when CLASSPATH is empty
* lib/am/java.am (CLASSPATH_ENV): When redefining `$CLASSPATH',
do not append an empty component in case the previous value of
CLASSPATH is empty or unset.
* tests/java-empty-classpath.test: New test.
* tests/Makefile.am (TESTS): Update.