automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, tap-testsuite-work, updated


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, tap-testsuite-work, updated. v1.11-1149-g8be644b
Date: Mon, 08 Aug 2011 13:52:52 +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=8be644b8612ae1ab23bd9de646991c90e03cdea1

The branch, tap-testsuite-work has been updated
       via  8be644b8612ae1ab23bd9de646991c90e03cdea1 (commit)
       via  150be8ee36697ce014f3431b961be45c4c6a34b8 (commit)
       via  f4896832bde810feb7d329f9674082f2d7fc0996 (commit)
       via  0e6a7aeb46527a4289b1ccefdc05c10cf1197854 (commit)
       via  2ad993189da921058338b2cfdc1897ec7df35354 (commit)
       via  2cf22db73f5374bd0f528abfaf65987eab12a665 (commit)
       via  b1289ad8f1071b2e11325a7afcdc6aed632f07f9 (commit)
       via  f807dd5a843bc219424b3a9f33f2498dbc1c610a (commit)
       via  c7c62a4a2f075d7fcb4c035de361491008778fc5 (commit)
       via  1e0238adb8510b959bed87c264581e98afea9a92 (commit)
       via  bf15d302c88c7da373b3ad7a4d3cea92620baca8 (commit)
      from  b0a7f1ef5bfbcec5e8942270cdca18b424b5f28f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8be644b8612ae1ab23bd9de646991c90e03cdea1
Author: Stefano Lattarini <address@hidden>
Date:   Mon Aug 8 15:43:53 2011 +0200

    testsuite: improve interface for giving early TAP plan
    
    Since commit `v1.11-976-g4740f56', an early TAP plan can also be
    specified after input lines have already been seen, as long as
    no one of them is a TAP result line.  We can now take advantage
    of this in our own testsuite, allowing the TAP-based scripts to
    specify their earlier plan after having included `./defs'.  In
    particular, this offers the benefit of allowing those scripts to
    issue a "skip all" plan (e.g., "1..0 # SKIP reason ...") after
    the inclusion of `./defs', which wasn't possible with the older
    interface (introduced in commit `v1.11-1114-g0286308').
    
    * tests/defs: Don't try to call `plan_' if `$planned' is defined,
    the calling scripts can do that directly now.
    * tests/ac-output-old.tap: Use `plan_' directly instead of
    setting `$planned' before including `./defs'.
    * tests/automake-cmdline.tap: Likewise.
    * tests/depmod.tap: Likewise.
    * tests/instspc.tap: Likewise.
    * tests/tap-bad-prog.tap: Likewise.
    * tests/add-missing.tap: Don't set `$planned'.

commit 150be8ee36697ce014f3431b961be45c4c6a34b8
Author: Stefano Lattarini <address@hidden>
Date:   Mon Aug 8 15:23:11 2011 +0200

    test defs: fix bug in TAP version of `skip_all_'
    
    * tests/tap-functions (skip_all_): Set `$have_tap_plan_' to "yes"
    when called, so that the exit trap won't write another TAP plan.

commit f4896832bde810feb7d329f9674082f2d7fc0996
Author: Stefano Lattarini <address@hidden>
Date:   Mon Aug 8 15:00:25 2011 +0200

    test defs: fix skip directives to work also with TAP-based tests
    
    * test/defs: Use `skip_all_', not `skip_', to issue a skip of the
    whole calling test script.

commit 0e6a7aeb46527a4289b1ccefdc05c10cf1197854
Merge: 2ad9931 b1289ad
Author: Stefano Lattarini <address@hidden>
Date:   Mon Aug 8 14:49:19 2011 +0200

    Merge branch 'testsuite-work' into tap-testsuite-work
    
    (no-op)

commit 2ad993189da921058338b2cfdc1897ec7df35354
Merge: b0a7f1e 2cf22db
Author: Stefano Lattarini <address@hidden>
Date:   Mon Aug 8 14:49:06 2011 +0200

    Merge branch 'test-protocols' into tap-testsuite-work
    
    * test-protocols:
      test defs: more environment cleanup
      test harness: more minor VPATH-rewrite issues
      test harness: "make -n check" works correctly with Solaris make

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

Summary of changes:
 ChangeLog                      |   72 +++++++++++++++++++++++++
 lib/Automake/tests/Makefile.in |  112 +++++++++++++++++++++------------------
 lib/am/check.am                |  102 ++++++++++++++++++++----------------
 tests/Makefile.in              |  112 +++++++++++++++++++++------------------
 tests/ac-output-old.tap        |    3 +-
 tests/add-missing.tap          |    1 -
 tests/automake-cmdline.tap     |    3 +-
 tests/defs                     |   94 ++++++++++++++++-----------------
 tests/depmod.tap               |    7 ++-
 tests/instspc.tap              |    3 +-
 tests/tap-bad-prog.tap         |    3 +-
 tests/tap-functions.sh         |    1 +
 12 files changed, 306 insertions(+), 207 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b6e38f8..b3e9573 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,77 @@
 2011-08-08  Stefano Lattarini  <address@hidden>
 
