[tracker] Add support for coverage analysis using lcov



commit 5804c23c948f21b975c00d7e326c5ff6913970f1
Author: Jürg Billeter <j bitron ch>
Date:   Tue Dec 15 17:21:37 2009 +0100

    Add support for coverage analysis using lcov

 Makefile.am                         |   20 ++++++++++++++++++++
 configure.ac                        |    4 ++++
 src/libtracker-common/Makefile.am   |    2 +-
 src/libtracker-data/Makefile.am     |    2 +-
 src/tracker-preferences/Makefile.am |    2 +-
 5 files changed, 27 insertions(+), 3 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index ba12222..7ad2d5b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,6 +6,26 @@ if HAVE_UNIT_TESTS
 SUBDIRS += tests
 endif
 
+#if ENABLE_GCOV
+.PHONY: coverage coverage-report
+coverage:
+	find $(top_srcdir) -name "*.gcda" | xargs rm -f
+	$(MAKE) $(AM_MAKEFLAGS) test
+
+coverage-report: coverage
+	lcov --directory $(top_srcdir)/src --capture --output-file $(top_builddir)/lcov.info
+	lcov --directory $(top_srcdir)/src --output-file $(top_builddir)/lcov.info --remove $(top_builddir)/lcov.info \
+		tracker-sparql-builder.c \
+		tracker-sparql-query.c \
+		tracker-sparql-scanner.c \
+		tracker-turtle-reader.c \
+		tracker-turtle-writer.c \
+		"*.vapi"
+	rm -rf $(top_builddir)/coverage
+	$(mkdir_p) $(top_builddir)/coverage
+	genhtml --title "@PACKAGE_STRING@" --output-directory $(top_builddir)/coverage $(top_builddir)/lcov.info
+#endif
+
 dist-hook: gen-ChangeLog
 
 gen_start_date = 2009-04-10
diff --git a/configure.ac b/configure.ac
index de44de9..93a1015 100644
--- a/configure.ac
+++ b/configure.ac
@@ -344,15 +344,19 @@ AC_ARG_ENABLE(gcov,
               AS_HELP_STRING([--enable-gcov],
                              [enable coverage reporting support [[default=no]]]), ,
               [enable_gcov=no])
+AM_CONDITIONAL(ENABLE_GCOV, test "x$enable_gcov" != "xno")
 
 if test "x$enable_gcov" != "xno" ; then
+  GCOV_VALAFLAGS="-g"
   GCOV_CFLAGS="-ftest-coverage -fprofile-arcs"
   GCOV_LIBS="-lgcov"
 else
+  GCOV_VALAFLAGS=
   GCOV_CFLAGS=
   GCOV_LIBS=
 fi
 
+AC_SUBST(GCOV_VALAFLAGS)
 AC_SUBST(GCOV_CFLAGS)
 AC_SUBST(GCOV_LIBS)
 
diff --git a/src/libtracker-common/Makefile.am b/src/libtracker-common/Makefile.am
index c1a2966..1bc3019 100644
--- a/src/libtracker-common/Makefile.am
+++ b/src/libtracker-common/Makefile.am
@@ -100,7 +100,7 @@ libtracker_commoninclude_HEADERS =			\
 	tracker-utils.h
 
 libtracker-common.vala.stamp: $(libtracker_common_la_VALASOURCES) posix.vapi
-	$(AM_V_GEN)$(VALAC) -C $(VALAFLAGS) --pkg gio-2.0 -H tracker-sparql-builder.h $^
+	$(AM_V_GEN)$(VALAC) $(GCOV_VALAFLAGS) -C $(VALAFLAGS) --pkg gio-2.0 -H tracker-sparql-builder.h $^
 	$(AM_V_GEN)touch $@
 
 libtracker_common_la_LDFLAGS = 				\
diff --git a/src/libtracker-data/Makefile.am b/src/libtracker-data/Makefile.am
index df544a6..37f8226 100644
--- a/src/libtracker-data/Makefile.am
+++ b/src/libtracker-data/Makefile.am
@@ -38,7 +38,7 @@ noinst_HEADERS =							\
 	tracker-sparql-query.h
 
 libtracker-data.vala.stamp: $(libtracker_data_la_VALASOURCES) ../libtracker-common/posix.vapi ../libtracker-common/libtracker-common.vapi libtracker-data.vapi ../libtracker-db/libtracker-db.vapi
-	$(AM_V_GEN)$(VALAC) -C $(VALAFLAGS) -H tracker-sparql-query.h $^
+	$(AM_V_GEN)$(VALAC) $(GCOV_VALAFLAGS) -C $(VALAFLAGS) -H tracker-sparql-query.h $^
 	touch $@
 
 libtracker_data_la_LDFLAGS =						\
diff --git a/src/tracker-preferences/Makefile.am b/src/tracker-preferences/Makefile.am
index c734724..c5b1e08 100644
--- a/src/tracker-preferences/Makefile.am
+++ b/src/tracker-preferences/Makefile.am
@@ -56,7 +56,7 @@ EXTRA_DIST = 								\
 	$(tracker_preferences_VALASOURCES)
 
 tracker-preferences.vala.stamp: $(tracker_preferences_VALASOURCES) tracker-config.vapi tracker-status-icon-config.vapi config.vapi
-	$(AM_V_GEN)$(VALAC) --pkg gtk+-2.0 --pkg gmodule-2.0 -C $(VALAFLAGS) $^
+	$(AM_V_GEN)$(VALAC) $(GCOV_VALAFLAGS) --pkg gtk+-2.0 --pkg gmodule-2.0 -C $(VALAFLAGS) $^
 	$(AM_V_GEN)touch $@
 
 CLEANFILES = $(desktop_DATA)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]