From: Ralf Wildenhues Date: Sat, 14 Mar 2009 10:14:38 +0000 (+0100) Subject: Merge branch 'ad-parallel-tests' into next X-Git-Tag: v1.10b~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4cc23b052fda663345c0ac634cc8f07bb6417bb;p=thirdparty%2Fautomake.git Merge branch 'ad-parallel-tests' into next * ad-parallel-tests: Fix LAZY_TEST_SUITE handling and $(TEST_SUITE_LOG) recreation. Fix parallel-tests with empty $(TESTS) for BSD make. Mark check-html and check-TESTS as recursive for BSD make. Match XFAIL_TESTS correctly with Solaris make. Use append mode to capture parallel test output. parallel-tests: Fix summary output. Overhaul of tests/README. Documentation for the parallel-tests driver. New tests for `parallel-tests'. parallel-tests: Ensure backward-compatible semantics. Parallel test execution: new option `parallel-tests'. --- d4cc23b052fda663345c0ac634cc8f07bb6417bb diff --cc ChangeLog index 203d10dd1,659167c75..a05df3af2 --- a/ChangeLog +++ b/ChangeLog @@@ -1,175 -1,121 +1,293 @@@ + 2009-03-11 Ralf Wildenhues + + Fix LAZY_TEST_SUITE handling and $(TEST_SUITE_LOG) recreation. + * lib/am/check.am (check-TESTS): Expand `$(TEST_LOGS)' only once + in the rule command, for systems with low command line limits. + Remove $(TEST_SUITE_LOG) even in LAZY_TEST_SUITE mode. + ($(TEST_SUITE_LOG)): Always recreate $(TEST_SUITE_LOG). Mention + lazy mode in the summary output. + * tests/parallel-tests.test: Test LAZY_TEST_SUITE semantics. + + 2009-03-10 Ralf Wildenhues + + Fix parallel-tests with empty $(TESTS) for BSD make. + * lib/am/check.am [PARALLEL_TESTS] ($(TEST_SUITE_LOG)): Ignore + empty line stemming from empty $(TEST_LOGS), to avoid counting + zero tests as one. + (check-TESTS): If `$(TESTS)' is empty, override TEST_LOGS to be + empty, rather than `.log', for BSD make. + * tests/parallel-tests6.test: New test. + * tests/Makefile.am: Update. + + Mark check-html and check-TESTS as recursive for BSD make. + * lib/am/check.am [PARALLEL_TESTS] (.MAKE): Add check-TESTS + and check-html prerequisites. + + Match XFAIL_TESTS correctly with Solaris make. + * lib/am/check.am [PARALLEL_TESTS]: VPATH rewriting may have + changed test names, so srcdir needs to be taken into account + explicitly when checking against the list of tests expected + to fail. Fixes spurious FAILures from XFAIL_TESTS. + + Use append mode to capture parallel test output. + * tests/lisp8.test: Use append mode for output from `make -j', + to avoid dropped lines. + * tests/parallel-tests3.test: Likewise. + + parallel-tests: Fix summary output. + * lib/am/check.am (am__text_box): Fix unportable sed script, + replacing `\n' in the right hand side of an `s' command with + a literal newline. Kudos to Bruno Haible for the newline idea. + * tests/parallel-tests.test: Update test to expose this. + + 2009-03-08 Ralf Wildenhues + + Overhaul of tests/README. + * tests/README: General overhaul. Mention parallel test suite + execution, the test-suite.log file; document `Exit' vs. `exit', + `defs' vs. `defs-p', the naming of `parallel-tests' tests. + * README: Simplify, point to tests/README. + + Documentation for the parallel-tests driver. + * doc/automake.texi (Tests, Options): Document the `parallel-tests' + option, including new features of the test driver. + * NEWS: Update. + + New tests for `parallel-tests'. + * tests/parallel-tests.test: New file, to expose a bunch of + features of `parallel-tests': VERBOSE, clean, TEST_SUITE_LOG, + test dependencies, DISABLE_HARD_ERRORS. + * tests/parallel-tests2.test: New file, test check-html. + * tests/parallel-tests3.test: New file, test concurrency. + * tests/parallel-tests4.test: New file, test suffix rules. + * tests/parallel-tests5.test: New file, demonstrate compile/test + concurrency. + * tests/defs.in: Add a `required' check for rst2html. + * tests/Makefile.am: Update. + + parallel-tests: Ensure backward-compatible semantics. + For each test in Automake's test suite that uses TESTS, generate + an identical one that uses the `parallel-tests' option, for + coverage of backward-compatible functionality. + * tests/gen-parallel-tests: New file, generates distributed + Makefile.am snippet tests/parallel-tests.am to list all tests + that use the TESTS interface but not yet the `parallel-tests' + option, with names mangled to use suffix `-p.test', in ... + (parallel_tests): ... this new make macro. + * tests/Makefile.am ($(srcdir)/parallel-tests.am) + ($(parallel_tests), defs-p): New rules. + (TESTS): Add check11.test and $(parallel_tests). + (check_SCRIPTS): Add defs-p, $(parallel_tests). + (check-clean-local): Remove `defs-p'. + (EXTRA_DIST): Distribute gen-parallel-tests. + (MAINTAINERCLEANFILES): New variable, remove $(parallel_tests). + * bootstrap: Generate parallel-tests.am. + * tests/check8.test: Check for circular dependencies in rules. + * tests/check11.test: New test, check that SKIPs are not counted + as passed tests. + * tests/defs.in: Unset DISABLE_HARD_ERRORS, LAZY_TEST_SUITE, + VERBOSE, so the tests are not influenced by the way our test + suite is invoked. + + 2009-03-08 Akim Demaille + Jim Meyering + Benoit Sigoure + Ralf Wildenhues + + Parallel test execution: new option `parallel-tests'. + * automake.in (handle_tests): Set new conditional PARALLEL_TESTS + when reading check.am. Handle option `parallel-tests' and all + its new semantics. Define macros TEST_SUFFIXES, TEST_SUITE_LOG, + TEST_SUITE_HTML, TEST_LOGS, TEST_LOGS_TMP, suffix rules if + applicable, and per-target rules for other tests. Add all log + files to %clean_files at the `MOSTLY_CLEAN' level. + * lib/Automake/Options.pm (_process_option_list): Accept + `parallel-tests'. + * lib/am/check.am [!PARALLEL_TESTS] (check-TESTS): Move existing + testsuite driver under this new conditional. + [PARALLEL_TESTS] + (am__rst_title, am__rst_section, am__text_box am__sh_e_setup) + (am__check_pre, am__check_post): New internal macros. + ($(TEST_SUITE_LOG), check-TESTS, .log.html, check-html): New + rules. + * lib/am/check2.am: New file. + * lib/am/Makefile.am (dist_am_DATA): Add check2.am. + * tests/Makefile.am (AUTOMAKE_OPTIONS): Use `parallel-tests'. + (clean-local): Renamed from distclean-local. + * tests/defs.in: Drop VERBOSE handling, not needed here any more. + +2009-03-12 Ralf Wildenhues + + Rename `silent' mode to `silent-rules' mode. + * automake.in (define_verbose_var, verbose_flag) + (define_verbose_tagvar, handle_options, handle_languages) + (handle_configure, parse_arguments): Rename the `silent' option + to `silent-rules', so it coincides with the `--silent-rules' + command line option; adjust all code and comments. + * lib/Automake/Options.pm (_process_option_list): Likewise. + * doc/automake.texi (Invoking Automake, Libtool Flags, Options): + Likewise. + * NEWS: Adjust. + * tests/dollarvar.test, tests/silent.test, tests/silent2.test, + tests/silent3.test, tests/silent4.test, tests/silent5.test, + tests/silent6.test, tests/silent7.test: Likewise. + Suggestion by Jan Engelhardt. + +2009-03-11 Ralf Wildenhues + + `silent' mode unconditionally overrides portability-recursive. + * automake.in (parse_arguments): Don't handle a global `silent' + option here; instead, ... + (handle_options): ... handle the "normal" `silent' option here. + Override `portability-recursive' here, at the last point we deal + with options, instead ... + * lib/Automake/Options.pm (_process_option_list): ... of here. + * tests/silent6.test: Replace unportable make snippet, remove + FIXME note, add more test cases of options passed in the various + locations. + + Drop extra line from compile rules when `silent' is not used. + * lib/am/depend2.am [!%FASTDEP%]: Only use the `%VERBOSE% + @AM_BACKSLASH@' extra line if ?VERBOSE?. + Report by Ralf Corsepius. + +2009-03-10 Ralf Wildenhues + + Keep `--silent-rules' across triggered automake reruns. + * automake.in (usage): Reformat to be a bit clearer. + (handle_configure): Remove substitutions %STRICTNESS% and + %USE-DEPS% in favor of a new substitution %AUTOMAKE-OPTIONS% + that carries over all needed flags. + * lib/am/configure.am (%MAKEFILE-IN%): Adjust rule. + * tests/flavor.test: New test, to ensure --$flavor (gnu, + gnits, foreign, cygnus), --ignore-deps, and --silent-rules are + preserved across automake reruns. + * tests/Makefile.am: Update. + +2009-03-09 Ralf Wildenhues + + Provide variables for silencing of user rules. + * automake.in (handle_languages): Always define `AM_V_GEN' and + `AM_V_at'. + * doc/automake.texi (Options): Document these flags. + * tests/silent7.test: New test. + * tests/Makefile.am: Update. + + Redo variable naming for `silent' machinery. + The public variables are named `AM_V_' plus the compiler + short-hand now, e.g.: AM_V_CC, AM_V_CXXLD, AM_V_GEN. The + dispatch variables are internal details and begin with + `am__v_'. + * automake.in (verbose_var): Update comment. + (verbose_private_var): New function. Order functions so that + ones not needed outside this section are listed first. + (verbose_dispatch): Remove, no need to factor this. + (define_verbose_var, define_verbose_libtool): Use + verbose_private_var. + (define_verbose_tagvar): Likewise; and simplify. + Report by Jan Engelhardt. + + Let -Wportability turn on/off the portability-recursive channel. + * lib/Automake/ChannelDefs.pm (switch_warning): switch + `portability-recursive' channel as well if changing the + `portability' channel. + * tests/dollarvar2.test: New test. + * tests/Makefile.am: Update. + +2009-03-07 Ralf Wildenhues + + New automake command line option `--silent-rules'. + * automake.in (parse_arguments): Accept `--silent-rules; let it + override command line warning settings. + (usage): Document it. + * doc/automake.texi (Invoking Automake): Document it. + * NEWS: Update. + * tests/dollarvar.test: Also test `--silent-rules'. + * tests/pr300-ltlib.test: Use `$MAKE V=1' to enable verbose + output, which is matched later in the test. + * tests/silent6.test: New test. + * tests/Makefile.am: Update. + + Documentation and tests for the `silent' option. + * NEWS: Update. + * doc/automake.texi (Invoking Automake): `silent' turns off some + portability warnings. + (Libtool Flags): `silent' silences libtool. + (Options): Document the `silent' flag. + * tests/dollarvar.test, tests/silent.test, tests/silent2.test, + tests/silent3.test, tests/silent4.test, tests/silent5.test: New + tests. + * tests/Makefile.am: Update. + * Makefile.am (maintainer-check): Ignore `DESTDIR' and `V' when + checking for make variables that should not be overridden from + the command line. + +2009-03-07 Jan Engelhardt + Ralf Wildenhues + + Implement `silent' build rules. + * automake.in (ccer): New field in the language structure. + Initialize it for all registered languages. + (verbose_var, verbose_flag, verbose_dispatch) + (silent_flag, define_verbose_var, define_verbose_tagvar) + (define_verbose_libtool): New functions. + (handle_languages, handle_programs, handle_libraries) + (handle_ltlibraries, handle_configure) + (define_compiler_variable, define_linker_variable) + (define_per_target_linker_variable): Use them where appropriate + to define variables to implement the silent output machinery. + * lib/Automake/Options.pm (_process_option_list): Accept + `silent', turning off `portability-recursive'. + * lib/am/depend2.am: Add %VERBOSE% and %SILENT% prefixes where + appropriate. + * lib/am/lex.am: Likewise. + * lib/am/library.am: Likewise. + * lib/am/ltlibrary.am: Likewise. + * lib/am/program.am: Likewise. + * lib/am/yacc.am: Likewise. + * m4/init.m4 (AM_INIT_AUTOMAKE): Substitute, but do not define, + AM_BACKSLASH. + * tests/defs.in: Unset `V', to avoid influencing inner tests. + +2009-03-07 Ralf Wildenhues + + New channel `portability-recursive'. + Add new channel for portability warnings about recursive make + variable expansions `$(var1$(var2))'. Enable it alongside + `-Wportability'. + * lib/Automake/ChannelDefs.pm (Automake::ChannelDefs): Register + channel `portability-recursive'. + * lib/Automake/Variable.pm (_VARIABLE_CHARACTERS) + (_VARIABLE_RECURSIVE_PATTERN): New variables. + (check_variable_expansions): Diagnose recursive variable + expansions through the new channel. + +2009-03-14 Ralf Wildenhues + + * NEWS: Update. + +2009-03-12 Ralf Wildenhues + + Ignore warnings from autom4te about Libtool macros. + * tests/ltinstloc.test: When testing for presence of warnings, + filter out any that are not interesting for this test, e.g., + warnings about installed files or about bogusly named cache + variables in libtool.m4, emitted by recent Autoconf when older + Libtool is used. + +2009-03-09 Ralf Wildenhues + + Relax depcomp test for MSVC to not require minuso. + * m4/depend.m4 (_AM_DEPENDENCIES): When checking the msvisualcpp + and msvcmsys depmodes, do not require `-c -o' to work just yet. + It is not needed by the depcomp script for these depmodes, and + works around the ordering issue between the tests. + Report by Peter Rosin. + +2009-03-09 Peter Rosin + + * tests/compile2.test: Fix typo. + 2009-03-07 Ralf Wildenhues Improve NetBSD 'make -n' output for many standard targets. diff --cc NEWS index 88059da46,306755dca..0f7159d9b --- a/NEWS +++ b/NEWS @@@ -113,13 -109,11 +113,18 @@@ New in 1.10a - The `color-tests' option causes colored test result output on terminals. + - The `parallel-tests' option enables a new test driver that allows for + parallel test execution, and formatted result output as RST + (reStructuredText) and HTML. Enabling this option may require some + changes to your test suite setup; see the manual for details. + + - The `silent-rules' option enables Linux kernel-style silent build output. + This option requires the widely supported but non-POSIX `make' feature + of recursive variable expansion, so do not use it if your package needs + to build with `make' implementations that do not support it. + Besides the normal option setting methods, it can also be enabled + globally by the new automake option `--silent-rules'. + - New prefix `notrans_' for manpages which should not be transformed by --program-transform. diff --cc lib/Automake/Options.pm index 3890caf0a,5209d1a58..5e057925c --- a/lib/Automake/Options.pm +++ b/lib/Automake/Options.pm @@@ -265,9 -265,8 +265,8 @@@ sub _process_option_list (\%$@ || $_ eq 'readme-alpha' || $_ eq 'check-news' || $_ eq 'subdir-objects' || $_ eq 'nostdinc' || $_ eq 'no-exeext' || $_ eq 'no-define' -- || $_ eq 'std-options' - || $_ eq 'color-tests' - || $_ eq 'silent-rules' ++ || $_ eq 'std-options' || $_ eq 'silent-rules' + || $_ eq 'color-tests' || $_ eq 'parallel-tests' || $_ eq 'cygnus' || $_ eq 'no-dependencies') { # Explicitly recognize these. diff --cc tests/defs.in index 81eb17fe1,3b8fe9681..f7f68b424 --- a/tests/defs.in +++ b/tests/defs.in @@@ -292,8 -294,13 +294,15 @@@ unset MFLAG unset MAKEFLAGS unset MAKELEVEL unset DESTDIR +# Unset verbosity flag. +unset V + # Also unset variables that control our test driver. While not + # conceptually independent, they cause some changed semantics we + # need to control (and test for) in some of the tests to ensure + # backward-compatible behavior. + unset DISABLE_HARD_ERRORS + unset LAZY_TEST_SUITE + unset VERBOSE echo "=== Running test $0"