+       testsuite: improve interface for giving early TAP plan
+       Since commit `v1.11-976-g4740f56', an early TAP plan can also be
+       specified after input lines have already been seen, as long as
+       no one of them is a TAP result line.  We can now take advantage
+       of this in our own testsuite, allowing the TAP-based scripts to
+       specify their earlier plan after having included `./defs'.  In
+       particular, this offers the benefit of allowing those scripts to
+       issue a "skip all" plan (e.g., "1..0 # SKIP reason ...") after
+       the inclusion of `./defs', which wasn't possible with the older
+       interface (introduced in commit `v1.11-1114-g0286308').
+       * tests/defs: Don't try to call `plan_' if `$planned' is defined,
+       the calling scripts can do that directly now.
+       * tests/ac-output-old.tap: Use `plan_' directly instead of
+       setting `$planned' before including `./defs'.
+       * tests/automake-cmdline.tap: Likewise.
+       * tests/depmod.tap: Likewise.
+       * tests/instspc.tap: Likewise.
+       * tests/tap-bad-prog.tap: Likewise.
+       * tests/add-missing.tap: Don't set `$planned'.
+
+2011-08-08  Stefano Lattarini  <address@hidden>
+
+       test defs: fix bug in TAP version of `skip_all_'
+       * tests/tap-functions (skip_all_): Set `$have_tap_plan_' to "yes"
+       when called, so that the exit trap won't write another TAP plan.
+
+2011-08-08  Stefano Lattarini  <address@hidden>
+
+       test defs: fix skip directives to work also with TAP-based tests
+       * test/defs: Use `skip_all_', not `skip_', to issue a skip of the
+       whole calling test script.
+
+2011-08-08  Stefano Lattarini  <address@hidden>
+
+       test defs: more environment cleanup
+       * tests/defs: Also unset variables AM_COLOR_TESTS and
+       AM_TESTS_ENVIRONMENT.
+
+2011-08-08  Stefano Lattarini  <address@hidden>
+
+       test harness: more minor VPATH-rewrite issues
+       * tests/am/check.am (am__set_TESTS_bases, $(TEST_SUITE_LOGS),
+       am--redo-logs, recheck, recheck-html): Cosmetic fixlets to
+       minimize the risk of unwanted VPATH rewrites.
+       (check-TESTS): Likewise, and normalize trailing whitespace
+       since we are at it.
+       Bugs exposed by test cases `check6-p.test' and `check7-p.test'.
+
+2011-08-08  Stefano Lattarini  <address@hidden>
+
+       test harness: "make -n check" works correctly with Solaris make
+       To avoid some recipes being executed with "make -n", we used the
+       trick of issuing recursive make calls not directly with $(MAKE),
+       but with a simple indirection instead:
+         ...
+         am__stealth_MAKE = $(MAKE)
+         ...
+         target:
+             ... $(am__stealth_MAKE) ...
+         ...
+       This hack worked with GNU make, but, unfortunately, not with
+       Solaris make.  The present change removes the hack, and uses more
+       proper idioms to avoid unwanted recipe executions with "make -n".
+       Bug exposed by test case `parallel-tests-dry-run.test'.
+       * lib/am/check.am (am__stealth_MAKE): Remove, no more used.
+       (.log.trs): Break recipe in multiple shell invocations.
+       ($(TEST_SUITE_LOG)): Likewise, and move some corner-case parts of
+       the recipe to ...
+       (am--redo-logs): ... this new internal helper .PHONY target.
+
+2011-08-08  Stefano Lattarini  <address@hidden>
+
        tests: fix spurious failure with Solaris make
        * tests/distcheck-configure-flags-am.test: Avoid using `+=' too
        liberally with AM_DISTCHECK_CONFIGURE_FLAGS, since the line breaks
diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in
index ab25bfe..582294c 100644
--- a/lib/Automake/tests/Makefile.in
+++ b/lib/Automake/tests/Makefile.in
@@ -167,12 +167,8 @@ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
 # See also 'test-harness-vpath-rewrite.test' and 'test-trs-basic.test'.
 am__set_TESTS_bases = \
   bases='$(TEST_LOGS)'; \
-  bases=`for f in $$bases; do echo $$f; done | sed 's/\.log$$//'`; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
   bases=`echo $$bases`
-# This can be used instead of $(MAKE) in recipes requiring a recursive call
-# to make, but which are not intended to be executed by "make -n".  See the
-# GNU make manual for more details.
-am__stealth_MAKE = $(MAKE)
 RECHECK_LOGS = $(TEST_LOGS)
 AM_RECURSIVE_TARGETS = check check-html recheck recheck-html
 TEST_SUITE_LOG = test-suite.log
@@ -354,34 +350,45 @@ cscope cscopelist:
 
 # Recover from deleted `.trs' file; this should ensure that
 # "rm -f foo.log; make foo.trs" re-run `foo.test', and re-create
-# both `foo.log' and `foo.trs'.
+# both `foo.log' and `foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
 .log.trs:
-       rm -f $< $@ && $(am__stealth_MAKE) $(AM_MAKEFLAGS) $<
+       rm -f $< $@
+       $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Helper recipe used by $(TEST_SUITE_LOG) below, to avoid problems with
+# "make -n".  Break this recipe in multiple shell invocations too, to
+# really work as expected with "make -n".
+am--redo-logs:
+       @rm -f $$redo_logs
+       @rm -f $$redo_results
+       @$(MAKE) $(AM_MAKEFLAGS) $$redo_logs
+       @st=0;  \
+       errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+       for i in $$redo_bases; do \
+         test -f $$i.trs && test -r $$i.trs \
+           || { echo "$$errmsg $$i.trs"; st=1; }; \
+         test -f $$i.log && test -r $$i.log \
+           || { echo "$$errmsg $$i.log"; st=1; }; \
+       done; \
+       test $$st -eq 0
 
 $(TEST_SUITE_LOG): $(TEST_LOGS)
-       @$(am__sh_e_setup); $(am__tty_colors); \
-       f_ok () { test -f "$$1" && test -r "$$1"; }; \
-       $(am__set_TESTS_bases); \
-       ws='[   ]'; \
-       redo_bases=`for b in $$bases; do \
-                     f_ok $$b.trs && f_ok $$b.log || echo $$b; \
+       @$(am__set_TESTS_bases); \
+       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+       redo_bases=`for i in $$bases; do \
+                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
                    done`; \
        if test -n "$$redo_bases"; then \
          redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
          redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-         rm -f $$redo_logs && rm -f $$redo_results \
-           && $(am__stealth_MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-       fi; \
-       st=0; \
-       for b in $$redo_bases; do \
-         for e in trs log; do \
-           f_ok $$b.$$e || { \
-             echo "fatal: making $@: failed to create $$b.$$e" >&2; \
-             st=1; \
-           }; \
-         done; \
-       done; \
-       test $$st -eq 0 || exit 1; \
+         redo_bases="$$redo_bases" \
+         redo_logs="$$redo_logs" \
+         redo_results="$$redo_results" \
+           $(MAKE) am--redo-logs || exit 1; \
+       else :; fi;
+       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+       ws='[   ]'; \
        results=`for b in $$bases; do echo $$b.trs; done`; \
        test -n "$$results" || results=/dev/null; \
        all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
@@ -432,20 +439,20 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
          echo;                                                         \
          echo ".. contents:: :depth: 2";                               \
          echo;                                                         \
-         for b in $$bases; do                                          \
-           if grep "^$$ws*:copy-in-global-log:$$ws*no$$ws*$$" $$b.trs \
+         for i in $$bases; do                                          \
+           if grep "^$$ws*:copy-in-global-log:$$ws*no$$ws*$$" $$i.trs \
                 >/dev/null; then continue; \
            fi; \
            glob_res=`sed -n -e "s/$$ws*$$//" \
                             -e "s/^$$ws*:global-test-result:$$ws*//p" \
