automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, experimental/ng/parallel-te


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, experimental/ng/parallel-tests, created. v1.12-234-gd6c3e66
Date: Wed, 16 May 2012 12:52:18 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=d6c3e66bf0275d55754f6bee7b9760c9b3978893

The branch, experimental/ng/parallel-tests has been created
        at  d6c3e66bf0275d55754f6bee7b9760c9b3978893 (commit)

- Log -----------------------------------------------------------------
commit d6c3e66bf0275d55754f6bee7b9760c9b3978893
Author: Stefano Lattarini <address@hidden>
Date:   Wed May 16 14:51:24 2012 +0200

    perf: optimize 'am__strip_suffixes' for speed
    
    This optimization offers some noticeable performance improvements for
    packages having a lot of tests and using the Automake-provided parallel
    testsuite harness; this is due to the fact that the internal automake
    variable 'am__test_bases' used by it is calculated through a proper call
    to 'am__strip_suffixes'.
    
    More precisely, we have measured the times required to complete null
    "make all", "make recheck" and "make check AM_LAZY_CHECK=yes"
    invocations in a package with 5000 tests in the top-level directory
    and other 5000 tests in a subdirectory.  Here are the results,
    averaged on a several runs:
    
    + Before this patch:
      - "make all"                           2.7 seconds
      - "make recheck"                       3.9 seconds
      - "make check AM_LAZY_CHECK=yes"      15.2 seconds
    
    + After this patch:
      - "make all"                           0.4 seconds
      - "make recheck"                       1.7 seconds
      - "make check AM_LAZY_CHECK=yes"       7.2 seconds
    
    + In mainline automake (commit v1.12-75-gd89da9c):
      - "make all"                           0.9 seconds
      - "make recheck"                       3.5 seconds
      - "make check RECHECK_LOGS="          14.1 seconds
    
    See also previous commit XXX for another (weaker) optimization.
    
    The need for this optimization has been suggested by Bob Friesenhahn:
    <XXX>
    
    * lib/am/header-vars.am (am__strip_suffixes): Rewrite in a way
    that allows much better performance.
    (am__private_suffix): New internal variable, used by the new
    implementation.
    (am__strip_suffixes): Remove, it's not needed anymore.
    * t/internals.tap: Adjust.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 0010655c826446ed1be07874138830a37fb8a6bf
Author: Stefano Lattarini <address@hidden>
Date:   Tue May 15 10:33:44 2012 +0200

    [ng] check: memoize some internal vars (avoid useless recalculation)
    
    Thanks to our recently-introduced support for memoization of make
    variables, we can avoid some useless re-calculation of few internal
    variables used by the parallel testsuite harness support, thus
    improving performances in some common use cases.
    
    More precisely, we have measured the times required to complete null
    "make all", "make recheck" and "make check AM_LAZY_CHECK=yes"
    invocations in a package with 5000 tests in the top-level directory
    and other 5000 tests in a subdirectory.  Here are the results,
    averaged on a several runs:
    
    + Before this patch:
      - "make all"                           2.9 seconds
      - "make recheck"                       4.9 seconds
      - "make check AM_LAZY_CHECK=yes"      18.1 seconds
    
    + After this patch:
      - "make all"                           2.7 seconds
      - "make recheck"                       3.9 seconds
      - "make check AM_LAZY_CHECK=yes"      15.2 seconds
    
    + In mainline automake (commit v1.12-75-gd89da9c):
      - "make all"                           0.9 seconds
      - "make recheck"                       3.5 seconds
      - "make check RECHECK_LOGS="          14.1 seconds
    
    So we still have a problem with "make all".  That's due to performance
    issues with the internal make function 'am__strip_suffixes', which will
    be dealt with in a later patch.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 8df5284d9b3abf09df2251ffe344fc535b017379
