diff options
| author | Charles Kerr <charles.kerr@canonical.com> | 2012-04-03 21:33:03 -0500 |
|---|---|---|
| committer | Charles Kerr <charles.kerr@canonical.com> | 2012-04-03 21:33:03 -0500 |
| commit | 72c1f1c6b9f169dff5f70be3c7fcaac570254508 (patch) | |
| tree | b2fe38f07b9d0acc16636d9e12a82ee93bd41b83 /Makefile.am.coverage | |
| parent | 5c3834907b18b2c9230d39767ab9092e80c5c849 (diff) | |
| parent | c54e02d80857bd08071e2311f456ef992a9d7a01 (diff) | |
| download | libdbusmenu-72c1f1c6b9f169dff5f70be3c7fcaac570254508.tar.gz libdbusmenu-72c1f1c6b9f169dff5f70be3c7fcaac570254508.tar.bz2 libdbusmenu-72c1f1c6b9f169dff5f70be3c7fcaac570254508.zip | |
Merge lp:~allanlesage/dbusmenu/TDD to add gcov targets to autotools build for code-coverage reporting. For more information, see this blog post: http://qualityhour.wordpress.com/2012/01/29/test-coverage-tutorial-for-cc-autotools-projects/ .
To compile with coverage tooling, ./autogen.sh --enable-gcov, then make coverage-html . Note that you'll need lcov to autoconf. Also note that you'll get an error on make if you have no tests, as there are no coverage artifacts to generate the html report. For review, please pay special attention to flags added in the project's makefiles.
Diffstat (limited to 'Makefile.am.coverage')
| -rw-r--r-- | Makefile.am.coverage | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Makefile.am.coverage b/Makefile.am.coverage new file mode 100644 index 0000000..fb97747 --- /dev/null +++ b/Makefile.am.coverage @@ -0,0 +1,48 @@ + +# Coverage targets + +.PHONY: clean-gcno clean-gcda \ + coverage-html generate-coverage-html clean-coverage-html \ + coverage-gcovr generate-coverage-gcovr clean-coverage-gcovr + +clean-local: clean-gcno clean-coverage-html clean-coverage-gcovr + +if HAVE_GCOV + +clean-gcno: + @echo Removing old coverage instrumentation + -find -name '*.gcno' -print | xargs -r rm + +clean-gcda: + @echo Removing old coverage results + -find -name '*.gcda' -print | xargs -r rm + +coverage-html: clean-gcda + -$(MAKE) $(AM_MAKEFLAGS) -k check + $(MAKE) $(AM_MAKEFLAGS) generate-coverage-html + +generate-coverage-html: + @echo Collecting coverage data + $(LCOV) --directory $(top_builddir) --capture --output-file coverage.info --no-checksum --compat-libtool + LANG=C $(GENHTML) --prefix $(top_builddir) --output-directory coveragereport --title "Code Coverage" --legend --show-details coverage.info + +clean-coverage-html: clean-gcda + -$(LCOV) --directory $(top_builddir) -z + -rm -rf coverage.info coveragereport + +if HAVE_GCOVR + +coverage-gcovr: clean-gcda + -$(MAKE) $(AM_MAKEFLAGS) -k check + $(MAKE) $(AM_MAKEFLAGS) generate-coverage-gcovr + +generate-coverage-gcovr: + @echo Generating coverage GCOVR report + $(GCOVR) -x -r $(top_builddir) -o $(top_builddir)/coverage.xml + +clean-coverage-gcovr: clean-gcda + -rm -rf $(top_builddir)/coverage.xml + +endif # HAVE_GCOVR + +endif # HAVE_GCOV |