-                       $$b.trs`; \
+                       $$i.trs`; \
            test -n "$$glob_res" || glob_res=RUN; \
-           echo "$$glob_res: $$b" | $(am__rst_section); \
-           if test ! -r $$b.log; then \
-             echo "fatal: making $@: $$b.log is unreadable" >&2; \
+           echo "$$glob_res: $$i" | $(am__rst_section); \
+           if test ! -r $$i.log; then \
+             echo "fatal: making $@: $$i.log is unreadable" >&2; \
              exit 1; \
            fi; \
-           cat $$b.log; echo; \
+           cat $$i.log; echo; \
          done; \
        } >$(TEST_SUITE_LOG).tmp;                                       \
        mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
@@ -474,11 +481,11 @@ check-TESTS:
        @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
        @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
        @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-       @list='$(TEST_LOGS)';                                           \
-       list=`for f in $$list; do                                       \
-         test .log = $$f || echo $$f;                                  \
-       done | tr '\012\015' '  '`;                                     \
-       list=`echo "$$list" | sed 's/ *$$//'`;                          \
+       @list='$(TEST_LOGS)'; \
+       list=`for i in $$list; do \
+         test .log = $$i || echo $$i; \
+       done | tr '\012\015' '  '`; \
+       list=`echo "$$list" | sed 's/ *$$//'`; \
        $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$list"
 
 .log.html:
@@ -509,10 +516,10 @@ recheck recheck-html:
        @ws='[  ]';                                                     \
        target=`echo $@ | sed 's,^re,,'`;                               \
        $(am__set_TESTS_bases);                                         \
-       list=`for b in $$bases; do                                      \
-               test -f $$b.trs || test -f $$b.log || continue;         \
-               grep "^$$ws*:recheck:$$ws*no$$ws*$$" $$b.trs            \
-                 >/dev/null 2>&1 || echo $$b.log;                      \
+       list=`for i in $$bases; do                                      \
+               test -f $$i.trs || test -f $$i.log || continue;         \
+               grep "^$$ws*:recheck:$$ws*no$$ws*$$" $$i.trs            \
+                 >/dev/null 2>&1 || echo $$i.log;                      \
              done | tr '\012\015' '  '`;                               \
        list=`echo "$$list" | sed 's/ *$$//'`;                          \
        $(MAKE) $(AM_MAKEFLAGS) $$target AM_MAKEFLAGS='$(AM_MAKEFLAGS) 
TEST_LOGS="'"$$list"'"'
@@ -660,16 +667,17 @@ uninstall-am:
 .MAKE: check-am check-html install-am install-strip recheck \
        recheck-html
 
-.PHONY: all all-am check check-TESTS check-am check-html clean \
-       clean-generic clean-local distclean distclean-generic distdir \
-       dvi dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-html install-html-am \
-       install-info install-info-am install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-       pdf-am ps ps-am recheck recheck-html uninstall uninstall-am
+.PHONY: all all-am am--redo-logs check check-TESTS check-am check-html \
+       clean clean-generic clean-local distclean distclean-generic \
+       distdir dvi dvi-am html html-am info info-am install \
+       install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic pdf pdf-am ps ps-am recheck recheck-html \
+       uninstall uninstall-am
 
 
 .PHONY: maintainer-check-list-of-tests
diff --git a/lib/am/check.am b/lib/am/check.am
index a6dcc30..2b58c57 100644
--- a/lib/am/check.am
+++ b/lib/am/check.am
@@ -113,36 +113,52 @@ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
 # See also 'test-harness-vpath-rewrite.test' and 'test-trs-basic.test'.
 am__set_TESTS_bases = \
   bases='$(TEST_LOGS)'; \
-  bases=`for f in $$bases; do echo $$f; done | sed 's/\.log$$//'`; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
 ## Trim away any extra whitespace.  This has already proved useful in
 ## avoiding weird bug on lesser make implementations.
   bases=`echo $$bases`
 
-# This can be used instead of $(MAKE) in recipes requiring a recursive call
-# to make, but which are not intended to be executed by "make -n".  See the
-# GNU make manual for more details.
-am__stealth_MAKE = $(MAKE)
-
 # Recover from deleted `.trs' file; this should ensure that
 # "rm -f foo.log; make foo.trs" re-run `foo.test', and re-create
-# both `foo.log' and `foo.trs'.
+# both `foo.log' and `foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
 .log.trs:
-       rm -f $< $@ && $(am__stealth_MAKE) $(AM_MAKEFLAGS) $<
+       rm -f $< $@
+       $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Helper recipe used by $(TEST_SUITE_LOG) below, to avoid problems with
+# "make -n".  Break this recipe in multiple shell invocations too, to
+# really work as expected with "make -n".
+am--redo-logs:
+       @rm -f $$redo_logs
+       @rm -f $$redo_results
+       @$(MAKE) $(AM_MAKEFLAGS) $$redo_logs
+## Sanity check: each unreadable or non-existent test result file should
+## has been properly remade at this point, as should the corresponding log
+## file.
+       @st=0;  \
+       errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+       for i in $$redo_bases; do \
+         test -f $$i.trs && test -r $$i.trs \
+           || { echo "$$errmsg $$i.trs"; st=1; }; \
+         test -f $$i.log && test -r $$i.log \
+           || { echo "$$errmsg $$i.log"; st=1; }; \
+       done; \
+       test $$st -eq 0
+.PHONY: am--redo-logs
 
 $(TEST_SUITE_LOG): $(TEST_LOGS)
