diff options
Diffstat (limited to 'lib/am/check.am')
-rw-r--r-- | lib/am/check.am | 573 |
1 files changed, 0 insertions, 573 deletions
diff --git a/lib/am/check.am b/lib/am/check.am deleted file mode 100644 index 7bcffd53f..000000000 --- a/lib/am/check.am +++ /dev/null @@ -1,573 +0,0 @@ -## automake - create Makefile.in from Makefile.am -## Copyright (C) 2001-2015 Free Software Foundation, Inc. - -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2, or (at your option) -## any later version. - -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. - -## You should have received a copy of the GNU General Public License -## along with this program. If not, see <http://www.gnu.org/licenses/>. - -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no - -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ -## If stdout is a non-dumb tty, use colors. If test -t is not supported, -## then this check fails; a conservative approach. Of course do not -## redirect stdout here, just stderr. - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} - -.PHONY: check-TESTS - -if !%?SERIAL_TESTS% - -include inst-vars.am - -## New parallel test driver. -## -## The first version of the code here was adapted from check.mk, which was -## originally written at EPITA/LRDE, further developed at Gostai, then made -## its way from GNU coreutils to end up, largely rewritten, in Automake. -## The current version is an heavy rewrite of that, to allow for support -## of more test metadata, and the use of custom test drivers and protocols -## (among them, TAP). - -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* - -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ -## By default, we assume the test is to be re-run. - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ -## If we've encountered an I/O error here, there are three possibilities: -## -## [1] The '.log' file exists, but the '.trs' does not; in this case, -## we "gracefully" recover by assuming the corresponding test is -## to be re-run (which will re-create the missing '.trs' file). -## -## [2] Both the '.log' and '.trs' files are missing; this means that -## the corresponding test has not been run, and is thus *not* to -## be re-run. -## -## [3] We have encountered some corner-case problem (e.g., a '.log' or -## '.trs' files somehow made unreadable, or issues with a bad NFS -## connection, or whatever); we don't handle such corner cases. -## - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ -## A directive explicitly specifying the test is *not* to be re-run. - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ -## A directive explicitly specifying the test *is* to be re-run. - break; \ - } \ -## else continue with the next iteration. - }; \ - if (recheck) \ - print $$0; \ -## Don't leak open file descriptors, as this could cause serious -## problems when there are many tests (yes, even on Linux). - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' - -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ -## By default, we assume the test log is to be copied in the global log, -## and that its result is simply "RUN" (i.e., we still don't know what -## it outcome was, but we know that at least it has run). - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ -## Don't leak open file descriptors, as this could cause serious -## problems when there are many tests (yes, even on Linux). - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' - -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } - -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac - -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" - -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -## The use of $dir below is required to account for VPATH -## rewriting done by Sun make. -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) - -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - 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. It also -## works around the GNU make 3.80 bug where trailing whitespace in -## "TESTS = foo.test $(empty)" causes $(TESTS_LOGS) to erroneously -## expand to "foo.log .log". - bases=`echo $$bases` - -# 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'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ -## Helper shell function, tells whether a path refers to an existing, -## regular, readable file. - 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 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 -## were missing (or unreadable). We need to re-run the corresponding -## 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`; \ - if $(am__make_dryrun); then :; else \ -## Break "rm -f" into two calls to minimize the possibility of exceeding -## command line length limits. - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ -## Use a trick to to ensure that we don't go into an infinite recursion -## in case a test log in $(TEST_LOGS) is the same as $(TEST_SUITE_LOG). -## Yes, this has already happened in practice. Sigh! - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ -## Invoking this unconditionally could cause a useless "make all" to -## be invoked when '$redo_logs' expands to empty (automake bug#16302). - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ -## 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" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - 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; \ -## Prepare data for the test suite summary. These do not take into account -## unreadable test results, but they'll be appropriately updated later if -## needed. - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ -## Whether the testsuite was successful or not. - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ -## Make $br a line of exactly 76 '=' characters, that will be used to -## enclose the testsuite summary report when displayed on the console. - br='==================='; br=$$br$$br$$br$$br; \ -## When writing the test summary to the console, we want to color a line -## reporting the count of some result *only* if at least one test -## experienced such a result. This function is handy in this regard. - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ -## A shell function that creates the testsuite summary. We need it -## because we have to create *two* summaries, one for test-suite.log, -## and a possibly-colorized one for console output. - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ -## Write "global" testsuite log. - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ -## Emit the test summary on the console. - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ -## Multi line coloring is problematic with "less -R", so we really need -## to color each line individually. - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ - echo "$${col}$$br$${std}"; \ -## This is expected to go to the console, so it might have to be colorized. - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ -## Be sure to exit with the proper exit status. The use of "exit 1" below -## is required to work around a FreeBSD make bug (present only when running -## in concurrent mode). See automake bug#9245: -## <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9245> -## and FreeBSD PR bin/159730: -## <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730>. - $$success || exit 1 - -RECHECK_LOGS = $(TEST_LOGS) - -## ------------------------------------------ ## -## Running all tests, or rechecking failures. ## -## ------------------------------------------ ## - -check-TESTS: - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list -## We always have to remove $(TEST_SUITE_LOG), to ensure its rule is run -## in any case even in lazy mode: otherwise, if no test needs rerunning, -## or a prior run plus reruns all happen within the same timestamp (can -## happen with a prior "make TESTS=<subset>"), then we get no log output. -## OTOH, this means that, in the rule for '$(TEST_SUITE_LOG)', we -## cannot use '$?' to compute the set of lazily rerun tests, lest -## we rely on .PHONY to work portably. - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ -## Remove newlines and normalize whitespace. Trailing (and possibly -## leading) whitespace is known to cause segmentation faults on -## Solaris 10 XPG4 make. - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ -## Be sure to exit with the proper exit status (automake bug#9245). See -## comments in the recipe of $(TEST_SUITE_LOG) above for more information. - exit $$?; - -## Recheck must depend on $(check_SCRIPTS), $(check_PROGRAMS), etc. -## It must also depend on the 'all' target. See automake bug#11252. -recheck: all %CHECK_DEPS% -## See comments above in the check-TESTS recipe for why remove -## $(TEST_SUITE_LOG) here. - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ -## We must only consider tests that had an unexpected outcome (FAIL -## or XPASS) in the earlier run. - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ -## Remove newlines and normalize whitespace. Trailing (and possibly -## leading) whitespace is known to cause segmentation faults on -## Solaris 10 XPG4 make. - log_list=`echo $$log_list`; \ -## Move the '.log' and '.trs' files associated with the tests to be -## re-run out of the way, so that those tests will be re-run by the -## "make test-suite.log" recursive invocation below. -## Two tricky requirements: -## - we must avoid extra files removal when running under "make -n"; -## - in case the test is a compiled program whose compilation fails, -## we must ensure that any '.log' and '.trs' file referring to such -## test are preserved, so that future "make recheck" invocations -## will still try to re-compile and re-run it (automake bug#11791). -## The tricky recursive make invocation below should cater to such -## requirements. - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ -## Be sure to exit with the proper exit status (automake bug#9245). See -## comments in the recipe of $(TEST_SUITE_LOG) above for more information. - exit $$? - -AM_RECURSIVE_TARGETS += check recheck - -.PHONY: recheck - -else %?SERIAL_TESTS% - -## Obsolescent serial testsuite driver. - -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ -## Make sure Solaris VPATH-expands all members of this list, even -## the first and the last one; thus the spaces around $(TESTS) - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ -## Note: Solaris 2.7 seems to expand TESTS using VPATH. That's -## why we also try 'dir='. - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then \ -## Success - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ -## Failure - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ -## Skipped - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ -## Prepare the banner - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ - fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ - else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ - fi; \ - fi; \ -## DASHES should contain the largest line of the banner. - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ - else \ - skipped="($$skip tests were not run)"; \ - fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - fi; \ -## Multi line coloring is problematic with "less -R", so we really need -## to color each line individually. - echo "$${col}$$dashes$${std}"; \ - echo "$${col}$$banner$${std}"; \ - test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ - test -z "$$report" || echo "$${col}$$report$${std}"; \ - echo "$${col}$$dashes$${std}"; \ - test "$$failed" -eq 0; \ - else :; fi - -endif %?SERIAL_TESTS% |