Skip to content

Commit

Permalink
t/README: A new section about test coverage
Browse files Browse the repository at this point in the history
Document how test writers can generate coverage reports, to ensure
that their tests are really testing the code they think they're
testing.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Ævar Arnfjörð Bjarmason authored and Junio C Hamano committed Aug 18, 2010
1 parent df07acf commit 0c35754
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions t/README
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,9 @@ Do:
git push gh &&
test ...

- Check the test coverage for your tests. See the "Test coverage"
below.

Don't:

- exit() within a <script> part.
Expand Down Expand Up @@ -555,6 +558,45 @@ validation in one place. Your test also ends up needing
updating when such a change to the internal happens, so do _not_
do it and leave the low level of validation to t0000-basic.sh.

Test coverage
-------------

You can use the coverage tests to find code paths that are not being
used or properly exercised yet.

To do that, run the coverage target at the top-level (not in the t/
directory):

make coverage

That'll compile Git with GCC's coverage arguments, and generate a test
report with gcov after the tests finish. Running the coverage tests
can take a while, since running the tests in parallel is incompatible
with GCC's coverage mode.

After the tests have run you can generate a list of untested
functions:

make coverage-untested-functions

You can also generate a detailed per-file HTML report using the
Devel::Cover module. To install it do:

# On Debian or Ubuntu:
sudo aptitude install libdevel-cover-perl

# From the CPAN with cpanminus
curl -L http://cpanmin.us | perl - --sudo --self-upgrade
cpanm --sudo Devel::Cover

Then, at the top-level:

make cover_db_html

That'll generate a detailed cover report in the "cover_db_html"
directory, which you can then copy to a webserver, or inspect locally
in a browser.

Smoke testing
-------------

Expand Down

0 comments on commit 0c35754

Please sign in to comment.