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>,
"Jonathan Nieder" <jrnieder@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v2 0/7] Detailed test coverage reports for Git
Date: Sun, 25 Jul 2010 14:40:54 +0000 [thread overview]
Message-ID: <1280068861-17701-1-git-send-email-avarab@gmail.com> (raw)
This is v2 of the test coverage series. It addresses all the points
that were raised for v1. Here's the diffstat against v1:
.gitignore | 15 +++------------
Makefile | 19 +++++++++----------
t/README | 21 ++++++++++++++++-----
3 files changed, 28 insertions(+), 27 deletions(-)
And the diff since v2:
diff --git a/.gitignore b/.gitignore
index e02f1f9..baed247 100644
--- a/.gitignore
+++ b/.gitignore
@@ -207,12 +207,3 @@
-/*.gcda
-/*.gcno
-/*.gcov
-/builtin/*.gcda
-/builtin/*.gcno
-/builtin/*.gcov
-/xdiff/*.gcda
-/xdiff/*.gcno
-/xdiff/*.gcov
-/compat/*.gcda
-/compat/*.gcno
-/compat/*.gcov
+*.gcda
+*.gcno
+*.gcov
diff --git a/Makefile b/Makefile
index c35c348..b6975aa 100644
--- a/Makefile
+++ b/Makefile
@@ -2282,0 +2283 @@ coverage:
+object_dirs := $(sort $(dir $(OBJECTS)))
@@ -2284,4 +2285,3 @@ coverage-clean:
- $(RM) *.gcov *.gcda *.gcno
- $(RM) builtin/*.gcov
- $(RM) builtin/*.gcda
- $(RM) builtin/*.gcno
+ $(RM) $(addsuffix *.gcov,$(object_dirs))
+ $(RM) $(addsuffix *.gcda,$(object_dirs))
+ $(RM) $(addsuffix *.gcno,$(object_dirs))
@@ -2298,4 +2298,3 @@ coverage-report:
- gcov -b *.c
- gcov -b -o builtin builtin/*.c
- gcov -b -o xdiff xdiff/*.c
- gcov -b -o compat compat/*.c
+ for dir in $(object_dirs); do \
+ gcov --preserve-paths --branch-probabilities --all-blocks --object-directory=$$dir $$dir*.c; \
+ done
@@ -2303 +2302 @@ coverage-report:
-coverage-report-untested-functions:
+coverage-untested-functions: coverage-report
@@ -2308 +2307 @@ coverage-report-untested-functions:
-coverage-report-cover-db:
+coverage-report-cover-db: coverage-report
diff --git a/t/README b/t/README
index 718f35d..400e2da 100644
--- a/t/README
+++ b/t/README
@@ -273,0 +274,9 @@ Do:
+ Don't blindly follow test coverage metrics, they're a good way to
+ spot if you've missed something. If a new function you added
+ doesn't have any coverage you're probably doing something wrong,
+ but having 100% coverage doesn't necessarily mean that you tested
+ everything.
+
+ Tests that are likely to smoke out future regressions are better
+ than tests that just inflate the coverage metrics.
+
@@ -518,3 +527,5 @@ 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):
+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):
@@ -532 +543 @@ functions:
- make coverage-report-untested-functions
+ make coverage-untested-functions
@@ -537 +548 @@ Devel::Cover module. To install it do:
- # On Debian:
+ # On Debian or Ubuntu:
I also rewrote some of the commit messages.
Ævar Arnfjörð Bjarmason (7):
gitignore: Ignore files generated by "make coverage"
Makefile: Include subdirectories in "make cover" reports
Makefile: Split out the untested functions target
Makefile: Add coverage-report-cover-db target
Makefile: Add coverage-report-cover-db-html target
t/README: A new section about test coverage
t/README: Add a note about the dangers of coverage chasing
.gitignore | 6 ++++++
Makefile | 17 +++++++++++++++--
t/README | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 72 insertions(+), 2 deletions(-)
next reply other threads:[~2010-07-25 14:41 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-25 14:40 Ævar Arnfjörð Bjarmason [this message]
2010-07-25 14:40 ` [PATCH v2 1/7] gitignore: Ignore files generated by "make coverage" Ævar Arnfjörð Bjarmason
2010-07-25 16:37 ` Jonathan Nieder
2010-07-25 14:40 ` [PATCH v2 2/7] Makefile: Include subdirectories in "make cover" reports Ævar Arnfjörð Bjarmason
2010-07-25 17:02 ` Jonathan Nieder
2010-07-25 14:40 ` [PATCH v2 3/7] Makefile: Split out the untested functions target Ævar Arnfjörð Bjarmason
2010-07-25 14:40 ` [PATCH v2 4/7] Makefile: Add coverage-report-cover-db target Ævar Arnfjörð Bjarmason
2010-07-25 17:13 ` Jonathan Nieder
2010-07-25 14:40 ` [PATCH v2 5/7] Makefile: Add coverage-report-cover-db-html target Ævar Arnfjörð Bjarmason
2010-07-25 17:17 ` Jonathan Nieder
2010-07-25 14:41 ` [PATCH v2 6/7] t/README: A new section about test coverage Ævar Arnfjörð Bjarmason
2010-07-25 14:41 ` [PATCH v2 7/7] t/README: Add a note about the dangers of coverage chasing Ævar Arnfjörð Bjarmason
2010-07-25 16:05 ` Jonathan Nieder
2010-07-25 19:27 ` Ævar Arnfjörð Bjarmason
2010-07-25 17:20 ` [PATCH v2 0/7] Detailed test coverage reports for Git Jonathan Nieder
2010-07-25 17:46 ` Ævar Arnfjörð Bjarmason
2010-07-25 17:48 ` 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=1280068861-17701-1-git-send-email-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).