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/parallel-tests


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, experimental/parallel-tests-pattern-rules, created. v1.11b-133-gb5d6d18
Date: Mon, 23 Apr 2012 15:25:32 +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=b5d6d18a1f2749612b3d0b439a43d89fabf1a719

The branch, experimental/parallel-tests-pattern-rules has been created
        at  b5d6d18a1f2749612b3d0b439a43d89fabf1a719 (commit)

- Log -----------------------------------------------------------------
commit b5d6d18a1f2749612b3d0b439a43d89fabf1a719
Author: Stefano Lattarini <address@hidden>
Date:   Mon Apr 23 11:16:09 2012 +0200

    [ng] tests: fix a spurious failure on Solaris 10
    
    * t/parallel-tests-unreadable.sh: On Solaris 10, on an error due to missing
    read permission, 'cat' reports simply "cat: cannot open FILENAME", rather
    than a proper "Permission denied" message; similarly fr grep.  Adjust the
    test (and comments) to cater for that.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 66d406afde0e6639e389e9fdef060dc096613537
Author: Stefano Lattarini <address@hidden>
Date:   Mon Apr 23 10:57:29 2012 +0200

    [ng] parallel-tests: fix confusing function names in Makefile recipes
    
    * lib/am/check.am: Rename shell function 'result_count' to
    'display_result_count', to avoid confusion with the recently
    added 'count_result' function.  Throw in a couple of cosmetic
    improvements since we are at it.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 82ffca3d9a7946f78f4602f6b9a5a5b87aa42b90
Author: Stefano Lattarini <address@hidden>
Date:   Mon Apr 23 11:31:57 2012 +0200

    [ng] parallel-tests: remove obsolete comment
    
    * lib/am/check.am ($(TEST_SUITE_LOGS)): Remove a comment referring to a
    FreeBSD make bug that is not present in GNU make.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 7dbe3efd9f3a5937b92644303ab8d87761c687ca
Author: Stefano Lattarini <address@hidden>
Date:   Mon Apr 23 10:39:39 2012 +0200

    [ng] tests: run long-running ones early (useful with parallel make)
    
    For multicore machines, whenever running the testsuite in parallel, it
    makes sense to start the longer-running tests earlier, to make better
    use of the CPU parallelism (in particular, to minimize the possibility
    that the test harness will be left stuck to wait a single tests to
    finish, thus leaving all cores but one idle).
    
    In the previous commit 'v1.11b-129-g1690aca', we started defining the
    automake $(TESTS) through a call to the $(wildcard) function.  This has
    many positive effects, but also the drawback that the tests are now
    ordered randomly, so that there is an unpredictable possibility that
    some long-running will be executed late, which is bad in light of what
    explained above.
    
    But luckily, we can be still able to ensure longer tests are run early,
    by using a simple trick (which relies on those very GNU make features
    that the parallel testsuite harness has only recently learned to grasp).
    
    * Makefile.am (long_running_TESTS, all_TESTS): New variables.
    (TESTS): Redefine in function of them, in a way that ensures the tests
    in $(long_running_TESTS) are run first.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 1690aca2063d8ba754e619681242324f09fa6635
Author: Stefano Lattarini <address@hidden>
Date:   Sun Apr 22 21:06:13 2012 +0200

    [ng] build: define $(TESTS) through a wildcard
    
    We can finally do that thanks to our recent improvements to the parallel
    testsuite harness :-)
    
    * t/list-of-tests.mk: Delete.
    * t/CheckListOfTests.am: Likewise, the checks it implemented being now
    redundant.
    * syntax-checks.mk (maintainer-check): Don't depend on the obsolete and
    now removed 'maintainer-check-list-of-tests' check anymore.
    * Makefile.am: Don't include those deleted makefile fragments anymore.
    (TESTS): Define through a proper use of the $(wildcard) GNU make builtin.
    (perl_fake_XFAIL_TESTS, XFAIL_TESTS): Moved in from 't/list-of-tests.mk'.
    ($(srcdir)/t/testsuite-part.am): Don't generate nor include anymore, ...
    ($(srcdir)/autodeps.am): ... generate and include this instead.
    Remove explicit dependency of the generated tests and their list on the
    '$(srcdir)/gen-testsuite-part' file; while technically correct, that was
    overly picky and source of problems for casual testers/users.  And anyway,
    we don't have an explicit list of all the generated files anymore ...
    * bootstrap: Adjust, by generating 'testsuite-autodeps.am' rather than
    't/testsuite-part.am'.
    * .gitignore: Update.
    * t/self-check-dir.tap: Update to avoid a spurious failure due to the
    changes in Makefile.am.
    * gen-testsuite-part: Do not output the list of automatically generated
    tests.  Ensure the generated tests are always placed in the $(srcdir).
    Assume (here and in the generated scripts) that all the test scripts
    (whther autogenerated or not) are to be found in $(srcdir).  Adjust some
    comments.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 1588135a1fa4096fdcb733eef899cfa50d24e9f2
