echo "Use: ./configure --with-lcov" ; \
fi
- perform-coverage: check
+ perform-coverage:
+ find src -mindepth 2 -maxdepth 2 -type d | xargs -I{} bash -c "cd {}; make check || true"
report-cpp-coverage:
+ if HAVE_BOTAN
+ BOTAN_PATH=botan/\*
+ else
+ BOTAN_PATH=
+ endif
+ if HAVE_OPENSSL
+ OPENSSL_PATH=openssl/\*
+ else
+ OPENSSL_PATH=
+ endif
@if [ $(USE_LCOV) = yes ] ; then \
- $(LCOV) --capture --directory . --output-file all.info ; \
+ $(LCOV) --capture --directory . \
+ --ignore-errors gcov,source,graph \
+ --output-file all.info; \
$(LCOV) --remove all.info \
- c++/4.4\*/\* \
- c++/4.4\*/backward/\* \
- c++/4.4\*/bits/\* \
- c++/4.4\*/ext/\* \
- c++/4.4\*/\*-\*/bits/\* \
+ c++/* \
boost/\* \
- ext/coroutine/\* \
+if HAVE_BOTAN
+ botan/\* \
+endif
gtest/\* \
include/\* \
+ lib/\eval/\* \
log4cplus/\* \
- if HAVE_OPENSSL
- openssl/\* \
- endif
unittests/\* \
- \*_unittests.cc \
- \*_unittest.cc \
- \*_unittests.h \
- --output report.info ; \
- sed -e "s|$(abs_top_srcdir)|$(abs_top_builddir)|g" < report.info > report.info.2 ; \
- $(GENHTML) --legend -o $(abs_top_builddir)/coverage-cpp-html report.info.2 ; \
- echo "Generated C++ Code Coverage report in HTML at $(abs_top_builddir)/coverage-cpp-html" ; \
+ tests/\* \
+ testutils/\* \
+ valgrind/\* \
+ $(BOTAN_PATH) \
+ $(OPENSSL_PATH) \
+ --ignore-errors gcov,source,graph \
+ --output report.info; \
+ sed --in-place --expression "s|$(abs_top_srcdir)|$(abs_top_builddir)|g" report.info; \
+ "$(GENHTML)" --frames --show-details --title 'Kea code coverage report' --legend --function-coverage --ignore-errors source --demangle-cpp --output "$(OVERALL_COVERAGE_DIR)" report.info; \
+ printf "Generated C++ code coverage report in HTML at %s.\n" "$(OVERALL_COVERAGE_DIR)"; \
else \
echo "C++ code coverage not enabled at configuration time." ; \
echo "Use: ./configure --with-lcov" ; \