[tor-commits] [tor/master] Add coverage-html makefile target

nickm at torproject.org nickm at torproject.org
Wed Jul 16 10:06:07 UTC 2014


commit 8fa845548bc2883c6b1335b4815fa945964f517f
Author: Kevin Murray <spam at kdmurray.id.au>
Date:   Wed Jul 9 18:37:32 2014 +1000

    Add coverage-html makefile target
    
    This uses lcov to generate a nice HTML report of test code coverage,
    including branch coverage.
    
    Signed-off-by: Kevin Murray <spam at kdmurray.id.au>
---
 Makefile.am |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/Makefile.am b/Makefile.am
index 6eceb76..ab0caf0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -74,6 +74,17 @@ test-network: all
 reset-gcov:
 	rm -f src/*/*.gcda
 
+HTML_COVER_DIR=./coverage_html
+coverage-html: all
+	test -d $(HTML_COVER_DIR) && rm -rf $(HTML_COVER_DIR) || true
+	test -e `which lcov` || (echo "lcov must be installed. See <http://ltp.sourceforge.net/coverage/lcov.php>." && false)
+	mkdir -p $(HTML_COVER_DIR)
+	lcov --rc lcov_branch_coverage=1 --directory ./src --zerocounters
+	./src/test/test
+	lcov --capture --rc lcov_branch_coverage=1 --no-external --directory . --output-file "$(HTML_COVER_DIR)/lcov.tmp"
+	lcov --remove "$(HTML_COVER_DIR)/lcov.tmp" --rc lcov_branch_coverage=1 'test/*' 'ext/tinytest*' '/usr/*' --output-file "$(HTML_COVER_DIR)/lcov.info"
+	genhtml --branch-coverage -o "$(HTML_COVER_DIR)" "$(HTML_COVER_DIR)/lcov.info"
+
 # Avoid strlcpy.c, strlcat.c, aes.c, OpenBSD_malloc_Linux.c, sha256.c,
 # eventdns.[hc], tinytest*.[ch]
 check-spaces:





More information about the tor-commits mailing list