-       @$(am__sh_e_setup); $(am__tty_colors); \
+       @$(am__set_TESTS_bases); \
 ## Helper shell function, tells whether a path refers to an existing,
 ## regular, readable file.
-       f_ok () { test -f "$$1" && test -r "$$1"; }; \
-       $(am__set_TESTS_bases); \
-       ws='[   ]'; \
+       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
 ## We need to ensures that all the required `.trs' and `.log' files will
 ## be present and readable.  The direct dependencies of $(TEST_SUITE_LOG)
 ## only ensure that all the `.log' files exists; they don't ensure that
 ## the `.log' files are readable, and worse, they don't ensure that the
 ## `.trs' files even exist.
-       redo_bases=`for b in $$bases; do \
-                     f_ok $$b.trs && f_ok $$b.log || echo $$b; \
+       redo_bases=`for i in $$bases; do \
+                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
                    done`; \
        if test -n "$$redo_bases"; then \
 ## Uh-oh, either some `.log' files were unreadable, or some `.trs' files
@@ -150,22 +166,16 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
 ## tests in order to re-create them.
          redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
          redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-         rm -f $$redo_logs && rm -f $$redo_results \
-           && $(am__stealth_MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-       fi; \
-## Sanity check: each unreadable or non-existent test result file should
-## has been properly remade at this point, as should the corresponding log
-## file.
-       st=0; \
-       for b in $$redo_bases; do \
-         for e in trs log; do \
-           f_ok $$b.$$e || { \
-             echo "fatal: making $@: failed to create $$b.$$e" >&2; \
-             st=1; \
-           }; \
-         done; \
-       done; \
-       test $$st -eq 0 || exit 1; \
+## The exported variables are needed by the helper hook.
+         redo_bases="$$redo_bases" \
+         redo_logs="$$redo_logs" \
+         redo_results="$$redo_results" \
+           $(MAKE) am--redo-logs || exit 1; \
+       else :; fi;
+## We need a new subshell to work portably with "make -n", since the
+## previous part of the recipe contained a $(MAKE) invocation.
+       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+       ws='[   ]'; \
 ## List of test result files.
        results=`for b in $$bases; do echo $$b.trs; done`; \
        test -n "$$results" || results=/dev/null; \
@@ -230,27 +240,27 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
          echo;                                                         \
          echo ".. contents:: :depth: 2";                               \
          echo;                                                         \
-         for b in $$bases; do                                          \
+         for i in $$bases; do                                          \
 ## FIXME: one fork per test -- this is horrendously inefficient!
-           if grep "^$$ws*:copy-in-global-log:$$ws*no$$ws*$$" $$b.trs \
+           if grep "^$$ws*:copy-in-global-log:$$ws*no$$ws*$$" $$i.trs \
                 >/dev/null; then continue; \
            fi; \
 ## Get the declared "global result" of the test.
 ## FIXME: yet another one fork per test here!
            glob_res=`sed -n -e "s/$$ws*$$//" \
                             -e "s/^$$ws*:global-test-result:$$ws*//p" \
-                       $$b.trs`; \
+                       $$i.trs`; \
 ## If no global result is explicitly declared, we'll merely mark the
 ## test as "RUN" in the global test log.
            test -n "$$glob_res" || glob_res=RUN; \
 ## Write the name and result of the test as an RST section title.
-           echo "$$glob_res: $$b" | $(am__rst_section); \
+           echo "$$glob_res: $$i" | $(am__rst_section); \
 ## If we should have remade any unreadable `.log', above.
-           if test ! -r $$b.log; then \
-             echo "fatal: making $@: $$b.log is unreadable" >&2; \
+           if test ! -r $$i.log; then \
+             echo "fatal: making $@: $$i.log is unreadable" >&2; \
              exit 1; \
            fi; \
-           cat $$b.log; echo; \
+           cat $$i.log; echo; \
          done; \
        } >$(TEST_SUITE_LOG).tmp;                                       \
        mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
@@ -299,13 +309,13 @@ check-TESTS:
 ## 3.80 to erroneously expand $(TESTS_LOGS) to `foo.log .log'.
 ## Work around this bug.
        @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-       @list='$(TEST_LOGS)';                                           \
-       list=`for f in $$list; do                                       \
-         test .log = $$f || echo $$f;                                  \
-       done | tr '\012\015' '  '`;                                     \
+       @list='$(TEST_LOGS)'; \
+       list=`for i in $$list; do \
+         test .log = $$i || echo $$i; \
+       done | tr '\012\015' '  '`; \
 ## This apparently useless munging helps to avoid a nasty bug (a
 ## segmentation fault!) on Solaris XPG4 make.
-       list=`echo "$$list" | sed 's/ *$$//'`;                          \
+       list=`echo "$$list" | sed 's/ *$$//'`; \
        $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$list"
 
 AM_RECURSIVE_TARGETS += check
@@ -353,13 +363,13 @@ recheck recheck-html:
        @ws='[  ]';                                                     \
        target=`echo $@ | sed 's,^re,,'`;                               \
        $(am__set_TESTS_bases);                                         \
-       list=`for b in $$bases; do                                      \
+       list=`for i in $$bases; do                                      \
 ## Skip tests that haven't been run, but recover gracefully from deleted
 ## `.trs' files.
-               test -f $$b.trs || test -f $$b.log || continue;         \
+               test -f $$i.trs || test -f $$i.log || continue;         \
 ## FIXME: one fork per test -- this is horrendously inefficient!
