Re: [PATCH 1/6] Make test-lib.sh emit valid TAP format
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- May 7, 2010, 20:17 UTC
- Message-ID
- <m37hnffow2.fsf@localhost.localdomain>
- In-Reply-To
- <1273261025-31523-1-git-send-email-avarab@gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 17 quoted lines
> 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