Author: Stefano Lattarini <address@hidden>
Date:   Sun Apr 22 16:37:11 2012 +0200

    [ng] parallel-tests: support "TESTS = $(srcdir)/foo.test"
    
    This change fixes a small but annoying limitation of the parallel
    testsuite harness.   Before this change, if $(TESTS) contained a test
    case with '$(srcdir)' in its name:
    
      TESTS = $(srcdir)/foo.test
    
    the parallel testsuite driver would have created the 'foo.log' and
    'foo.trs' files in the source directory rather than in the build
    directory.  This made it impossible to employ useful constructs of the
    following kind:
    
      TESTS = $(wildcard *.test)
    
    in a VPATH setup.  In fact, the idiom as written above would have missed
    any test in the source directory (i.e., any non-generated tests), while
    the "corrected" idiom:
    
      TESTS = $(wildcard $(srcdir)/t[0-9][0-9]*.sh t[0-9][0-9]*.sh)
    
    would have created the '.log' and '.trs' files for any distributed test
    in the source directory.
    
    After this change, the "corrected" idiom above is usable, and created
    '.log' and '.trs' files in the build directory.
    
    * doc/automake.texi: Don't warn about the old limitation anymore.
    * NG-NEWS: Document that that limitation has been lifted.
    * lib/am/check.am (am__cooked_tests): New variable, containing all the
    entries of $(TESTS) with $(srcdir) prefix (if present) removed.
    * am__cooked_tests: Likewise, but for the contents of $(XFAIL_TESTS).
    * automake.in (handle_tests): Adjust the definition of $(TEST_LOGS) to
    use '$(am__cooked_tests)' instead of raw '$(TESTS)'.
    * t/parallel-tests-srcdir-in-test-name.sh: Adjust to test the new
    semantics.
    * t/list-of-tests.mk (XFAIL_TESTS): Remove the above test, it now
    passes.
    * t/parallel-tests-dynamic.sh: Enhance a little.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit a9f1c30d11a84393953264c4444125916f24769b
Author: Stefano Lattarini <address@hidden>
Date:   Sun Apr 22 15:15:02 2012 +0200

    [ng] coverage: parallel-tests and dynamic $(TESTS) content
    
    The recent changes to the parallel-tests implementation should allow us
    to define or override TESTS with more dynamic contents; in particular,
    something like:
    
      TESTS = $(wildcard t[0-9][0-9]*.sh)
    
    should now work smoothly.  Let's cover this enhanced functionalities
    explicitly in our testsuite.
    
    * t/parallel-tests-dynamic.sh: New test.
    * t/list-of-tests.mk: Add it.
    * NG-NEWS: Document the new feature.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 53b45c7187a1031f9c07cbd93e6e0a8c90e579bd
Author: Stefano Lattarini <address@hidden>
Date:   Fri Apr 20 21:04:36 2012 +0200

    [ng] parallel-tests: simplify automake-time preprocessing
    
    Our new pattern rules, introduced in recent commit 'v1.11b-124-gaeaba3f',
    are smart enough to allow us to ditch most of our cumbersome automake-time
    analysis and rewriting of the $(TESTS) variable when the parallel-tests
    driver is used.  This also makes other related simplifications possible.
    
    This change causes a little regression in that we won't be able anymore to
    diagnose at automake time test cases that start with the '$(srcdir)' or
    '$(top_srcdir)' component, but that's acceptable, since a later commit will
    make the former case actually work, and the second case isn't important
    enough to worry to much about.
    
    This change also causes a small behavioural change in automake, in that it
    will also need the 'LOG_DRIVER' variable to be defined in each Makefile.am
    defining the 'TESTS' variable; and if it's not defined, automake will
    define it itself, and require the presence of the 'test-driver' auxiliary
    script in the process (or bing it in if the "--add-missing" option is in
    use).  See the changes to 'NG-NEWS' for more details, and for workarounds.
    
    * automake.in (handle_tests): Don't walk nor rewrite $(TESTS) when the
    'parallel-tests' option is active.  Other related minor simplifications.
    * t/exeext4.sh: Define '$am_parallel_tests' to "no", so that the test
    won't be run with the 'parallel-tests' option enabled (as the semantics
    in that case have been changed in a way that would make this test fail).
    * t/check7.sh: When '$am_parallel_tests' is "yes", skip checks that
    don't work anymore with the 'parallel-tests' option is enabled.
    * t/test-driver-custom-no-extra-driver.sh: Adjust to avoid spurious
    failures to to the "LOG_DRIVER must be defined somehow" semantic change.
    * t/tap-common-setup.sh: Likewise.
    * t/tap-recheck.sh: Likewise.
    * t/tap-basic.sh: Likewise.
    * t/tap-diagnostic-custom.sh: Likewise.
    * t/tap-more.sh: Likewise.
    * t/tap-recheck.sh: Likewise.
    * t/tap-signal.tap: Likewise.
    * t/test-driver-custom-multitest.sh: Likewise.
    * t/test-driver-custom-multitest-recheck.sh: Likewise.
    * t/test-driver-custom-multitest-recheck2.sh: Likewise.
    * t/test-driver-custom-xfail-tests.sh: Likewise.
    * t/test-driver-fail.sh: Likewise.
    * t/test-driver-strip-vpath.sh: Likewise.
    * t/test-metadata-global-log.sh: Likewise.
    * t/test-metadata-global-results.sh: Likewise, and enhanced a little since
    we are at it.
    * t/test-metadata-results.sh: Likewise.
    * t/tap-bad-prog.tap: Likewise.
    * t/parallel-tests8.sh: Move the now-failing checks verifying that automake
    diagnoses test cases that start with the '$(srcdir)' or '$(top_srcdir)'...
    * t/parallel-tests-srcdir-in-test-name.sh: ... this new xfailing test.
    * t/spy-pattern-rules.sh: New "spy" test, verify our new assumptions on the
    precedence of pattern rules truly hold.
    * t/parallel-tests-longest-stem.sh: New test.
    * t/list-of-tests.mk: Update.
    * doc/automake.texi: Document that $(TESTS) is rewritten for $(EXEEXT)
    appending only when the 'parallel-tests' option is *not* in use.
    Add a "FIXME" comment about the fact that automake does not diagnose test
    cases that start with the '$(srcdir)' or '$(top_srcdir)' anymore.
    * NG-NEWS: Update.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit e4412726eb36809bd21b3bb308b2f791e4154e43
