X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2FMakefile;h=88bc0a061c7216655ced9ac8996fa13a486bdba5;hp=157b487bcd988abacdc1ed23dc04ae68954519c3;hb=7bed50ebbcdf503896de776c0c70656b3dfeea7e;hpb=ada48ca013e77d7e821d326db40bc1a59ba639ea diff --git a/tests/Makefile b/tests/Makefile index 157b487b..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/list-tests) +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 $@