]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Revert "configure: Remove --enable-test-coverage"
authorJiri Denemark <jdenemar@redhat.com>
Fri, 2 Aug 2019 11:05:37 +0000 (13:05 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Wed, 14 Aug 2019 07:28:06 +0000 (09:28 +0200)
This reverts commit f38d553e2d6ec2f041cb7947b5eafcdd3b26ae65.

Gnulib's make coverage (or init-coverage, build-coverage, gen-coverage)
is not a 1-1 replacement for the original configure option. Our old
--enable-test-coverage seems to be close to gnulib's make build-coverage
except gnulib runs lcov in that phase and the build actually fails for
me even before lcov is run. And since we want to be able to just build
libvirt without running lcov, I suggest reverting to our own
implementation.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Acked-By: Eric Blake <eblake@redhat.com>
Makefile.am
configure.ac
src/Makefile.am
src/remote/Makefile.inc.am
tests/Makefile.am
tools/Makefile.am

index dedd8d2ff825b78a545d812afeac8ea8ae59ae41..27c49280c40cb5a475d602092e580e9b8195b7b6 100644 (file)
 ## License along with this library.  If not, see
 ## <http://www.gnu.org/licenses/>.
 
+LCOV = lcov
+GENHTML = genhtml
+
 SUBDIRS = . gnulib/lib include/libvirt src tools docs gnulib/tests \
   tests po examples
 
 XZ_OPT ?= -v -T0
 export XZ_OPT
 
-# have gnulib 'make coverage' output to 'cov' dir
-COVERAGE_OUT = "cov"
-
 ACLOCAL_AMFLAGS = -I m4
 
 EXTRA_DIST = \
@@ -87,6 +87,20 @@ check-local: all tests
 check-access: all
        @($(MAKE) $(AM_MAKEFLAGS) -C tests check-access)
 
+cov: clean-cov
+       $(MKDIR_P) $(top_builddir)/coverage
+       $(LCOV) -c -o $(top_builddir)/coverage/libvirt.info.tmp \
+         -d $(top_builddir)/src \
+         -d $(top_builddir)/tests
+       $(LCOV) -r $(top_builddir)/coverage/libvirt.info.tmp \
+         -o $(top_builddir)/coverage/libvirt.info
+       rm $(top_builddir)/coverage/libvirt.info.tmp
+       $(GENHTML) --show-details -t "libvirt" -o $(top_builddir)/coverage \
+         --legend $(top_builddir)/coverage/libvirt.info
+
+clean-cov:
+       rm -rf $(top_builddir)/coverage
+
 MAINTAINERCLEANFILES = .git-module-status
 
 dist-hook: gen-AUTHORS
index ebb2e24e21d55d2f0174728b2a5c4f3ba772cebf..f41c6d5d86d3c4684e8182e8e5b7b0e91b114fd8 100644 (file)
@@ -726,6 +726,23 @@ fi
 AC_SUBST([VIR_TEST_EXPENSIVE_DEFAULT])
 AM_CONDITIONAL([WITH_EXPENSIVE_TESTS], [test $VIR_TEST_EXPENSIVE_DEFAULT = 1])
 
+LIBVIRT_ARG_ENABLE([TEST_COVERAGE], [turn on code coverage instrumentation], [no])
+case "$enable_test_coverage" in
+  yes|no) ;;
+  *) AC_MSG_ERROR([bad value ${enable_test_coverga} for test-coverage option]) ;;
+esac
+
+if test "$enable_test_coverage" = yes; then
+  save_WARN_CFLAGS=$WARN_CFLAGS
+  WARN_CFLAGS=
+  gl_WARN_ADD([-fprofile-arcs])
+  gl_WARN_ADD([-ftest-coverage])
+  COVERAGE_FLAGS=$WARN_CFLAGS
+  AC_SUBST([COVERAGE_CFLAGS], [$COVERAGE_FLAGS])
+  AC_SUBST([COVERAGE_LDFLAGS], [$COVERAGE_FLAGS])
+  WARN_CFLAGS=$save_WARN_CFLAGS
+fi
+
 LIBVIRT_ARG_ENABLE([TEST_OOM], [memory allocation failure checking], [no])
 case "$enable_test_oom" in
   yes|no) ;;
@@ -1011,6 +1028,7 @@ LIBVIRT_WIN_RESULT_WINDRES
 AC_MSG_NOTICE([])
 AC_MSG_NOTICE([Test suite])
 AC_MSG_NOTICE([])
+AC_MSG_NOTICE([         Coverage: $enable_test_coverage])
 AC_MSG_NOTICE([        Alloc OOM: $enable_test_oom])
 AC_MSG_NOTICE([])
 AC_MSG_NOTICE([Miscellaneous])
