From 28d836c81586e6b49131c69bbc5228a41667f1da Mon Sep 17 00:00:00 2001 From: Michael J Gruber Date: Thu, 14 Oct 2010 10:53:36 +0200 Subject: [PATCH] test: allow running the tests under "prove" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit You can run "make DEFAULT_TEST_TARGET=prove test" to run the test under "prove" (or $(PROVE) if set). The output is a bit easier to read when running many tests in parallel. Signed-off-by: Michael J Gruber Liked-by: Ævar Arnfjörð Bjarmason Liked-by: Jeff King Signed-off-by: Junio C Hamano --- t/Makefile | 10 +++++++++- t/README | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/t/Makefile b/t/Makefile index c7baefb7ea..2b4d4ac904 100644 --- a/t/Makefile +++ b/t/Makefile @@ -11,6 +11,8 @@ SHELL_PATH ?= $(SHELL) PERL_PATH ?= /usr/bin/perl TAR ?= $(TAR) RM ?= rm -f +PROVE ?= prove +DEFAULT_TEST_TARGET ?= test # Shell quote; SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) @@ -18,9 +20,15 @@ SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh) TSVN = $(wildcard t91[0-9][0-9]-*.sh) -all: pre-clean +all: $(DEFAULT_TEST_TARGET) + +test: pre-clean $(MAKE) aggregate-results-and-cleanup +prove: pre-clean + @echo "*** prove ***"; GIT_CONFIG=.git/config $(PROVE) --exec '$(SHELL_PATH_SQ)' $(GIT_PROVE_OPTS) $(T) :: $(GIT_TEST_OPTS) + $(MAKE) clean + $(T): @echo "*** $@ ***"; GIT_CONFIG=.git/config '$(SHELL_PATH_SQ)' $@ $(GIT_TEST_OPTS) diff --git a/t/README b/t/README index a1eb7c8720..c548bf1b7e 100644 --- a/t/README +++ b/t/README @@ -50,6 +50,12 @@ prove and other harnesses come with a lot of useful options. The # Repeat until no more failures $ prove -j 15 --state=failed,save ./t[0-9]*.sh +You can give DEFAULT_TEST_TARGET=prove on the make command (or define it +in config.mak) to cause "make test" to run tests under prove. +GIT_PROVE_OPTS can be used to pass additional options, e.g. + + $ make DEFAULT_TEST_TARGET=prove GIT_PROVE_OPTS='--timer --jobs 16' test + You can also run each test individually from command line, like this: $ sh ./t3010-ls-files-killed-modified.sh