-               grep "^$$ws*:recheck:$$ws*no$$ws*$$" $$b.trs            \
-                 >/dev/null 2>&1 || echo $$b.log;                      \
+               grep "^$$ws*:recheck:$$ws*no$$ws*$$" $$i.trs            \
+                 >/dev/null 2>&1 || echo $$i.log;                      \
              done | tr '\012\015' '  '`;                               \
 ## This apparently useless munging helps to avoid a nasty bug (a
 ## segmentation fault!) on Solaris XPG4 make.
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 9bceece..7dd6394 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -171,12 +171,8 @@ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
 # See also 'test-harness-vpath-rewrite.test' and 'test-trs-basic.test'.
 am__set_TESTS_bases = \
   bases='$(TEST_LOGS)'; \
-  bases=`for f in $$bases; do echo $$f; done | sed 's/\.log$$//'`; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
   bases=`echo $$bases`
-# This can be used instead of $(MAKE) in recipes requiring a recursive call
-# to make, but which are not intended to be executed by "make -n".  See the
-# GNU make manual for more details.
-am__stealth_MAKE = $(MAKE)
 RECHECK_LOGS = $(TEST_LOGS)
 AM_RECURSIVE_TARGETS = check check-html recheck recheck-html
 TEST_SUITE_LOG = test-suite.log
@@ -1501,34 +1497,45 @@ cscope cscopelist:
 
 # Recover from deleted `.trs' file; this should ensure that
 # "rm -f foo.log; make foo.trs" re-run `foo.test', and re-create
-# both `foo.log' and `foo.trs'.
+# both `foo.log' and `foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
 .log.trs:
-       rm -f $< $@ && $(am__stealth_MAKE) $(AM_MAKEFLAGS) $<
+       rm -f $< $@
+       $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Helper recipe used by $(TEST_SUITE_LOG) below, to avoid problems with
+# "make -n".  Break this recipe in multiple shell invocations too, to
+# really work as expected with "make -n".
+am--redo-logs:
+       @rm -f $$redo_logs
+       @rm -f $$redo_results
+       @$(MAKE) $(AM_MAKEFLAGS) $$redo_logs
+       @st=0;  \
+       errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+       for i in $$redo_bases; do \
+         test -f $$i.trs && test -r $$i.trs \
+           || { echo "$$errmsg $$i.trs"; st=1; }; \
+         test -f $$i.log && test -r $$i.log \
+           || { echo "$$errmsg $$i.log"; st=1; }; \
+       done; \
+       test $$st -eq 0
 
 $(TEST_SUITE_LOG): $(TEST_LOGS)
-       @$(am__sh_e_setup); $(am__tty_colors); \
-       f_ok () { test -f "$$1" && test -r "$$1"; }; \
-       $(am__set_TESTS_bases); \
-       ws='[   ]'; \
-       redo_bases=`for b in $$bases; do \
-                     f_ok $$b.trs && f_ok $$b.log || echo $$b; \
+       @$(am__set_TESTS_bases); \
+       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+       redo_bases=`for i in $$bases; do \
+                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
                    done`; \
        if test -n "$$redo_bases"; then \
          redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
          redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-         rm -f $$redo_logs && rm -f $$redo_results \
-           && $(am__stealth_MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-       fi; \
-       st=0; \
-       for b in $$redo_bases; do \
-         for e in trs log; do \
-           f_ok $$b.$$e || { \
-             echo "fatal: making $@: failed to create $$b.$$e" >&2; \
-             st=1; \
-           }; \
-         done; \
-       done; \
-       test $$st -eq 0 || exit 1; \
+         redo_bases="$$redo_bases" \
+         redo_logs="$$redo_logs" \
+         redo_results="$$redo_results" \
+           $(MAKE) am--redo-logs || exit 1; \
+       else :; fi;
+       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+       ws='[   ]'; \
        results=`for b in $$bases; do echo $$b.trs; done`; \
        test -n "$$results" || results=/dev/null; \
        all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
@@ -1579,20 +1586,20 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
          echo;                                                         \
          echo ".. contents:: :depth: 2";                               \
          echo;                                                         \
-         for b in $$bases; do                                          \
-           if grep "^$$ws*:copy-in-global-log:$$ws*no$$ws*$$" $$b.trs \
+         for i in $$bases; do                                          \
+           if grep "^$$ws*:copy-in-global-log:$$ws*no$$ws*$$" $$i.trs \
                 >/dev/null; then continue; \
            fi; \
            glob_res=`sed -n -e "s/$$ws*$$//" \
                             -e "s/^$$ws*:global-test-result:$$ws*//p" \
-                       $$b.trs`; \
+                       $$i.trs`; \
            test -n "$$glob_res" || glob_res=RUN; \
-           echo "$$glob_res: $$b" | $(am__rst_section); \
-           if test ! -r $$b.log; then \
-             echo "fatal: making $@: $$b.log is unreadable" >&2; \
+           echo "$$glob_res: $$i" | $(am__rst_section); \
+           if test ! -r $$i.log; then \
+             echo "fatal: making $@: $$i.log is unreadable" >&2; \
              exit 1; \
            fi; \
-           cat $$b.log; echo; \
+           cat $$i.log; echo; \
          done; \
        } >$(TEST_SUITE_LOG).tmp;                                       \
        mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
@@ -1621,11 +1628,11 @@ check-TESTS:
        @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
        @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
        @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-       @list='$(TEST_LOGS)';                                           \
-       list=`for f in $$list; do                                       \
-         test .log = $$f || echo $$f;                                  \
-       done | tr '\012\015' '  '`;                                     \
-       list=`echo "$$list" | sed 's/ *$$//'`;                          \
+       @list='$(TEST_LOGS)'; \
+       list=`for i in $$list; do \
+         test .log = $$i || echo $$i; \
+       done | tr '\012\015' '  '`; \
+       list=`echo "$$list" | sed 's/ *$$//'`; \
        $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$list"
 
 .log.html:
@@ -1656,10 +1663,10 @@ recheck recheck-html:
        @ws='[  ]';                                                     \
        target=`echo $@ | sed 's,^re,,'`;                               \
        $(am__set_TESTS_bases);                                         \
