build: add code coverage support
Build all targets, except for CLI tools (mmcli, uml290), with special flags needed for collecting code coverage information when the build has been configured with --enable-code-coverage. Three new targets are available in the top build directory: - `check-code-coverage' runs the test suite and generates a code coverage report, - `code-coverage-capture' generates a code coverage report from already collected data, which can come in handy when one wants to see code paths touched by a particular test, - `code-coverage-clean' removes the collected coverage data and the generated reports.
This commit is contained in:

committed by
Aleksander Morgado

parent
ffe2106d4e
commit
7552030ef9
5
.gitignore
vendored
5
.gitignore
vendored
@@ -18,6 +18,8 @@ gtk-doc.make
|
|||||||
*.lo
|
*.lo
|
||||||
*.la
|
*.la
|
||||||
*.loT
|
*.loT
|
||||||
|
*.gcno
|
||||||
|
*.gcda
|
||||||
libtool
|
libtool
|
||||||
.deps
|
.deps
|
||||||
.libs
|
.libs
|
||||||
@@ -165,3 +167,6 @@ plugins/test-service-*
|
|||||||
|
|
||||||
TAGS
|
TAGS
|
||||||
ABOUT-NLS
|
ABOUT-NLS
|
||||||
|
|
||||||
|
ModemManager-*-coverage.info
|
||||||
|
ModemManager-*-coverage/
|
||||||
|
@@ -24,3 +24,10 @@ EXTRA_DIST = \
|
|||||||
COPYING.LIB
|
COPYING.LIB
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
|
@CODE_COVERAGE_RULES@
|
||||||
|
|
||||||
|
if CODE_COVERAGE_ENABLED
|
||||||
|
clean-local:
|
||||||
|
-find $(top_builddir) -name "*.gcno" -delete
|
||||||
|
endif
|
||||||
|
@@ -110,6 +110,9 @@ AC_SUBST(GLIB_MKENUMS)
|
|||||||
GDBUS_CODEGEN=`$PKG_CONFIG --variable=gdbus_codegen gio-2.0`
|
GDBUS_CODEGEN=`$PKG_CONFIG --variable=gdbus_codegen gio-2.0`
|
||||||
AC_SUBST(GDBUS_CODEGEN)
|
AC_SUBST(GDBUS_CODEGEN)
|
||||||
|
|
||||||
|
# Code coverage (disabled by default)
|
||||||
|
AX_CODE_COVERAGE
|
||||||
|
|
||||||
# GObject Introspection
|
# GObject Introspection
|
||||||
GOBJECT_INTROSPECTION_CHECK([0.9.6])
|
GOBJECT_INTROSPECTION_CHECK([0.9.6])
|
||||||
|
|
||||||
@@ -302,7 +305,13 @@ echo "
|
|||||||
compiler: ${CC}
|
compiler: ${CC}
|
||||||
cflags: ${CFLAGS}
|
cflags: ${CFLAGS}
|
||||||
Maintainer mode: ${USE_MAINTAINER_MODE}
|
Maintainer mode: ${USE_MAINTAINER_MODE}
|
||||||
|
Code coverage: ${CODE_COVERAGE_ENABLED}"
|
||||||
|
if test "x${CODE_COVERAGE_ENABLED}" = "xyes"; then
|
||||||
|
echo " Code coverage cflags: ${CODE_COVERAGE_CFLAGS}"
|
||||||
|
echo " Code coverage ldflags: ${CODE_COVERAGE_LDFLAGS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "
|
||||||
D-Bus system directory: ${DBUS_SYS_DIR}
|
D-Bus system directory: ${DBUS_SYS_DIR}
|
||||||
udev base directory: ${UDEV_BASE_DIR}
|
udev base directory: ${UDEV_BASE_DIR}
|
||||||
systemd unit directory: ${with_systemdsystemunitdir}
|
systemd unit directory: ${with_systemdsystemunitdir}
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
SUBDIRS = generated . tests
|
SUBDIRS = generated . tests
|
||||||
|
|
||||||
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
lib_LTLIBRARIES = libmm-glib.la
|
lib_LTLIBRARIES = libmm-glib.la
|
||||||
|
|
||||||
libmm_glib_la_SOURCES = \
|
libmm_glib_la_SOURCES = \
|
||||||
@@ -91,7 +94,8 @@ libmm_glib_la_LIBADD = \
|
|||||||
$(LIBMM_GLIB_LIBS)
|
$(LIBMM_GLIB_LIBS)
|
||||||
|
|
||||||
libmm_glib_la_LDFLAGS = \
|
libmm_glib_la_LDFLAGS = \
|
||||||
-version-info $(MM_GLIB_LT_CURRENT):$(MM_GLIB_LT_REVISION):$(MM_GLIB_LT_AGE)
|
-version-info $(MM_GLIB_LT_CURRENT):$(MM_GLIB_LT_REVISION):$(MM_GLIB_LT_AGE) \
|
||||||
|
$(AM_LDFLAGS)
|
||||||
|
|
||||||
includedir = @includedir@/libmm-glib
|
includedir = @includedir@/libmm-glib
|
||||||
include_HEADERS = \
|
include_HEADERS = \
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
|
|
||||||
SUBDIRS = . tests
|
SUBDIRS = . tests
|
||||||
|
|
||||||
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libmm-generated.la
|
noinst_LTLIBRARIES = libmm-generated.la
|
||||||
|
|
||||||
GENERATED_H = \
|
GENERATED_H = \
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libmm-test-generated.la
|
noinst_LTLIBRARIES = libmm-test-generated.la
|
||||||
|
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
include $(top_srcdir)/gtester.make
|
include $(top_srcdir)/gtester.make
|
||||||
|
|
||||||
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
noinst_PROGRAMS = test-common-helpers
|
noinst_PROGRAMS = test-common-helpers
|
||||||
TEST_PROGS += $(noinst_PROGRAMS)
|
TEST_PROGS += $(noinst_PROGRAMS)
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
noinst_LTLIBRARIES = libqcdm.la libqcdm-test.la
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = libqcdm.la libqcdm-test.la
|
||||||
|
|
||||||
libqcdm_la_CPPFLAGS = \
|
libqcdm_la_CPPFLAGS = \
|
||||||
$(MM_CFLAGS)
|
$(MM_CFLAGS)
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
include $(top_srcdir)/gtester.make
|
include $(top_srcdir)/gtester.make
|
||||||
|
|
||||||
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
noinst_PROGRAMS = test-qcdm modepref ipv6pref reset
|
noinst_PROGRAMS = test-qcdm modepref ipv6pref reset
|
||||||
TEST_PROGS += test-qcdm
|
TEST_PROGS += test-qcdm
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
noinst_LTLIBRARIES = libwmc.la
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = libwmc.la
|
||||||
|
|
||||||
libwmc_la_CPPFLAGS = \
|
libwmc_la_CPPFLAGS = \
|
||||||
$(MM_CFLAGS)
|
$(MM_CFLAGS)
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
include $(top_srcdir)/gtester.make
|
include $(top_srcdir)/gtester.make
|
||||||
|
|
||||||
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
noinst_PROGRAMS = test-wmc
|
noinst_PROGRAMS = test-wmc
|
||||||
TEST_PROGS += $(noinst_PROGRAMS)
|
TEST_PROGS += $(noinst_PROGRAMS)
|
||||||
|
|
||||||
|
@@ -3,6 +3,9 @@ include $(top_srcdir)/gtester.make
|
|||||||
|
|
||||||
# Common CPPFLAGS and LDFLAGS
|
# Common CPPFLAGS and LDFLAGS
|
||||||
|
|
||||||
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
PLUGIN_COMMON_COMPILER_FLAGS = \
|
PLUGIN_COMMON_COMPILER_FLAGS = \
|
||||||
$(MM_CFLAGS) \
|
$(MM_CFLAGS) \
|
||||||
$(GUDEV_CFLAGS) \
|
$(GUDEV_CFLAGS) \
|
||||||
@@ -13,13 +16,15 @@ PLUGIN_COMMON_COMPILER_FLAGS = \
|
|||||||
-I$(top_builddir)/include \
|
-I$(top_builddir)/include \
|
||||||
-I$(top_srcdir)/libmm-glib \
|
-I$(top_srcdir)/libmm-glib \
|
||||||
-I$(top_srcdir)/libmm-glib/generated \
|
-I$(top_srcdir)/libmm-glib/generated \
|
||||||
-I$(top_builddir)/libmm-glib/generated
|
-I$(top_builddir)/libmm-glib/generated \
|
||||||
|
$(AM_CFLAGS)
|
||||||
|
|
||||||
PLUGIN_COMMON_LINKER_FLAGS = \
|
PLUGIN_COMMON_LINKER_FLAGS = \
|
||||||
$(GUDEV_LIBS) \
|
$(GUDEV_LIBS) \
|
||||||
$(MM_LIBS) \
|
$(MM_LIBS) \
|
||||||
-module \
|
-module \
|
||||||
-avoid-version
|
-avoid-version \
|
||||||
|
$(AM_LDFLAGS)
|
||||||
|
|
||||||
if WITH_QMI
|
if WITH_QMI
|
||||||
PLUGIN_COMMON_COMPILER_FLAGS += $(QMI_CFLAGS)
|
PLUGIN_COMMON_COMPILER_FLAGS += $(QMI_CFLAGS)
|
||||||
|
@@ -8,6 +8,9 @@ udevrules_DATA = \
|
|||||||
77-mm-usb-serial-adapters-greylist.rules \
|
77-mm-usb-serial-adapters-greylist.rules \
|
||||||
80-mm-candidate.rules
|
80-mm-candidate.rules
|
||||||
|
|
||||||
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libmodem-helpers.la libport.la
|
noinst_LTLIBRARIES = libmodem-helpers.la libport.la
|
||||||
|
|
||||||
libmodem_helpers_la_CPPFLAGS = \
|
libmodem_helpers_la_CPPFLAGS = \
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
include $(top_srcdir)/gtester.make
|
include $(top_srcdir)/gtester.make
|
||||||
|
|
||||||
|
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||||
|
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||||
|
|
||||||
noinst_PROGRAMS = \
|
noinst_PROGRAMS = \
|
||||||
test-modem-helpers \
|
test-modem-helpers \
|
||||||
test-charsets \
|
test-charsets \
|
||||||
|
Reference in New Issue
Block a user