[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Generating code coverage reports
From: |
Simon Josefsson |
Subject: |
Generating code coverage reports |
Date: |
Tue, 28 Oct 2008 11:19:33 +0100 |
User-agent: |
Gnus/5.110011 (No Gnus v0.11) Emacs/22.2 (gnu/linux) |
FYI,
I was inspired by gnupdf's code coverage reports:
http://www.gnupdf.org/prmgt/coverage/
So I looked into how to integrate a script to generate them for some of
my projects. I couldn't think of how to implement this as a gnulib
module, but I wrote rules for maintainer-makefile's 'cfg.mk'.
Example outputs:
http://www.gnu.org/software/libidn/coverage/
http://www.gnu.org/software/gsasl/coverage/
http://www.gnu.org/software/gnutls/coverage/
The rules I use are below. After adding them, type 'make coverage' to
generate coverage reports into doc/coverage/.
It would be useful to generate similar reports for gnulib itself...
/Simon
# Code Coverage
init-coverage:
make clean
lcov --directory . --zerocounters
COVERAGE_OPTS="-g -fprofile-arcs -ftest-coverage"
build-coverage:
make CFLAGS=$(COVERAGE_OPTS) CXXFLAGS=$(COVERAGE_OPTS) VALGRIND=
make CFLAGS=$(COVERAGE_OPTS) CXXFLAGS=$(COVERAGE_OPTS) VALGRIND= check
mkdir -p doc/coverage
lcov --directory . --output-file doc/coverage/$(PACKAGE).info --capture
gen-coverage:
genhtml --output-directory doc/coverage doc/coverage/$(PACKAGE).info \
--highlight --frames --legend --title "$(PACKAGE_NAME)"
coverage: init-coverage build-coverage gen-coverage
web-coverage:
rm -fv `find $(htmldir)/coverage -type f | grep -v CVS`
cp -rv doc/coverage/* $(htmldir)/coverage/
upload-web-coverage:
cd $(htmldir) && \
cvs commit -m "Update." coverage