-       list=`for b in $$bases; do                                      \
-               test -f $$b.trs || test -f $$b.log || continue;         \
-               grep "^$$ws*:recheck:$$ws*no$$ws*$$" $$b.trs            \
-                 >/dev/null 2>&1 || echo $$b.log;                      \
+       list=`for i in $$bases; do                                      \
+               test -f $$i.trs || test -f $$i.log || continue;         \
+               grep "^$$ws*:recheck:$$ws*no$$ws*$$" $$i.trs            \
+                 >/dev/null 2>&1 || echo $$i.log;                      \
              done | tr '\012\015' '  '`;                               \
        list=`echo "$$list" | sed 's/ *$$//'`;                          \
        $(MAKE) $(AM_MAKEFLAGS) $$target AM_MAKEFLAGS='$(AM_MAKEFLAGS) 
TEST_LOGS="'"$$list"'"'
@@ -1823,16 +1830,17 @@ uninstall-am:
 .MAKE: check-am check-html install-am install-strip recheck \
        recheck-html
 
-.PHONY: all all-am check check-TESTS check-am check-html clean \
-       clean-generic clean-local distclean distclean-generic distdir \
-       dvi dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-html install-html-am \
-       install-info install-info-am install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-       pdf-am ps ps-am recheck recheck-html uninstall uninstall-am
+.PHONY: all all-am am--redo-logs check check-TESTS check-am check-html \
+       clean clean-generic clean-local distclean distclean-generic \
+       distdir dvi dvi-am html html-am info info-am install \
+       install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic pdf pdf-am ps ps-am recheck recheck-html \
+       uninstall uninstall-am
 
 backcompat5-p.log: backcompat5.test
 check-exported-srcdir-p.log: check-exported-srcdir.test
diff --git a/tests/ac-output-old.tap b/tests/ac-output-old.tap
index 201e517..ee2d150 100755
--- a/tests/ac-output-old.tap
+++ b/tests/ac-output-old.tap
@@ -19,9 +19,10 @@
 # line breaking in the use of AC_OUTPUT.  Synthesised by a bunch
 # of older tests (referenced below).
 
-planned=22
 . ./defs || Exit 1
 
+plan_ 22
+
 rm -f configure.in depcomp # Not required.
 
 # -----------------------------------------------------------------------
diff --git a/tests/add-missing.tap b/tests/add-missing.tap
index cbf6e57..4c6a624 100755
--- a/tests/add-missing.tap
+++ b/tests/add-missing.tap
@@ -19,7 +19,6 @@
 # the files) it's supposed to, and that these files are symlinked by
 # default, but copied if the `--copy' option is used.
 
-planned=unknown # Counting it would be too much data-dependent.
 . ./defs || Exit 1
 
 build_aux=build-aux
diff --git a/tests/automake-cmdline.tap b/tests/automake-cmdline.tap
index 1c53a6d..9397900 100755
--- a/tests/automake-cmdline.tap
+++ b/tests/automake-cmdline.tap
@@ -16,9 +16,10 @@
 
 # Test Automake's command-line options.
 
-planned=17
 . ./defs || Exit 1
 
+plan_ 17
+
 # Usage: bad_cmdline DESCRIPTION REGEX-FOR-STDERR [ARGS-FOR-AUTOMAKE...]
 do_check ()
 {
diff --git a/tests/defs b/tests/defs
index 25cfb93..8db1084 100644
--- a/tests/defs
+++ b/tests/defs
@@ -139,8 +139,9 @@ unset srcdir
 # 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 TESTS_ENVIRONMENT
+unset TESTS_ENVIRONMENT AM_TESTS_ENVIRONMENT
 unset DISABLE_HARD_ERRORS
+unset AM_COLOR_TESTS
 unset TESTS
 unset TEST_LOG_COMPILER
 unset TEST_LOGS
@@ -427,7 +428,7 @@ require_xsi ()
 {
   test $# -eq 1 || fatal_ "require_xsi needs exactly one argument"
   echo "$me: trying some XSI constructs with $1"
-  $1 -c "$xsi_shell_code" || skip_ "$1 lacks XSI features"
+  $1 -c "$xsi_shell_code" || skip_all_ "$1 lacks XSI features"
 }
 # Shell code supposed to work only with XSI shells.  Keep this in sync
 # with libtool.m4:_LT_CHECK_SHELL_FEATURES.
@@ -444,11 +445,6 @@ xsi_shell_code='
 ##  required by them.                                          ##
 ## ----------------------------------------------------------- ##
 
-# The TAP plan must be either the fist or last line of output.
-if test $using_tap = yes && test ${planned-unknown} != unknown; then
-  plan_ "$planned"
-fi
-
 # Print it here, so that the user will see it also if the test
 # will be skipped due to some tool missing in $PATH itself.
 echo "$PATH"
@@ -469,13 +465,13 @@ do
   case $tool in
     :) ;;
     cc)
-      test "$CC"  = false && skip_ "no C compiler available";;
+      test "$CC"  = false && skip_all_ "no C compiler available";;
     c++)
-      test "$CXX" = false && skip_ "no C++ compiler available";;
+      test "$CXX" = false && skip_all_ "no C++ compiler available";;
     fortran)
-      test "$FC"  = false && skip_ "no Fortran compiler available";;
+      test "$FC"  = false && skip_all_ "no Fortran compiler available";;
     fortran77)
-      test "$F77" = false && skip_ "no Fortran 77 compiler available";;
+      test "$F77" = false && skip_all_ "no Fortran 77 compiler available";;
     xsi-shell)
       require_xsi "$SHELL";;
     xsi-bin-sh)
@@ -491,19 +487,19 @@ do
       # Do not use --version, bzip2 still tries to compress stdin.
       echo "$me: running bzip2 --help"
       bzip2 --help \
-        || skip_ "required program \`bzip2' not available"
+        || skip_all_ "required program \`bzip2' not available"
       ;;
     cl)
       CC=cl
       export CC
       echo "$me: running $CC -?"
-      $CC -? || skip_ "Microsoft C compiler \`$CC' not available"
+      $CC -? || skip_all_ "Microsoft C compiler \`$CC' not available"
       ;;
     cscope)
       # Sun cscope is interactive without redirection.
       echo "$me: running cscope --version </dev/null"
       cscope --version </dev/null \
-        || skip_ "required program \`cscope' not available"
+        || skip_all_ "required program \`cscope' not available"
       ;;
     etags)
       # Exuberant Ctags will create a TAGS file even
@@ -512,7 +508,7 @@ do
       # to make sure we do not pollute the tests/ directory.
       echo "$me: running etags --version -o /dev/null"
       etags --version -o /dev/null \
-        || skip_ "required program \`etags' not available"
+        || skip_all_ "required program \`etags' not available"
       ;;
     GNUmake)
       for make_ in "$MAKE" gmake gnumake :; do
