X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2FMakefile;h=84942848feb7f7d1e347cb321e05bc3a5e355b2c;hp=5bd3eee2c10d5274d2dc1eca91863393b439c8b9;hb=fd60a31ac3b7308570eee56f1e3c8e5ef0ffafe1;hpb=470cf3f63b4d284dbaaef8da936e716438063ac1 diff --git a/tests/Makefile b/tests/Makefile index 5bd3eee2..84942848 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: +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 $@