Subject: Re: [PATCH 1/6] Make test-lib.sh emit valid TAP format

From: Jakub Narebski <[email-masked]>
Date: Fri, 07 May 2010 13:17:49 -0700 (PDT)

Ævar Arnfjörð Bjarmason  <[email-masked]> writes:

> TAP, the the Test Anything Protocol, is a simple text-based interface
> between testing modules in a test harness. test-lib.sh's output was
> already very close to being valid TAP. This change brings it all the
> way there.
> 
> The advantage of using TAP is that any program that reads the format
> (a "test harness") can run the tests. The most popular of these is the
> prove(1) utility that comes with Perl. It can run tests in parallel,
> display colored output, format the output to console, file, HTML etc.,
> and much more.
> 
> On my quad Xeon server running the test suite with `make test` takes
> 21 minutes. Running it with `prove -j 15 ./t[0-9]*.sh` takes just over
> 5 minutes.
> 
> With parallel tests the whole test suite doesn't have to stall because
> tests like t3404-rebase-interactive.sh take a long time.

I would have thought that it would be better for git test suite to
enable TAP output with --tap switch.  On the other hand changing
output to TAP, replacing old format, would be less code to maintain.

I am not sure if testing with 'prove' and TAP output is compatibile
with all current git test suite options, i.e. --debug, --tee,
--verbose and --immediate, and with GIT_SKIP_TESTS environmental
variable.  Also valuable way of checking where the error occurs in the
test, namely 'sh -x ./tXXXX-test.sh' would not work, I think, with
'prove'.

Note also that having Perl (and 'prove') installed is not requirement
for git runnig, and I think it should not be requirement for git
development.

P.S. I think that such series would be better with the cover letter.
-- 
Jakub Narebski
Poland
ShadeHawk on #git