Author: Stefano Lattarini <address@hidden>
Date:   Fri Apr 20 18:04:47 2012 +0200

    [ng] cleanup: simplify %transforms for parallel-tests handling
    
    * automake.in (handle_tests, handle_per_suffix_test): Drop some %transforms
    previously required when processing 'lib/am/check.am': '%SOURCE%', '%OBJ%',
    '%BASE%' and '?GENERIC?'.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 8117459644f4ffbea15428c8a1f69262ad911641
Author: Stefano Lattarini <address@hidden>
Date:   Thu Apr 19 14:44:54 2012 +0200

    [ng] parallel-tests: simplify, using pattern rules with multiple targets
    
    In GNU make, a pattern with multiple targets, like:
    
        %.tab.c %.tab.h: %.y
                bison -d $<
    
    informs make that the associated recipe (in this example, "bison -d foo.y")
    will make create all the targets *at once* (in this example, both 'x.tab.c'
    and 'x.tab.h').
    
    Using this semantics we can simplify the parallel testsuite harness nicely,
    especially the recipe to build 'test-suite.log' in face of partially
    missing prerequisites (e.g., a missing '.trs' file while the corresponding
    '.log' file is present and up-to-date).
    
    In doing so, we unfortunately lose the ability to cope with very fringe-case
    situations and weird errors (e.g., a '.log' or '.trs' file somehow created
    unreadable), but that's a more than fair trade-off for the simplifications
    we obtain.
    
    * lib/am/check.am (am__set_TESTS_bases): Removed, superseded  by ...
    (am__TEST_BASES): ... this new variable.
    (check-TESTS, recheck): Adjust these recipes.
    (am__TEST_RESULTS): New variable.
    (am__check_pre): Adjust, to avoid an extra error (syntax error in the
    shell) when a circular dependency due to $(TEST_SUITE_LOG) being listed
    in $(TEST_LOGS) is detected.
    ($(TEST_SUITE_LOG)): Recipe heavily edited and simplified.  Also,
    depend on $(am__TEST_RESULTS) explicitly.
    (.log.trs): Remove this suffix rule, superseded by ...
    * lib/am/check2.am (%.log %.trs): ... this new pattern rule.
    Remove obsolete suffix rules.
    (am__runtest): Adjust.
    * automake.in (handle_tests): Adjust minimally.
    * lib/Automake/Rule.pm: Skip detection of duplicated rules for pattern
    rules; it would be tricky, prone to false positives, and not worth it.
    * t/parallel-tests-fork-bomb.sh: Minimal adjustments.
    * t/parallel-tests-unreadable.sh: Adjust functional tests.
    * t/serial-tests.sh: Adjust grepping checks.
    * t/serial-extensions.sh: Likewise.
    * t/parallel-tests-fd-redirect.sh: Relax grepping checks.
    * t/parallel-tests-fd-redirect-exeext.sh: Likewise.
    * t/test-trs-basic.sh: Adjust checks about some internal details that
    have been changed.
    * t/parallel-tests-no-repeat.sh: New test.
    * t/test-trs-recover-parallel.sh: Likewise.
    * t/test-driver-trs-suffix-registered.sh: Remove as obsolete.
    * t/test-missing2.sh: Remove (as "too picky").
    * t/test-trs-recover2.sh: Likewise.
    * t/list-of-tests.mk: Update.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

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


hooks/post-receive
-- 
GNU Automake



reply via email to

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