@@ -521,7 +517,7 @@ do
         echo "$me: determine whether $MAKE is GNU make"
         using_gmake && break
       done
-      test "$MAKE" = : && skip_ "this test requires GNU make"
+      test "$MAKE" = : && skip_all_ "this test requires GNU make"
       export MAKE
       unset make_
       ;;
@@ -533,33 +529,33 @@ do
       CC=${am__tool_prefix}gcc
       export CC
       echo "$me: running $CC --version"
-      $CC --version || skip_ "GNU C compiler not available"
+      $CC --version || skip_all_ "GNU C compiler not available"
       echo "$me: running $CC -v"
-      $CC -v || skip_ "botched installation for GNU C compiler"
+      $CC -v || skip_all_ "botched installation for GNU C compiler"
       ;;
     gcj)
       GCJ=${am__tool_prefix}gcj
       export GCJ
       echo "$me: running $GCJ --version"
-      $GCJ --version || skip_ "GNU Java compiler not available"
+      $GCJ --version || skip_all_ "GNU Java compiler not available"
       echo "$me: running $GCJ -v"
-      $GCJ -v || skip_ "botched installation for GNU Java compiler"
+      $GCJ -v || skip_all_ "botched installation for GNU Java compiler"
       ;;
     g++)
       CXX=${am__tool_prefix}g++
       export CXX
       echo "$me: running $CXX --version"
-      $CXX --version || skip_ "GNU C++ compiler not available"
+      $CXX --version || skip_all_ "GNU C++ compiler not available"
       echo "$me: running $CXX -v"
-      $CXX -v || skip_ "botched installation for GNU C++ compiler"
+      $CXX -v || skip_all_ "botched installation for GNU C++ compiler"
       ;;
     gfortran)
       FC=${am__tool_prefix}gfortran
       export FC
       echo "$me: running $FC --version"
-      $FC --version || skip_ "GNU Fortran compiler not available"
+      $FC --version || skip_all_ "GNU Fortran compiler not available"
       echo "$me: running $FC -v"
-      $FC -v || skip_ "botched installation for GNU Fortran compiler"
+      $FC -v || skip_all_ "botched installation for GNU Fortran compiler"
       case " $required " in
         *\ g77\ *) ;;
         *) F77=$FC; export F77;;
@@ -569,9 +565,9 @@ do
       F77=${am__tool_prefix}g77
       export F77
       echo "$me: running $F77 --version"
-      $F77 --version || skip_ "GNU Fortran 77 compiler not available"
+      $F77 --version || skip_all_ "GNU Fortran 77 compiler not available"
       echo "$me: running $F77 -v"
-      $F77 -v || skip_ "botched installation for GNU Fortran 77 compiler"
+      $F77 -v || skip_all_ "botched installation for GNU Fortran 77 compiler"
       case " $required " in
         *\ gfortran\ *) ;;
         *) FC=$F77; export FC;;
@@ -585,7 +581,7 @@ do
       # it will try link *nothing* and complain it cannot find
       # main(); funny).  Use -help so it does not try linking anything.
       echo "$me: running $CC -V -help"
-      $CC -V -help || skip_ "Intel C compiler \`$CC' not available"
+      $CC -V -help || skip_all_ "Intel C compiler \`$CC' not available"
       ;;
     javac)
       # The Java compiler from JDK 1.5 (and presumably earlier versions)
@@ -593,18 +589,18 @@ do
       # telling that source files are missing.  Adding also the `-help'
       # option seems to solve the problem.
       echo "$me: running javac -version -help"
-      javac -version -help || skip_ "Sun Java compiler not available"
+      javac -version -help || skip_all_ "Sun Java compiler not available"
       ;;
     makedepend)
       echo "$me: running makedepend -f-"
       makedepend -f- \
-        || skip_ "required program \`makedepend' not available"
+        || skip_all_ "required program \`makedepend' not available"
       ;;
     makeinfo-html)
       # Make sure we have makeinfo, and it understands `--html'.
       echo "$me: running makeinfo --html --version"
       makeinfo --html --version \
-        || skip_ "cannot find a makeinfo program that groks the" \
+        || skip_all_ "cannot find a makeinfo program that groks the" \
                  "\`--html' option"
       ;;
     non-root)
@@ -617,22 +613,22 @@ do
       overwrite_status=$?
       rm -f $priv_check_temp
       if test $overwrite_status -eq 0; then
-        skip_ "cannot drop file write permissions"
+        skip_all_ "cannot drop file write permissions"
       fi
       unset priv_check_temp overwrite_status
       ;;
     perl-threads)
       if test "$WANT_NO_THREADS" = "yes"; then
-        skip_ "Devel::Cover cannot cope with threads"
+        skip_all_ "Devel::Cover cannot cope with threads"
       fi
       ;;
     native)
-      cross_compiling && skip_ "doesn't work in cross-compile mode"
+      cross_compiling && skip_all_ "doesn't work in cross-compile mode"
       ;;
     python)
       # Python doesn't support --version, it has -V
       echo "$me: running python -V"
-      python -V || skip_ "python interpreter not available"
+      python -V || skip_all_ "python interpreter not available"
       ;;
     ro-dir)
       # Skip this test case if read-only directories aren't supported
@@ -644,7 +640,7 @@ do
       create_status=$?
       rm -rf $ro_dir_temp
       if test $create_status -eq 0; then
-        skip_ "cannot drop directory write permissions"
+        skip_all_ "cannot drop directory write permissions"
       fi
       unset ro_dir_temp create_status
       ;;
@@ -655,7 +651,7 @@ do
           echo "$me: running $r2h --version"
           $r2h --version && break 2
         done
-        skip_ "no proper rst2html program found"
+        skip_all_ "no proper rst2html program found"
       done
       unset r2h
       ;;
@@ -665,30 +661,30 @@ do
       # DejaGnu 1.4.3 or later.
       echo "$me: running runtest SOMEPROGRAM=someprogram --version"
       runtest SOMEPROGRAM=someprogram --version \
-        || skip_ "DejaGnu is not available"
+        || skip_all_ "DejaGnu is not available"
       ;;
     tex)
       # No all versions of Tex support `--version', so we use
       # a configure check.
       if test -z "$TEX"; then
