summaryrefslogtreecommitdiff
path: root/top
diff options
context:
space:
mode:
authorSimon Josefsson <simon@josefsson.org>2008-10-28 22:53:47 +0100
committerSimon Josefsson <simon@josefsson.org>2008-10-28 22:53:47 +0100
commitcdccece5811c28f3ac95e1ae226967de25a8c387 (patch)
treec7027a4dae1dc11ab8b4e3a270865e6a2b3b4a9e /top
parentfc0ab1da1495a25fe2f46bc896a4ceac7ac5d7f3 (diff)
downloadgnulib-cdccece5811c28f3ac95e1ae226967de25a8c387.tar.gz
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Diffstat (limited to 'top')
-rw-r--r--top/maint.mk24
1 files changed, 24 insertions, 0 deletions
diff --git a/top/maint.mk b/top/maint.mk
index 24b76503d4..2eea98d5d4 100644
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -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)/