X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2FMakefile;h=88bc0a061c7216655ced9ac8996fa13a486bdba5;hp=5bd3eee2c10d5274d2dc1eca91863393b439c8b9;hb=e5bae1c8621bb50925404c3ba70c83b037a5b74f;hpb=6dbc82e06ae1e6840dfa2ef2cc6b496561e6f333 diff --git a/tests/Makefile b/tests/Makefile index 5bd3eee2..88bc0a06 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,14 +1,24 @@ # usage: tests/using-intree make -f tests/Makefile -# (optionally setting TESTSCRIPTS='tests/tests/foo tests/tests/bar') +# optionally setting +# TESTSCRIPTS='tests/tests/foo tests/tests/bar') +# DGIT_TEST_RETRY_COUNT= TESTSCRIPTS ?= $(shell tests/enumerate-tests) TESTNAMES := $(notdir $(TESTSCRIPTS)) all: $(foreach t,$(TESTNAMES),tests/tmp/$t.ok) - @echo "ALL PASSED" + @echo "ALL PASSED$${DGIT_TESTS_PROGRESSIVE+ AT SOME POINT}" -tests/tmp: - mkdir -p $@ - -tests/tmp/%.ok: tests/tmp +tests/tmp/%.ok: tests/tests/% +ifeq ($(DGIT_TEST_RETRY_COUNT),) tests/tests/$* >tests/tmp/$*.log 2>&1 +else + @for retry in $$( seq 1 $(DGIT_TEST_RETRY_COUNT) ); do \ + echo "[$$retry] $*"; \ + tests/tests/$* >tests/tmp/$*.$$retry.log 2>&1; \ + rc=$$?; \ + if [ $$rc = 0 ]; then exit 0; fi; \ + echo >&2 "[$$retry] $* TEST FAILED $$rc"; \ + done; exit $$rc +endif + @touch $@