summaryrefslogtreecommitdiffstats
path: root/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am56
1 files changed, 33 insertions, 23 deletions
diff --git a/Makefile.am b/Makefile.am
index 2e34d16daf..bbdaa74ce5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -10,6 +10,7 @@ GENHTML=@GENHTML@
DISTCHECK_GTEST_CONFIGURE_FLAG=@DISTCHECK_GTEST_CONFIGURE_FLAG@
DISTCHECK_CRYPTO_CONFIGURE_FLAG=@DISTCHECK_CRYPTO_CONFIGURE_FLAG@
DISTCHECK_BOOST_CONFIGURE_FLAG=@DISTCHECK_BOOST_CONFIGURE_FLAG@
+OVERALL_COVERAGE_DIR=$(abs_top_builddir)/coverage-cpp-html
DISTCHECK_LOG4CPLUS_CONFIGURE_FLAG=@DISTCHECK_LOG4CPLUS_CONFIGURE_FLAG@
DISTCHECK_KEA_SHELL_CONFIGURE_FLAG=@DISTCHECK_KEA_SHELL_CONFIGURE_FLAG@
@@ -56,48 +57,57 @@ endif
clean-cpp-coverage:
@if [ $(USE_LCOV) = yes ] ; then \
$(LCOV) --directory . --zerocounters; \
- rm -rf $(abs_top_srcdir)/coverage-cpp-html/; \
+ rm -rf $(OVERALL_COVERAGE_DIR); \
else \
echo "C++ code coverage not enabled at configuration time." ; \
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/\* \
-if HAVE_BOTAN
- botan/\* \
-endif
ext/coroutine/\* \
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" ; \
fi
# for c++ test coverage
+.NOTPARALLEL: coverage
+
coverage: clean-coverage perform-coverage report-coverage
clean-coverage: clean-cpp-coverage
@@ -106,8 +116,8 @@ report-coverage: report-cpp-coverage
# for static C++ check using cppcheck (when available)
cppcheck:
- cppcheck -I./src/lib -I./src/bin --enable=all --suppressions \
- src/cppcheck-suppress.lst --inline-suppr \
+ cppcheck -I./src/lib -I./src/bin --enable=all \
+ --suppressions-list=src/cppcheck-suppress.lst --inline-suppr \
--quiet --error-exitcode=1 \
--template '{file}:{line}: check_fail: {message} ({severity},{id})' \
src