X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2FMakefile;h=44b745849153b22b13041666efa5a4aec168ea2a;hp=5bd3eee2c10d5274d2dc1eca91863393b439c8b9;hb=d7e20af364775278c1f7f2398c8debdb0af8fb40;hpb=f773b1ed2796196e0fa801886fce493544c38fe0 diff --git a/tests/Makefile b/tests/Makefile index 5bd3eee2..44b74584 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,5 +1,7 @@ # 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)) @@ -10,5 +12,16 @@ all: $(foreach t,$(TESTNAMES),tests/tmp/$t.ok) tests/tmp: mkdir -p $@ + tests/tmp/%.ok: tests/tmp +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