changeset 10738:af888e12d10d

top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
author Simon Josefsson <simon@josefsson.org>
date Tue, 28 Oct 2008 22:53:47 +0100
parents 0072e70cab70
children 6d7e8393c115
files ChangeLog top/maint.mk
diffstat 2 files changed, 28 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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):
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -105,6 +105,30 @@
 
 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)/