diff options
author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2010-07-25 19:52:44 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-08-18 12:42:37 -0700 |
commit | 0c357544b0d4415c464fb8b35593b21db1d1f7f7 (patch) | |
tree | c49a91479b472b393cc341cefba47e52306b130b /t | |
parent | Makefile: Add cover_db_html target (diff) | |
download | tgif-0c357544b0d4415c464fb8b35593b21db1d1f7f7.tar.xz |
t/README: A new section about test coverage
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>
Diffstat (limited to 't')
-rw-r--r-- | t/README | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -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. @@ -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 ------------- |