# usage: tests/using-intree make -f tests/Makefile # 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" 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