summaryrefslogtreecommitdiff
path: root/build-aux
diff options
context:
space:
mode:
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>2009-03-14 12:15:40 +0100
committerJim Meyering <meyering@redhat.com>2009-03-31 20:29:01 +0200
commitf8268d3baecee552e13efb916693bfa51734862b (patch)
treedda3f095374e8affd7ba90e767a2f1c4b09ce5c1 /build-aux
parent7a21310eb3b8135546d0ded83f301f657cd757ae (diff)
downloadcoreutils-f8268d3baecee552e13efb916693bfa51734862b.tar.xz
build: use Automake's new parallel-tests feature
* build-aux/check.mk: Remove, not needed any more. * tests/Makefile.am (AUTOMAKE_OPTIONS): Add parallel-tests and color-tests. * tests/check.mk: Do not include build-aux/check.mk any more. (SUFFIXES, TEST_LOGS): Remove. (TESTS_ENVIRONMENT): Use $$f rather than $$tst in $PERL invocation. * gnulib-tests/Makefile.am: Do not include build-aux/check.mk. (AUTOMAKE_OPTIONS): New macro, add parallel-test and color-tests. (TEST_LOGS): Remove.
Diffstat (limited to 'build-aux')
-rw-r--r--build-aux/check.mk283
1 files changed, 0 insertions, 283 deletions
diff --git a/build-aux/check.mk b/build-aux/check.mk
deleted file mode 100644
index 5bfcc90cf..000000000
--- a/build-aux/check.mk
+++ /dev/null
@@ -1,283 +0,0 @@
-## Vaucanson, a generic library for finite state machines.
-## Copyright (C) 2006, 2007 The Vaucanson Group.
-##
-## 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
-## of the License, or (at your option) any later version.
-##
-## The complete GNU General Public Licence Notice can be found as the
-## `COPYING' file in the root directory.
-
-## Override the definition from Automake to generate a log file with
-## failed tests. It also supports parallel make checks.
-##
-## This file provides special support for "unit tests", that is to
-## say, tests that (once run) no longer need to be re-compiled and
-## re-run at each "make check", unless their sources changed. To
-## enable unit-test supports, define LAZY_TEST_SUITE. In such a
-## setting, that heavily relies on correct dependencies, its users may
-## prefer to define EXTRA_PROGRAMS instead of check_PROGRAMS, because
-## it allows intertwined compilation and execution of the tests.
-## Sometimes this helps catching errors earlier (you don't have to
-## wait for all the tests to be compiled).
-##
-## Define TEST_SUITE_LOG to be the name of the global log to create.
-## Define TEST_LOGS to the set of logs to include in it. One possibility
-## is $(TESTS:.test=.log).
-##
-## In addition to the magic "exit 77 means SKIP" feature (which was
-## imported from automake), there is a magic "exit 177 means FAIL" feature
-## which is useful if you need to issue a hard error no matter whether the
-## test is XFAIL or not.
-
-# Use a POSIX-compatible shell if available, as this file uses
-# features of the POSIX shell that are not supported by some standard
-# shell implementations (e.g., Solaris 10 /bin/sh).
-SHELL = $(PREFERABLY_POSIX_SHELL)
-
-# Set this to `false' to disable hard errors.
-ENABLE_HARD_ERRORS = :
-
-## We use GNU Make extensions (%-rules) inside GNU_MAKE checks,
-## and we override check-TESTS.
-AUTOMAKE_OPTIONS += -Wno-portability -Wno-override
-
-# Restructured Text title and section.
-am__rst_title = sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//'
-am__rst_section = sed 'p;s/./=/g;p;g'
-
-# Put stdin (possibly several lines separated by ". ") in a box.
-am__text_box = $(AWK) '{gsub ("\\. ", "\n"); print $$0; }' | \
-$(AWK) ' \
-max < length($$0) { \
- final= final (final ? "\n" : "") " " $$0; \
- max = length($$0); \
-} \
-END { \
- for (i = 0; i < max + 2 ; ++i) \
- line = line "="; \
- print line; \
- print final; \
- print line; \
-}'
-
-# If stdout is a tty and TERM is smart then use colors. If test -t or
-# tput are not supported then this fails; a conservative approach. Of
-# course do not redirect stdout here, just stderr...
-am__tty_colors = \
-red=; \
-grn=; \
-lgn=; \
-blu=; \
-std=; \
-test "X$$TERM" != Xdumb && \
-test -t 1 2>/dev/null && \
-tput bold 1 >/dev/null 2>&1 && \
-tput setaf 1 >/dev/null 2>&1 && \
-tput sgr0 >/dev/null 2>&1 && \
-{ \
- red=$$(tput setaf 1); \
- grn=$$(tput setaf 2); \
- lgn=$$(tput bold)$$(tput setaf 2); \
- blu=$$(tput setaf 4); \
- std=$$(tput sgr0); \
-}
-
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL). This contradicts POSIX. Work around the problem
-# by disabling -e (using the XSI extension "set +e") if it's set.
-SH_E_WORKAROUND = case $$- in *e*) set +e;; esac
-
-# Emulate dirname with sed.
-_d_no_slash = s,^[^/]*$$,.,
-_d_strip_trailing = s,\([^/]\)//*$$,\1,
-_d_abs_trivial = s,^//*[^/]*$$,/,
-_d_rm_basename = s,\([^/]\)//*[^/]*$$,\1,
-_dirname = \
- sed '$(_d_no_slash);$(_d_strip_trailing);$(_d_abs_trivial);$(_d_rm_basename)'
-
-# To be inserted before the command running the test. Creates the
-# directory for the log if needed. Stores in $dir the directory
-# containing $src, and passes TESTS_ENVIRONMENT.
-# Save and restore TERM around use of TESTS_ENVIRONMENT,
-# in case that unsets it.
-am__check_pre = \
-$(SH_E_WORKAROUND); \
-tst=`echo "$$src" | sed 's|^.*/||'`; \
-rm -f $@-t; \
-trap 'st=$$?; rm -f '\''$(abs_builddir)/$@-t'\''; (exit $$st); exit $$st' \
- 1 2 13 15; \
-$(mkdir_p) "$$(echo '$@'|$(_dirname))" || exit; \
-if test -f "./$$src"; then dir=./; \
-elif test -f "$$src"; then dir=; \
-else dir="$(srcdir)/"; fi; \
-__SAVED_TERM=$$TERM; \
-$(TESTS_ENVIRONMENT)
-
-# To be appended to the command running the test. Handles the stdout
-# and stderr redirection, and catch the exit status.
-am__check_post = \
->$@-t 2>&1; \
-estatus=$$?; \
-if test $$estatus -eq 177; then \
- $(ENABLE_HARD_ERRORS) || estatus=1; \
-fi; \
-TERM=$$__SAVED_TERM; export TERM; \
-$(am__tty_colors); \
-xfailed=PASS; \
-for xfail in : $(XFAIL_TESTS); do \
- case $$src in \
- $$xfail | */$$xfail) xfailed=XFAIL; break; \
- esac; \
-done; \
-case $$estatus:$$xfailed in \
- 0:XFAIL) col=$$red; res=XPASS;; \
- 0:*) col=$$grn; res=PASS ;; \
- 77:*) col=$$blu; res=SKIP ;; \
- 177:*) col=$$red; res=FAIL ;; \
- *:XFAIL) col=$$lgn; res=XFAIL;; \
- *:*) col=$$red; res=FAIL ;; \
-esac; \
-echo "$${col}$$res$${std}: $@"; \
-echo "$$res: $@ (exit: $$estatus)" | \
- $(am__rst_section) >$@; \
-cat $@-t >>$@; \
-rm $@-t
-
-SUFFIXES += .html .log
-
-# From a test (with no extension) to a log file.
-if GNU_MAKE
-%.log: %
- @src='$<'; $(am__check_pre) "$$dir$$src" $(am__check_post)
-else
-# With POSIX 'make', inference rules cannot have FOO.log depend on FOO.
-# Work around the problem by calculating the dependency dynamically, and
-# then invoking a submake with the calculated dependency.
-CHECK-FORCE:
-DEPENDENCY = CHECK-FORCE
-$(TEST_LOGS): $(DEPENDENCY)
- @if test '$(DEPENDENCY)' = CHECK-FORCE; then \
- dst=$@; src=$${dst%.log}; \
- test -x "$$src" || src='$(srcdir)'/$$src; \
- exec $(MAKE) $(AM_MAKEFLAGS) DEPENDENCY="$$src" $@; \
- else \
- src='$(DEPENDENCY)'; \
- $(am__check_pre) "$$dir$$src" $(am__check_post); \
- fi
-endif
-
-#TEST_LOGS = $(TESTS:.test=.log)
-TEST_SUITE_LOG = test-suite.log
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
- @$(SH_E_WORKAROUND); \
- results=$$(for f in $(TEST_LOGS); do sed 1q $$f; done); \
- all=$$(echo "$$results" | wc -l | sed -e 's/^[ \t]*//'); \
- fail=$$(echo "$$results" | grep -c '^FAIL'); \
- pass=$$(echo "$$results" | grep -c '^PASS'); \
- skip=$$(echo "$$results" | grep -c '^SKIP'); \
- xfail=$$(echo "$$results" | grep -c '^XFAIL'); \
- xpass=$$(echo "$$results" | grep -c '^XPASS'); \
- failures=$$(expr $$fail + $$xpass); \
- case fail=$$fail:xpass=$$xpass:xfail=$$xfail in \
- fail=0:xpass=0:xfail=0) \
- msg="All $$all tests passed. "; \
- exit=true;; \
- fail=0:xpass=0:xfail=*) \
- msg="All $$all tests behaved as expected"; \
- msg="$$msg ($$xfail expected failures). "; \
- exit=true;; \
- fail=*:xpass=0:xfail=*) \
- msg="$$fail of $$all tests failed. "; \
- exit=false;; \
- fail=*:xpass=*:xfail=*) \
- msg="$$failures of $$all tests did not behave as expected"; \
- msg="$$msg ($$xpass unexpected passes). "; \
- exit=false;; \
- *) \
- echo >&2 "incorrect case"; exit 4;; \
- esac; \
- if test "$$skip" -ne 0; then \
- msg="$$msg($$skip tests were not run). "; \
- fi; \
- if test "$$failures" -ne 0; then \
- { \
- echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
- $(am__rst_title); \
- echo "$$msg"; \
- echo; \
- echo ".. contents:: :depth: 2"; \
- echo; \
- for f in $(TEST_LOGS); \
- do \
- case $$(sed 1q $$f) in \
- SKIP:*|PASS:*|XFAIL:*);; \
- *) echo; cat $$f;; \
- esac; \
- done; \
- } >$(TEST_SUITE_LOG).tmp; \
- mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
- msg="$${msg}See $(subdir)/$(TEST_SUITE_LOG). "; \
- if test -n "$(PACKAGE_BUGREPORT)"; then \
- msg="$${msg}Please report it to $(PACKAGE_BUGREPORT). "; \
- fi; \
- fi; \
- $(am__tty_colors); \
- if $$exit; then echo $$grn; else echo $$red; fi; \
- echo "$$msg" | $(am__text_box); \
- echo $$std; \
- test x"$$VERBOSE" = x || $$exit || cat $(TEST_SUITE_LOG); \
- $$exit
-
-# if test x"$$VERBOSE" != x && ! $exit; then
-
-# Run all the tests.
-check-TESTS:
- @if test -z '$(LAZY_TEST_SUITE)'; then \
- rm -f $(TEST_SUITE_LOG) $(TEST_LOGS); \
- fi
- @$(MAKE) $(TEST_SUITE_LOG)
-
-
-## -------------- ##
-## Produce HTML. ##
-## -------------- ##
-
-TEST_SUITE_HTML = $(TEST_SUITE_LOG:.log=.html)
-
-.log.html:
- @for r2h in $(RST2HTML) $$RST2HTML rst2html rst2html.py; \
- do \
- if ($$r2h --version) >/dev/null 2>&1; then \
- R2H=$$r2h; \
- fi; \
- done; \
- if test -z "$$R2H"; then \
- echo >&2 "cannot find rst2html, cannot create $@"; \
- exit 2; \
- fi; \
- $$R2H $< >$@.tmp
- @mv $@.tmp $@
-
-# Be sure to run check-TESTS first, and then to convert the result.
-# Beware of concurrent executions. And expect check-TESTS to fail.
-check-html:
- @if $(MAKE) $(AM_MAKEFLAGS) check-TESTS; then :; else \
- rv=$$?; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_HTML); \
- exit $$rv; \
- fi
-
-.PHONY: check-html
-
-
-## ------- ##
-## Clean. ##
-## ------- ##
-
-check-clean:
- rm -f $(CHECK_CLEANFILES) $(TEST_SUITE_LOG) $(TEST_SUITE_HTML) $(TEST_LOGS)
-.PHONY: check-clean
-clean-local: check-clean