1
2# Coverage targets
3
4.PHONY: clean-gcno clean-gcda \
5	coverage-html generate-coverage-html clean-coverage-html \
6	coverage-gcovr generate-coverage-gcovr clean-coverage-gcovr
7
8clean-local: clean-gcno clean-coverage-html clean-coverage-gcovr
9
10clean-gcno:
11	@echo Removing old coverage instrumentation
12	-find -name '*.gcno' -print | xargs -r rm
13
14clean-gcda:
15	@echo Removing old coverage results
16	-find -name '*.gcda' -print | xargs -r rm
17
18if HAVE_GCOV
19coverage-html:
20	-$(MAKE) $(AM_MAKEFLAGS) -k check
21	$(MAKE) $(AM_MAKEFLAGS) generate-coverage-html
22
23generate-coverage-html:
24	@echo Collecting coverage data
25	$(LCOV) --directory $(top_builddir) --capture --output-file coverage.info --no-checksum --compat-libtool
26	LANG=C $(GENHTML) --prefix $(top_builddir) --output-directory coveragereport --title "Code Coverage" --legend --show-details coverage.info
27
28clean-coverage-html: clean-gcda
29	-$(LCOV) --directory $(top_builddir) -z
30	-rm -rf coverage.info coveragereport
31
32if HAVE_GCOVR
33
34coverage-gcovr:
35	-$(MAKE) $(AM_MAKEFLAGS) -k check
36	$(MAKE) $(AM_MAKEFLAGS) generate-coverage-gcovr
37
38coverage-xml: coverage-gcovr
39
40generate-coverage-gcovr:
41	@echo Generating coverage GCOVR report
42	$(GCOVR) --xml -r $(top_builddir) -e "tests.*" -o $(top_builddir)/coverage.xml
43
44endif # HAVE_GCOVR
45
46endif # HAVE_GCOV
47
48clean-coverage-gcovr: clean-gcda
49	-rm -f $(top_builddir)/coverage.xml
50
51clean-coverage-xml: clean-coverage-gcovr
52