X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2FMakefile;h=e6ce153bae615795e3dacc51ceafd1b324ab1353;hp=157b487bcd988abacdc1ed23dc04ae68954519c3;hb=63911b5d576e7250c132d117c53e66aaf34b7f47;hpb=ada48ca013e77d7e821d326db40bc1a59ba639ea diff --git a/tests/Makefile b/tests/Makefile index 157b487b..e6ce153b 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,7 +1,9 @@ # 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/list-tests) +TESTSCRIPTS ?= $(shell tests/enumerate-tests) TESTNAMES := $(notdir $(TESTSCRIPTS)) all: $(foreach t,$(TESTNAMES),tests/tmp/$t.ok) @@ -10,5 +12,20 @@ all: $(foreach t,$(TESTNAMES),tests/tmp/$t.ok) tests/tmp: mkdir -p $@ +ifeq ($(DGIT_TEST_RETRY_COUNT),) + tests/tmp/%.ok: tests/tmp tests/tests/$* >tests/tmp/$*.log 2>&1 + +else + +tests/tmp/%.ok: tests/tmp + @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