Author: Stefano Lattarini <address@hidden>
Date:   Wed May 9 10:31:46 2012 +0200

    [ng] check: per-suffix dependencies for test cases
    
    Akim Demaille asked (in automake bug#11287) for a way to specify extra
    dependencies for the test cases, depending on their extension (or lack
    thereof).  Now that Automake-NG uses pattern rules instead of old-fashion
    suffix rules to generate '.log' and '.trs' files from test cases, doing
    that is trivial.
    
    * NG-NEWS: Update.
    * doc/automake.texi: Document the new feature.
    * automake.in (handle_per_suffix_test): Mark the contents of the
    '${pfx}LOG_DEPENDENCIES' variable as processed (required to avoid
    spurious errors).
    * lib/am/check2.am (%.log, %.trs): Depend on '$(%PFX%LOG_DEPENDENCIES)'.
    * t/parallel-tests-per-suffix-deps.sh: New test.
    * t/parallel-tests-log-compiler-example.sh: Renamed ...
    * t/parallel-tests-logvars-example.sh: ... to this, and adjusted to
    be more faithful to the updated documentation.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 3579ab0e2f8fb4afd324215b7b007c769f74d106
Author: Stefano Lattarini <address@hidden>
Date:   Wed May 9 09:28:15 2012 +0200

    [ng] check: few minor simplifications
    
    * lib/check.am (recheck): Don't remove $(TEST_SUITE_LOG) by hand, that is
    already done automatically by the recursively-invoked rule 'check-TESTS'.
    (check-TESTS): Don't check that $(TEST_SUITE_LOG) expands to a non-empty
    string before removing it.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit c71a0053fe5d73777f47d8682411f844afe33973
Author: Stefano Lattarini <address@hidden>
Date:   Wed May 9 09:13:51 2012 +0200

    [ng] tests: remove overly picky test cases (and fix few typos)
    
    Given the new shape of the parallel testsuite support implementation as
    derived from Automake 1.12 and further enhanced in recent Automake-NG
    commits, few tests for it have become overly picky, basically impossible
    to fail unless many others do as well, or the implementation is altered
    radically (basically being rewritten).  So, to avoid having out already
    too slow test suite bogged down even further, we remove them.
    
    * t/parallel-tests-cmdline-override.sh: Removed, the still-relevant part
    of its checks moved ...
    * t/parallel-tests-dynamic.sh: ... in here.
    * t/parallel-tests-log-override-2.sh: Removed.
    * t/parallel-tests-log-override-recheck.sh: Likewise.
    * t/parallel-tests-no-spurious-summary.sh: Likewise.
    * t/tap-no-spurious-summary.sh: Likewise.
    * t/parallel-tests-log-override-1.sh: Renamed ...
    * t/parallel-tests-log-override.sh: ... like this, to avoid confusion.
    * t/parallel-tests-extra-program.sh: Fix a typo.
    * t/tap-todo-skip.sh: Likewise.
    * t/tap-deps.sh: Likewise.
    * t/parallel-tests-longest-stem.sh: Remove an extra empty line.
    * t/parallel-tests6.sh: Add a proper empty line, for better readability.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 02f42e6e18ff489d0374c693fd1c3c45b6d78ddd
Author: Stefano Lattarini <address@hidden>
Date:   Tue May 8 11:23:38 2012 +0200

    [ng] check: AM_LAZY_CHECK="yes", not RECHECK_TESTS="", for lazy re-runs
    
    This causes a backward-incompatibility with mainline automake, but will
    also offer a cleaner API and a possibility to further simplify the
    implementation of the 'check' and 'recheck' targets in the future.
    
    * doc/automake.texi, NG-NEWS, t/README: Update.
    * lib/am/check.am (am__remove_if_not_lazy_check): New internal function,
    expanding to shell code that removes the given list of files unless the
    'AM_LAZY_CHECK' variable is set to "yes".
    (check-TESTS): Use it instead of the contents of 'RECHECK_LOGS' top
    decide which .log and .trs files to remove.
    (RECHECK_LOGS): Don't define anymore.
    * t/parallel-tests.sh: Adjust.
    * t/parallel-tests-extra-programs.sh: Likewise.
    * t/test-trs-recover.sh: Likewise.
    * t/tap-recheck-logs.sh: Rename ...
    * t/tap-lazy-check.sh: ... to this, and adjust.
    * defs: Don't unset 'RECHECK_LOGS'; unset 'AM_LAZY_CHECK' instead.
    * syntax-checks.mk: Adjust some comments.
    (sc_no_RECHECK_LOGS): New maintainer check, guard against uses of
    the now-obsolete 'RECHECK_LOGS' variable.
    (syntax_check_rules): Add it.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 8a2df0d1fe3c865a391ab2c88ca9c14c0be57c89
Author: Stefano Lattarini <address@hidden>
Date:   Tue May 8 09:15:34 2012 +0200

    [ng] check: refactor: split recipes for check-TESTS and recheck
    
    Their implementation has diverged to the point that it's now simpler
    and clearer to keep them separate.
    
    * lib/am/check.am (check-TESTS, recheck): Split their recipes, and
    minor relate changes.
    * t/parallel-tests-dynamic.sh: Simplify an overly tricky check that
    has been broken by this change.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 9c0400ed8aae7fda77ecacd2d51771a7692dd16e
Author: Stefano Lattarini <address@hidden>
Date:   Mon May 7 20:28:09 2012 +0200

    [ng] check: minor refactoring (prefer make time over recipe time)
    
    No semantic change intended.
    
    * lib/am/check2.am [%?FIRST%] (am__is_xfail_test): New internal helper
    function.
    (am__runtest): Use that, the $(if) built-in, and a minor reorganization
    to shave off few lines of code, and to favor processing by make over
    processing by the shell.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 362ec502ba89831cc3b74e09946a80e9bf848419
Author: Stefano Lattarini <address@hidden>
Date:   Mon May 7 20:12:17 2012 +0200

    [ng] check: minor refactoring (reorder code)
    
    This is just movement and minor reorganization of code; no semantic
    change is intended.
    
    * lib/am/check.am (am__sh_e_setup): Moved ...
    * lib/am/header-vars.am (am__sh_e_setup): ... here.
    * lib/am/check.am (am__check_pre, am__common_driver_flags): Removed,
    their contents merged ...
    * lib/am/check2.am [%?FIRTS%] (am__runtest): ... into this.  Other
    related whitespace and indentation changes since we are at it.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 8c01ea77d45fc0d36479845659701f4e673ddea4
Author: Stefano Lattarini <address@hidden>
Date:   Mon May 7 17:02:01 2012 +0200

    [ng] check: refactor (better names for internal vars)
    
    Rename some Automake-defined internal make variables as follows:
    
        am__TEST_BASES    =>  am__test_bases
        am__TEST_RESULTS  =>  am__test_results
        am__TEST_LOGS     =>  am__test_logs
    
    * automake.in, lib/am/check.am, t/parallel-tests-empty-tests.sh,
    t/test-trs-basic.sh, t/serial-tests.sh: Update accordingly.
    * syntax-checks.mk (sc_no_am_TEST_BASES, sc_no_am_TEST_RESULTS,
    sc_no_am_TEST_LOGS): New maintainer checks, to ensure the old
    names are not used by mistake.
    (syntax_check_rules): Add them.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit f11ef5c676fc6fad78a5cb54855789c6d0e47238
Author: Stefano Lattarini <address@hidden>
Date:   Mon May 7 16:57:24 2012 +0200

    [ng] check: refactoring to reduce code duplication
    
    * lib/am/check.am (am__strip_suffixes): New internal function, factoring
    the code used to "normalize" a list of test scripts (i.e., removing any
    registered test extension and any leading $(srcdir) component).
    (am__TEST_BASES, am__xfail_test_bases): Redefine using that function.
    (am__cooked_tests, am__cooked_xfail_tests): Remove as obsolete.
    * t/parallel-tests-empty-tests.sh: Don't bother checking the contents
    of $(am__cooked_tests) anymore.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit a8f56923e0adc291c0b1cdd556fda17645d3b9f1
Author: Stefano Lattarini <address@hidden>
Date:   Mon May 7 16:38:12 2012 +0200

    [ng] refactor: get rid of am__EXEEXT (automake conditional and %transform)
    
    We can substitute that with a static automake conditional %HANDLE-EXEEXT%
    and a make runtime check on the non-emptiness of $(EXEEXT).
    
    * automake.in (preprocess_file): New transform '%HANDLE-EXEEXT%', TRUE
    if 'EXEEXT' has been AC_SUBST'd, FALSE otherwise.
    (handle_tests): Don't define the transform '%HANDLE-EXEEXT%' anymore
    when processing 'check.am': that is now done transparently by the
    'preprocess_file' function.
    (handle_per_suffix_test): Don't process the transform '%am__EXEEXT%'
    anymore when reading 'check2.am'.  It's superseded by '%HANDLE-EXEEXT%'
    and ...
    * lib/am/check2.am [%HANDLE-EXEEXT%]: ... by a make-runtime check that
    $(EXEEXT) is not empty.
    * m4/init.m4 (AM_INIT_AUTOMAKE): Simplify, taking advantage of the fact
    that we don't need the Automake conditional "am__EXEEXT" anymore.
    * t/parallel-tests-exeext.sh: Tiny simplification.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 12711fcc0f3dc914b7e63345a25a186b8d4e401f
Author: Stefano Lattarini <address@hidden>
Date:   Sun Apr 15 14:00:52 2012 +0200

    [ng] check: big refactoring with semantic changes in parallel-tests support
    
    In this change, we move some further processing related to the parallel
    testsuite harness support from Automake runtime to make runtime.
    
    A welcome collateral effect of this is that we are now able to cope
    with test scripts whose name ends with several concatenated suffixes.
    
    Another (less welcome) collateral effect of the present change is that
    the user now cannot override TEST_LOGS at make runtime anymore:
    
        # This won't work anymore!
        make check TESTS_LOGS="foo.log bar.log baz.log"
    
    This admittedly is a small(ish) regression.  But it's not a real problem,
    since we now explicitly allow *and document* that TESTS can be overridden
    at runtime without bothering to add the test suffixes to its entries:
    
        # This will work even if complete names of the tests are (say)
        # "foo.test", "bar.test$(EXEEXT)" and "baz$(EXEEXT)".
        make check TESTS="foo bar baz"
    
    With such usage, the user don't have to bother knowing which the exact
    extensions of each tests are -- which was precisely the only advantage
    of overriding TEST_LOGS instead of TESTS.
    
    * NG-NEWS: Update.
    * doc/automake.texi: Likewise.
    * lib/am/header-vars.am (am__strip_suffixes_0, am__strip_suffixes): New
    internal macros ...
    * t/internals.tap: ... covered by new checks in this test, and used ...
    * lib/am/check.am (am__xfail_test_bases): ... to define this new internal
    variable in term of $(am__cooked_xfail_tests) (and thus eventually of
    $(XFAIL_TESTS)), and to ...
    (am__TEST_BASES): ... (re)define this pre-existing internal variable in
    terms of $(am__cooked_tests) (and thus eventually of $(TESTS)), rather
    than in terms of $(TEST_LOGS) as was done before.
    (am__TEST_RESULTS, am__TEST_LOGS): Define in terms of $(am__TEST_BASES).
    (TEST_LOGS): Define to $(am__TEST_LOGS), for backward-compatibility.
    ($(TEST_SUITE_LOG)): Depend on $(am__TEST_RESULTS) rather than on
    $(TEST_LOGS).
    (am__check_pre): Use $(am__xfail_test_bases) and new temporary shell
    variable $f2, instead of $(am__cooked_xfail_tests) and $f, to decide
    whether a test is expected to fail or not.
    Fix some imprecise or botched comments since we are at it.
    (check-TESTS, recheck): When re-invoking make recursively, override
    am__TEST_BASES rather than TEST_LOGS.  Relate tweaks.
    * automke.in (handle_tests): Pass new transform %HANDLE-EXEEXT% when
    including check.am (used for the definitions of am__xfail_test_bases
    and am__TEST_BASES).  Don't define the TEST_LOGS make variable, nor the
    auxiliary make variables am__test_logs1, am__test_logs2, etc.  Put
    $(am__TEST_LOGS) and $(am__TEST_RESULTS) among the "mostlyclean" files
    (rather than "$(TEST_LOGS)" and "$(TEST_LOGS:.log=.trs)" as before).
    * t/parallel-tests-concatenated-suffix.sh: New test.
    * t/nodeps.sh: Delete, it was causing too much spurious failures.
    * t/color2.sh: Avoid a spurious failure by not calling make with
    the '-e' flag.
    * t/parallel-tests-exeext.sh: Extended to check the user is not
    forced to specify the test suffixes nor the $(EXEEXT) suffix
    when overriding TESTS on the command line.
    * t/check-concurrency-bug9245.sh: Adjust to the new semantics of "no
    TEST_LOGS overriding from the command line".
    * t/parallel-tests-cmdline-override.sh: Likewise.
    * t/parallel-tests-dynamic.sh: Likewise.
    * t/parallel-tests-fork-bomb.sh: Likewise.
    * t/parallel-tests-log-override-2.sh: Likewise.
    * t/tap-basic.sh: Likewise.
    * t/test-driver-custom-multitest-recheck2.sh: Likewise.
    * t/test-missing.sh: Likewise.
    * t/test-trs-basic.sh: Likewise.
    * t/test-trs-recover.sh: Likewise.
    * t/parallel-tests-empty-tests.sh: Likewise, and extended to check
    that an empty TESTS produces am__cooked_tests, am__TEST_RESULTS,
    am__TEST_BASES and am__TEST_LOGS that are empty as well.
    * t/parallel-tests.sh: Adjust to the new semantics of "no TEST_LOGS
    overriding from the command line". Remove a workaround required only
    by HP-UX make.  Make some "FIXME"-style comments stick out.
    * t/serial-tests.sh: Adjust some checks that grep the Automake
    generated Makefile.in.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit e77e1977451fff101bb91b71ff363b94b813fb64
Author: Stefano Lattarini <address@hidden>
Date:   Wed May 16 10:02:52 2012 +0200

    [ng] coverage: more on make variable memoization
    
    * t/memoize.tap: Four new tests: three on memoized variables expanded
    as arguments of a function call, one on memoized variables expanded
    inside other memoized variables.  While we are at it, improve brief
    description of few existing tests.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

-----------------------------------------------------------------------


hooks/post-receive
-- 
GNU Automake



reply via email to

[Prev in Thread] Current Thread [Next in Thread]