Merge branch 'ad-parallel-tests' into next
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 14 Mar 2009 10:14:38 +0000 (11:14 +0100)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 14 Mar 2009 10:14:38 +0000 (11:14 +0100)
* 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'.

1  2 
ChangeLog
NEWS
automake.in
doc/automake.texi
lib/Automake/Options.pm
lib/am/Makefile.in
tests/Makefile.am
tests/Makefile.in
tests/defs.in

diff --cc ChangeLog
+++ b/ChangeLog
+ 2009-03-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+       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  <Ralf.Wildenhues@gmx.de>
+       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  <Ralf.Wildenhues@gmx.de>
+       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  <akim@lrde.epita.fr>
+           Jim Meyering  <jim@meyering.net>
+           Benoit Sigoure  <tsuna@lrde.epita.fr>
+           Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+       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  <Ralf.Wildenhues@gmx.de>
 +
 +      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  <Ralf.Wildenhues@gmx.de>
 +
 +      `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  <Ralf.Wildenhues@gmx.de>
 +
 +      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  <Ralf.Wildenhues@gmx.de>
 +
 +      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  <Ralf.Wildenhues@gmx.de>
 +
 +      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  <jengelh@medozas.de>
 +          Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      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  <Ralf.Wildenhues@gmx.de>
 +
 +      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  <Ralf.Wildenhues@gmx.de>
 +
 +      * NEWS: Update.
 +
 +2009-03-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      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  <Ralf.Wildenhues@gmx.de>
 +
 +      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  <peda@lysator.liu.se>
 +
 +      * tests/compile2.test: Fix typo.
 +
  2009-03-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
  
        Improve NetBSD 'make -n' output for many standard targets.
diff --cc NEWS
--- 1/NEWS
--- 2/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 automake.in
Simple merge
Simple merge
@@@ -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.
Simple merge
Simple merge
Simple merge
diff --cc 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"