[rygel] build: Add option to generate coverage report
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel] build: Add option to generate coverage report
- Date: Wed, 4 Jan 2012 12:56:27 +0000 (UTC)
commit f5b87b4dc41f186be738e129b46c0996a6bdb158
Author: Jens Georg <mail jensge org>
Date: Tue Jan 3 21:10:04 2012 +0100
build: Add option to generate coverage report
common.am | 7 +++++--
configure.ac | 17 +++++++++++++++++
tests/Makefile.am | 22 +++++++++++++++++++---
3 files changed, 41 insertions(+), 5 deletions(-)
---
diff --git a/common.am b/common.am
index 7f99e9e..3061cbc 100644
--- a/common.am
+++ b/common.am
@@ -26,6 +26,7 @@ AM_CFLAGS = \
$(GSTREAMER_BASE_CFLAGS) \
$(GEE_CFLAGS) \
$(UUID_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
-I$(rygeldir) \
-DDATA_DIR='"$(shareddir)"' -DSYS_CONFIG_DIR='"$(sysconfigdir)"'\
-DPLUGIN_DIR='"$(plugindir)"' -DDESKTOP_DIR='"$(desktopdir)"'\
@@ -37,7 +38,8 @@ RYGEL_COMMON_LDADD = \
$(LIBGSTREAMER_LIBS) \
$(GSTREAMER_BASE_LIBS) \
$(GEE_LIBS) \
- $(UUID_LIBS)
+ $(UUID_LIBS) \
+ $(COVERAGE_LIBS)
# Note: the -g needs to be at the end of VALAFLAGS to not break make dist
RYGEL_COMMON_PLUGIN_VALAFLAGS = \
@@ -48,7 +50,8 @@ RYGEL_COMMON_VALAFLAGS = \
--pkg rygel-build-config --pkg gupnp-1.0 \
--vapidir=$(rygeldir) \
--pkg gupnp-av-1.0 --pkg gee-1.0 \
- $(RYGEL_DEBUG_VALAFLAGS)
+ $(RYGEL_DEBUG_VALAFLAGS) \
+ $(COVERAGE_VALAFLAGS)
RYGEL_PLUGIN_LINKER_FLAGS = -shared -fPIC -module -avoid-version
diff --git a/configure.ac b/configure.ac
index 5ec3717..4cf33a2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -156,6 +156,23 @@ AC_ARG_ENABLE([tests],
enable_tests=no)
AM_CONDITIONAL([ALWAYS_TEST], [test "x$enable_tests" = "xyes"])
+dnl Generate coverage data
+AC_ARG_ENABLE([coverage],
+ AS_HELP_STRING([--enable-coverage],
+ [Generate converage reports for unit tests]),
+ [],
+ [enable_coverage=no])
+AM_CONDITIONAL([ENABLE_COVERAGE],[test "x$enable_coverage" != "xno"])
+AS_IF([test "x$enable_coverage" != "xno"],
+ [
+ AC_PATH_PROG([LCOV], [lcov])
+ AC_PATH_PROG([GENHTML], [genhtml])
+ AC_SUBST([COVERAGE_LIBS],["-lgcov"])
+ AC_SUBST([COVERAGE_CFLAGS],["-fprofile-arcs -ftest-coverage"])
+ AC_SUBST(COVERAGE_VALAFLAGS,["-g"])
+ ]
+)
+
dnl Check additional requirements for MediaExport plugins
if test "x$enable_media_export_plugin" = "xyes";
then
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5c31867..cd26040 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -10,7 +10,8 @@ AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
$(UUID_CFLAGS) \
$(LIBSOUP_CFLAGS) \
-I$(top_srcdir) -DDATA_DIR='"$(shareddir)"' \
- -include config.h -DG_LOG_DOMAIN='"Rygel"'
+ -include config.h -DG_LOG_DOMAIN='"Rygel"' \
+ $(COVERAGE_CFLAGS)
LDADD = $(LIBGUPNP_LIBS) \
$(LIBGUPNP_AV_LIBS) \
@@ -20,12 +21,14 @@ LDADD = $(LIBGUPNP_LIBS) \
$(GIO_LIBS) \
$(GEE_LIBS) \
$(UUID_LIBS) \
- $(LIBSOUP_LIBS)
+ $(LIBSOUP_LIBS) \
+ $(COVERAGE_LIBS)
AM_VALAFLAGS = --disable-warnings --thread \
--pkg gupnp-1.0 --pkg gupnp-av-1.0 --pkg dbus-glib-1 \
--pkg gconf-2.0 --pkg gstreamer-0.10 --pkg gstreamer-base-0.10 \
- --pkg gio-2.0 --pkg gee-1.0 --pkg gstreamer-pbutils-0.10 -g
+ --pkg gio-2.0 --pkg gee-1.0 --pkg gstreamer-pbutils-0.10 \
+ $(COVERAGE_VALAFLAGS)
check_PROGRAMS = rygel-http-item-uri-test \
rygel-http-response-test \
@@ -77,3 +80,16 @@ rygel_album_art_spec_test_SOURCES = rygel-album-art-spec-test.vala \
if ALWAYS_TEST
all-local: check
endif
+
+if ENABLE_COVERAGE
+coverage: check
+ $(LCOV) --directory $(srcdir) --capture \
+ --output-file $(top_builddir)/rygel.info
+ $(LCOV) --directory $(srcdir) --output-file $(top_builddir)/rygel.info \
+ --remove $(top_builddir)/rygel.info "*.c" "*.h" "*.vapi"
+ rm -rf $(top_builddir)/coverage
+ $(mkdir_p) $(top_builddir)/coverage
+ $(GENHTML) --title "@PACKAGE_STRING@" \
+ --output-directory $(top_builddir)/coverage \
+ $(top_builddir)/rygel.info
+endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]