top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
authorSimon Josefsson <simon@josefsson.org>
Tue, 28 Oct 2008 21:53:47 +0000 (22:53 +0100)
committerSimon Josefsson <simon@josefsson.org>
Tue, 28 Oct 2008 21:53:47 +0000 (22:53 +0100)
ChangeLog
top/maint.mk

index a35a54bdd2920c00ce99dfebfb97f6af980973b2..55e7f7edd91c78a7d345985d0deca2392d7c2506 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-10-28  Simon Josefsson  <simon@josefsson.org>
+
+       * top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
+
 2008-10-28  Simon Josefsson  <simon@josefsson.org>
 
        * MODULES.html.sh (Support for systems lacking POSIX:2001):
index 24b76503d4afe825ff0453766048184d92189641..2eea98d5d460195324ade14854b0b7d431c89f63 100644 (file)
@@ -105,6 +105,30 @@ syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(ME))
 
 syntax-check: $(syntax-check-rules)
 
+# Code Coverage
+
+init-coverage:
+       make clean
+       lcov --directory . --zerocounters
+
+COVERAGE_CCOPTS ?= "-g -fprofile-arcs -ftest-coverage"
+COVERAGE_OUT ?= doc/coverage
+
+build-coverage:
+       make CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS)
+       make CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check
+       mkdir -p $(COVERAGE_OUT)
+       lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \
+               --capture
+
+gen-coverage:
+       genhtml --output-directory $(COVERAGE_OUT) \
+               $(COVERAGE_OUT)/$(PACKAGE).info \
+               --highlight --frames --legend \
+               --title "$(PACKAGE_NAME)"
+
+coverage: init-coverage build-coverage gen-coverage
+
 # Update gettext files.
 PACKAGE ?= $(shell basename $(PWD))
 POURL = http://translationproject.org/latest/$(PACKAGE)/