From 366c610a5da6f3191e148a21570556997caa852d Mon Sep 17 00:00:00 2001 From: Ruben Kerkhof Date: Sat, 24 Jan 2015 23:10:25 +0100 Subject: [PATCH] Add --enable-coverage for coverage instrumentation --- .gitignore | 3 +++ configure.ac | 2 ++ m4/pdns_enable_coverage.m4 | 17 +++++++++++++++++ pdns/Makefile.am | 9 ++++++++- 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 m4/pdns_enable_coverage.m4 diff --git a/.gitignore b/.gitignore index 1de1b0f53f..9fe812cee9 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,6 @@ pdns-*.tar.bz2 .*DS_Store *~ pdns.pid +*.gcda +*.gcno +*.gcov diff --git a/configure.ac b/configure.ac index b1972524dc..2c68538448 100644 --- a/configure.ac +++ b/configure.ac @@ -306,6 +306,8 @@ AS_IF([test "x$static" != "xyes"], [ LDFLAGS="$PIE_LDFLAGS $LDFLAGS" ]) +PDNS_ENABLE_COVERAGE + AC_SUBST(LIBS) AC_SUBST([AM_CPPFLAGS], diff --git a/m4/pdns_enable_coverage.m4 b/m4/pdns_enable_coverage.m4 new file mode 100644 index 0000000000..17846ffa16 --- /dev/null +++ b/m4/pdns_enable_coverage.m4 @@ -0,0 +1,17 @@ +AC_DEFUN([PDNS_ENABLE_COVERAGE], [ + AC_MSG_CHECKING([whether to enable code coverage]) + AC_ARG_ENABLE([coverage], + AS_HELP_STRING([--enable-coverage], + [enable code coverage @<:@default=no@:>@]), + [enable_coverage=$enableval], + [enable_coverage=no] + ) + AC_MSG_RESULT([$enable_coverage]) + AS_IF([test "x$enable_coverage" != "xno"], [ + gl_COMPILER_OPTION_IF([-fprofile-arcs -ftest-coverage], [ + CXXFLAGS="$CXXFLAGS -U_FORTIFY_SOURCE -g -O0 -fprofile-arcs -ftest-coverage" + ], [ + AC_MSG_ERROR([$CXX does not support gathering coverage data]) + ]) + ]) +]) diff --git a/pdns/Makefile.am b/pdns/Makefile.am index 1f95851879..cf8a56b556 100644 --- a/pdns/Makefile.am +++ b/pdns/Makefile.am @@ -48,7 +48,14 @@ BUILT_SOURCES = \ version_generated.h \ bindparser.h -CLEANFILES = version_generated.h +CLEANFILES = \ + version_generated.h \ + *.gcda \ + *.gcno \ + *.gcov \ + backends/gsql/gsqlbackend.gcda \ + backends/gsql/gsqlbackend.gcno \ + backends/gsql/gsqlbackend.gcov noinst_SCRIPTS = pdns.init sysconf_DATA = pdns.conf-dist -- 2.47.2