From: Ævar Arnfjörð Bjarmason Date: Thu, 14 Oct 2010 09:05:30 GMT Subject: Re: [RFC PATCH] Makefile: new prove target for running the tests with TAP Message-ID: In-Reply-To: <5c46df95f93b56aa2fce56c7efe7b2be80642c8b.1287045908.git.git@drmicha.warpmail.net> On Thu, Oct 14, 2010 at 08:53, Michael J Gruber wrote: > Introduce a new make target "prove" which runs the tests via "prove" (or > $(PROVE) if set) so that one does not have to cd around any more. One > can simply use "make prove" for "make test" or go wild as in: > > GIT_SKIP_TESTS='t[0-4]??? t91?? t9200.8' GIT_PROVE_OPTS="-j9 -v" GIT_TEST_OPTS="--verbose --debug" make prove > > Signed-off-by: Michael J Gruber > --- > RFC also because of lack of doc, and: > > Currently, one can do > > make -C t t6010-merge-base.sh > > or even > > make -C t t601* > > which is cool but undocumented. If we want this with prove it requires more > effort, or shoving prove into the $(T) target rule which is doable, of course. > I'm just wondering whether it's accepted to introduce a specific rule for prove > at all. I like the rationale behind this, but fwiw. I already had a patch that was ejected for this: http://article.gmane.org/gmane.comp.version-control.git/146566 Quoth Junio: "Besides, "make -j15 test" from the toplevel already runs the tests in parallel. I don't see much point in this change." But I'd like to have it so that I could `make && make test_harness` and get readable test output. But we should probably be using t/harness to run them, not prove(1). Then we would make the test_harness target respect the HARNESS_OPTIONS variable, which I e.g. have set to HARNESS_OPTIONS=j9 on my system. > >  Makefile   |    3 +++ >  t/Makefile |    5 +++++ >  2 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/Makefile b/Makefile > index 1f1ce04..3478515 100644 > --- a/Makefile > +++ b/Makefile > @@ -2046,6 +2046,9 @@ export NO_SVN_TESTS >  test: all >        $(MAKE) -C t/ all > > +prove: all > +       $(MAKE) -C t/ prove > + >  test-ctype$X: ctype.o > >  test-date$X: date.o ctype.o > diff --git a/t/Makefile b/t/Makefile > index c7baefb..e4661c0 100644 > --- a/t/Makefile > +++ b/t/Makefile > @@ -11,6 +11,7 @@ SHELL_PATH ?= $(SHELL) >  PERL_PATH ?= /usr/bin/perl >  TAR ?= $(TAR) >  RM ?= rm -f > +PROVE ?= prove > >  # Shell quote; >  SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) > @@ -21,6 +22,10 @@ TSVN = $(wildcard t91[0-9][0-9]-*.sh) >  all: 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) > > -- > 1.7.3.1.184.g5b1fd > >