-        skip_ "TeX is required, but it wasn't found by configure"
+        skip_all_ "TeX is required, but it wasn't found by configure"
       fi
       ;;
     texi2dvi-o)
       # Texi2dvi supports `-o' since Texinfo 4.1.
       echo "$me: running texi2dvi -o /dev/null --version"
       texi2dvi -o /dev/null --version \
-        || skip_ "required program \`texi2dvi' not available"
+        || skip_all_ "required program \`texi2dvi' not available"
       ;;
     flex)
       # Since flex is required, we pick LEX for ./configure.
       LEX=flex
       export LEX
       echo "$me: running flex --version"
-      flex --version || skip_ "required program \`flex' not available"
+      flex --version || skip_all_ "required program \`flex' not available"
       ;;
     lex)
-      test "$LEX" = false && skip_ "no Lex program available"
+      test "$LEX" = false && skip_all_ "no Lex program available"
       if test -z "$LEX"; then
         # The user hasn't explicitly specified any lex program in the
         # environment, so we try to use flex, skipping the test if it's
@@ -696,11 +692,11 @@ do
         LEX=flex
         export LEX
         echo "$me: running flex --version"
-        flex --version || skip_ "required program \`flex' not available"
+        flex --version || skip_all_ "required program \`flex' not available"
       fi
       ;;
     yacc)
-      test "$YACC" = false && skip_ "no Yacc program available"
+      test "$YACC" = false && skip_all_ "no Yacc program available"
       if test -z "$YACC"; then
         # The user hasn't explicitly specified any yacc program in the
         # environment, so we try to use bison, skipping the test if it's
@@ -708,7 +704,7 @@ do
         YACC='bison -y'
         export YACC
         echo "$me: running bison --version"
-        bison --version || skip_ "required program \`bison' not available"
+        bison --version || skip_all_ "required program \`bison' not available"
       fi
       ;;
     *)
@@ -717,7 +713,7 @@ do
       # It is not likely but possible that $tool is a special builtin,
       # in which case the shell is allowed to exit after an error.
       # So, please leave the subshell here.
-      ($tool --version) || skip_ "required program \`$tool' not available"
+      ($tool --version) || skip_all_ "required program \`$tool' not available"
       ;;
   esac
 done
@@ -729,7 +725,7 @@ case $testbuilddir in
   *\ *|*\      *)
     case " $required " in
       *' libtool '* | *' libtoolize '* )
-        skip_ "libtool has problems with spaces in builddir name";;
+        skip_all_ "libtool has problems with spaces in builddir name";;
     esac
     ;;
 esac
@@ -742,7 +738,7 @@ case $testsrcdir in
   *\ * |*\     *)
     case " $required " in
       *' libtool '* | *' libtoolize '* | *' gettext '* )
-        skip_ "spaces in srcdir name: libtool/gettext tests won't work";;
+        skip_all_ "spaces in srcdir name: libtool/gettext tests won't work";;
    esac
    ;;
 esac
@@ -782,7 +778,7 @@ case " $required " in
           # Write more diagnostic to the log file than to the console.
           echo "$me: \`libtool.m4' wasn't found in directories" \
                "$aclocaldir $extra_includes"
-          skip_ "libtool m4 macros won't be found by aclocal"
+          skip_all_ "libtool m4 macros won't be found by aclocal"
         fi
         ;;
       *' gettext '*)
@@ -790,7 +786,7 @@ case " $required " in
           # Write more diagnostic to the log file than to the console.
           echo "$me: \`gettext.m4' wasn't found in directories" \
                "$aclocaldir $extra_includes"
-          skip_ "gettext m4 macros won't be found by aclocal"
+          skip_all_ "gettext m4 macros won't be found by aclocal"
         fi
         ;;
     esac
diff --git a/tests/depmod.tap b/tests/depmod.tap
index 85bd972..82fd844 100755
--- a/tests/depmod.tap
+++ b/tests/depmod.tap
@@ -51,12 +51,13 @@
 # which caused make to die with an error like:
 #  "sub/.deps/subfoo.Po:3: *** missing separator.  Stop."
 
+required=cc
+. ./defs || Exit 99
+
 # Per each valid depmode three kinds of VPATH, and per each of them
 # a test on "./configure" and one on "make & remake"; so there are
 # 17 * 3 * 2 = 102.
-planned=102
-required=cc
-. ./defs || Exit 99
+plan_ 102
 
 ocwd=`pwd` || fatal_ "cannot get current working directory"
 
diff --git a/tests/instspc.tap b/tests/instspc.tap
index f421fc7..dc52299 100755
--- a/tests/instspc.tap
+++ b/tests/instspc.tap
@@ -19,9 +19,10 @@
 # Original report from James Amundson about file names with spaces.
 # Other characters added by Paul Eggert.
 
-planned=94 # Two tests per "problematic string".
 . ./defs || Exit 99
 
+plan_ 94 # Two tests per "problematic string".
+
 # Usage: is_in_list ITEM [LIST...]
 is_in_list ()
 {
diff --git a/tests/tap-bad-prog.tap b/tests/tap-bad-prog.tap
index 086b38e..cf475a1 100755
--- a/tests/tap-bad-prog.tap
+++ b/tests/tap-bad-prog.tap
@@ -18,10 +18,11 @@
 #  - missing, unreadable, or not-executable test scripts cause proper
 #    error reports
 
-planned=5
 parallel_tests=yes
 . ./defs || Exit 1
 
+plan_ 5
+
 cp "$top_testsrcdir"/lib/tap-driver . \
   || fatal_ "failed to fetch auxiliary script tap-driver"
 
diff --git a/tests/tap-functions.sh b/tests/tap-functions.sh
index d685c18..5cd6c1a 100644
--- a/tests/tap-functions.sh
+++ b/tests/tap-functions.sh
@@ -200,6 +200,7 @@ xpass_ ()
 skip_all_ ()
 {
   echo "1..0 # SKIP" ${1+"$@"}
+  have_tap_plan_=yes
   Exit 0
 }
 


hooks/post-receive
-- 
GNU Automake



reply via email to

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