From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Thomas Rast" <trast@student.ethz.ch>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH 6/6] t/README: A new section about test coverage
Date: Sat, 24 Jul 2010 20:51:03 +0000 [thread overview]
Message-ID: <1280004663-4887-7-git-send-email-avarab@gmail.com> (raw)
In-Reply-To: <1280004663-4887-1-git-send-email-avarab@gmail.com>
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>
---
t/README | 40 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/t/README b/t/README
index 0d1183c..718f35d 100644
--- a/t/README
+++ b/t/README
@@ -267,6 +267,9 @@ Do:
git merge hla &&
git push gh &&
test ...
+
+ - Check the test coverage for your tests. See the "Test coverage"
+ below.
Don't:
@@ -508,3 +511,40 @@ the purpose of t0000-basic.sh, which is to isolate that level of
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 out if your tests are really
+testing your code code. 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-report-untested-functions
+
+You can also generate a detailed per-file HTML report using the
+Devel::Cover module. To install it do:
+
+ # On Debian:
+ 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 coverage-report-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.
--
1.7.0.4
next prev parent reply other threads:[~2010-07-24 20:52 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-24 20:50 [PATCH 0/6] Detailed test coverage reports for Git Ævar Arnfjörð Bjarmason
2010-07-24 20:50 ` [PATCH 1/6] gitignore: Ignore files generated by "make coverage" Ævar Arnfjörð Bjarmason
2010-07-24 20:50 ` [PATCH 2/6] Makefile: Include subdirectories in "make cover" reports Ævar Arnfjörð Bjarmason
2010-07-24 22:37 ` Thomas Rast
2010-07-24 23:28 ` Ævar Arnfjörð Bjarmason
2010-07-24 23:41 ` Jonathan Nieder
2010-07-26 5:44 ` Junio C Hamano
2010-07-24 20:51 ` [PATCH 3/6] Makefile: Split out the untested functions target Ævar Arnfjörð Bjarmason
2010-07-24 23:02 ` Thomas Rast
2010-07-24 23:29 ` Ævar Arnfjörð Bjarmason
2010-07-24 20:51 ` [PATCH 4/6] Makefile: Add coverage-report-cover-db target Ævar Arnfjörð Bjarmason
2010-07-24 23:01 ` Thomas Rast
2010-07-24 23:28 ` Ævar Arnfjörð Bjarmason
2010-07-24 20:51 ` [PATCH 5/6] Makefile: Add coverage-report-cover-db-html target Ævar Arnfjörð Bjarmason
2010-07-24 20:51 ` Ævar Arnfjörð Bjarmason [this message]
2010-07-24 21:25 ` [PATCH 6/6] t/README: A new section about test coverage Jonathan Nieder
2010-07-24 21:29 ` Jonathan Nieder
2010-07-24 23:17 ` Ævar Arnfjörð Bjarmason
2010-07-24 23:32 ` Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1280004663-4887-7-git-send-email-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=trast@student.ethz.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.