I've been meaning to do this for a while, since recheck is quite convenient. I still can't find a good rationale/way to add it to user Makefile.in files (it's useless without parallel-tests, but when we process toplevel Makefile.am, we cannot know whether a subdir uses it).
Anyway, this is useful for Automake itself, and documenting a few more tricks in tests/README can only be good, too. Cheers, Ralf Add convenience `recheck' target to our toplevel Makefile.am. * Makefile.am (recheck): New convenience target. * tests/README: Give examples for running only failed or outdated or otherwise selected tests. diff --git a/Makefile.am b/Makefile.am index d082a3a..66d8315 100644 --- a/Makefile.am +++ b/Makefile.am @@ -94,6 +94,23 @@ automake aclocal: Makefile INSTALL: lib/INSTALL cp $(srcdir)/lib/INSTALL $@ +## recheck: convenience proxy target for the test suites. +TEST_SUBDIRS = lib/Automake/tests tests + +.PHONY: recheck +recheck: + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + for subdir in $(TEST_SUBDIRS); do \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@) || eval $$failcom; \ + done; \ + test -z "$$fail" + ################################################################ ## ## Everything past here is useful to the maintainer, but probably not diff --git a/tests/README b/tests/README index 4068ad6..d494b10 100644 --- a/tests/README +++ b/tests/README @@ -5,15 +5,33 @@ User interface ============== -Running all tests +Running the tests ----------------- - make check + To run all tests: + + make -k check You can use `-jN' for faster completion (it even helps on a uniprocessor system, due to unavoidable sleep delays, as noted below). + To rerun only failed tests: + + make -k recheck + + To run only tests that are newer than their last results: + + make -k check RECHECK_LOGS= + + To run only selected tests: + + make -k check TESTS="foo.test bar.test" + + For non-GNU make, you might have to use this instead: + + env TESTS="foo.test bar.test" make -e -k check + Interpretation --------------