index d02d4deb6d373a3f79dd02f62c5c3726ab29083c..3ae4b87abb3dc4a516f238e120d0f7044206462e 100644 (file)
@@ -37,8 +37,10 @@ AM_CFLAGS =  $(LIBXML_CFLAGS) \
                $(WARN_CFLAGS) \
                $(LOCK_CHECKING_CFLAGS) \
                $(WIN32_EXTRA_CFLAGS) \
+               $(COVERAGE_CFLAGS) \
                $(NULL)
 AM_LDFLAGS =   $(DRIVER_MODULES_LDFLAGS) \
+               $(COVERAGE_LDFLAGS) \
                $(RELRO_LDFLAGS) \
                $(NO_INDIRECT_LDFLAGS) \
                $(CYGWIN_EXTRA_LDFLAGS) \
index 09535ee6bb6ea8b7bea71c25a131cca6cefd3163..aca0b401401b642c6601978e4b8a17db5c8aff7a 100644 (file)
@@ -45,6 +45,7 @@ REMOTE_DAEMON_CFLAGS = \
        $(LIBNL_CFLAGS) \
        $(WARN_CFLAGS) \
        $(PIE_CFLAGS) \
+       $(COVERAGE_CFLAGS) \
        -I$(srcdir)/access \
        -I$(srcdir)/conf \
        -I$(srcdir)/rpc \
@@ -55,6 +56,7 @@ REMOTE_DAEMON_LD_FLAGS = \
        $(PIE_LDFLAGS) \
        $(NO_INDIRECT_LDFLAGS) \
        $(NO_UNDEFINED_LDFLAGS) \
+       $(COVERAGE_LDFLAGS) \
        $(NULL)
 
 REMOTE_DAEMON_LD_ADD = \
index 31a22ebefdc9d8dfe265af592393a69a8f6702de..6b5d05bbede185149825b50b8ca2ca1d0023b220 100644 (file)
@@ -41,6 +41,7 @@ AM_CFLAGS = \
        $(SELINUX_CFLAGS) \
        $(APPARMOR_CFLAGS) \
        $(YAJL_CFLAGS) \
+       $(COVERAGE_CFLAGS) \
        $(XDR_CFLAGS) \
        $(WARN_CFLAGS)
 
@@ -267,6 +268,7 @@ endif WITH_SECDRIVER_SELINUX
 
 # This is a fake SSH we use from virnetsockettest
 ssh_SOURCES = ssh.c
+ssh_LDADD = $(COVERAGE_LDFLAGS)
 
 if WITH_LIBXL
 test_programs += xlconfigtest \
index 35b442d9753754a286bec5e52dfac10e0b8ada7a..29fdbfe846982bcf7facb39e10a7b67392dc9b5d 100644 (file)
@@ -33,6 +33,7 @@ WARN_CFLAGS += $(STRICT_FRAME_LIMIT_CFLAGS)
 
 AM_CFLAGS = \
        $(WARN_CFLAGS) \
+       $(COVERAGE_CFLAGS) \
        $(PIE_CFLAGS) \
        $(LIBXML_CFLAGS) \
        $(NULL)
@@ -143,6 +144,7 @@ libvirt_shell_la_CFLAGS = \
 libvirt_shell_la_LDFLAGS = \
                $(AM_LDFLAGS) \
                $(PIE_LDFLAGS) \
+               $(COVERAGE_LDFLAGS) \
                $(NULL)
 libvirt_shell_la_LIBADD = \
                ../src/libvirt.la \
@@ -188,6 +190,7 @@ endif ! WITH_BHYVE
 virt_host_validate_LDFLAGS = \
                $(AM_LDFLAGS) \
                $(PIE_LDFLAGS) \
+               $(COVERAGE_LDFLAGS) \
                $(NULL)
 
 virt_host_validate_LDADD = \
@@ -213,6 +216,7 @@ virt_login_shell_helper_SOURCES = \
 virt_login_shell_helper_LDFLAGS = \
                $(AM_LDFLAGS) \
                $(PIE_LDFLAGS) \
+               $(COVERAGE_LDFLAGS) \
                $(NULL)
 virt_login_shell_helper_LDADD = \
                ../src/libvirt.la \
@@ -256,6 +260,7 @@ virsh_SOURCES = \
 virsh_LDFLAGS = \
                $(AM_LDFLAGS) \
                $(PIE_LDFLAGS) \
+               $(COVERAGE_LDFLAGS) \
                $(NULL)
 virsh_LDADD = \
                $(STATIC_BINARIES) \
@@ -273,6 +278,7 @@ virt_admin_SOURCES = \
 
 virt_admin_LDFLAGS = \
                $(AM_LDFLAGS) \
+               $(COVERAGE_LDFLAGS) \
                $(STATIC_BINARIES) \
                $(PIE_LDFLAGS) \
                $(NULL)