diff options
Diffstat (limited to 'Makefile.am')
-rw-r--r-- | Makefile.am | 56 |
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 |