This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Vasil Velichkov gerrit-no-reply at lists.osmocom.orgVasil Velichkov has uploaded this change for review. ( https://gerrit.osmocom.org/13496
Change subject: Add code coverage support
......................................................................
Add code coverage support
Configure with --enable-code-coverage then execute make check-code-coverage
and then open the resulting HTML report in your browser
Closes: OS#1987
Change-Id: I6f4ffb91bd7f3dd070aa09dd16d5ad1faf130a4c
---
M Makefile.am
M configure.ac
M src/Makefile.am
M src/codec/Makefile.am
M src/coding/Makefile.am
M src/ctrl/Makefile.am
M src/gb/Makefile.am
M src/gsm/Makefile.am
M src/pseudotalloc/Makefile.am
M src/sim/Makefile.am
M src/vty/Makefile.am
11 files changed, 43 insertions(+), 24 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/96/13496/1
diff --git a/Makefile.am b/Makefile.am
index 332ce65..5f8c46f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,6 +8,9 @@
libosmogb.pc libosmoctrl.pc libosmocoding.pc libosmosim.pc
@RELMAKE@
+ at CODE_COVERAGE_RULES@
+# Exclude some system headers from the code coverage report
+CODE_COVERAGE_IGNORE_PATTERN="/usr/include/*" "/usr/lib*"
relengdir = $(includedir)
releng_DATA = osmo-release.mk
diff --git a/configure.ac b/configure.ac
index 4a00e69..e88de21 100644
--- a/configure.ac
+++ b/configure.ac
@@ -334,6 +334,8 @@
AM_CONDITIONAL(HAVE_SSE4_1, false)
fi
+AX_CODE_COVERAGE
+
dnl Check if the compiler supports specified GCC's built-in function
AC_DEFUN([CHECK_BUILTIN_SUPPORT], [
AC_CACHE_CHECK(
diff --git a/src/Makefile.am b/src/Makefile.am
index 27ab702..4d28f8d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,8 +3,8 @@
# before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html
LIBVERSION=12:1:0
-AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
-AM_CFLAGS = -Wall $(TALLOC_CFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(CODE_COVERAGE_CPPFLAGS)
+AM_CFLAGS = -Wall $(TALLOC_CFLAGS) $(CODE_COVERAGE_CFLAGS)
if ENABLE_PSEUDOTALLOC
AM_CPPFLAGS += -I$(top_srcdir)/src/pseudotalloc
@@ -12,7 +12,7 @@
lib_LTLIBRARIES = libosmocore.la
-libosmocore_la_LIBADD = $(BACKTRACE_LIB) $(TALLOC_LIBS) $(LIBRARY_RT)
+libosmocore_la_LIBADD = $(BACKTRACE_LIB) $(TALLOC_LIBS) $(LIBRARY_RT) $(CODE_COVERAGE_LIBS)
libosmocore_la_SOURCES = timer.c timer_gettimeofday.c timer_clockgettime.c \
select.c signal.c msgb.c bits.c \
bitvec.c bitcomp.c counter.c fsm.c \
diff --git a/src/codec/Makefile.am b/src/codec/Makefile.am
index b522d43..f11ff04 100644
--- a/src/codec/Makefile.am
+++ b/src/codec/Makefile.am
@@ -3,8 +3,8 @@
# before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html
LIBVERSION=1:1:1
-AM_CPPFLAGS = -I$(top_srcdir)/include $(TALLOC_CFLAGS)
-AM_CFLAGS = -Wall
+AM_CPPFLAGS = -I$(top_srcdir)/include $(TALLOC_CFLAGS) $(CODE_COVERAGE_CPPFLAGS)
+AM_CFLAGS = -Wall $(CODE_COVERAGE_CFLAGS)
if ENABLE_PSEUDOTALLOC
AM_CPPFLAGS += -I$(top_srcdir)/src/pseudotalloc
@@ -15,4 +15,4 @@
libosmocodec_la_SOURCES = gsm610.c gsm620.c gsm660.c gsm690.c ecu_fr.c
libosmocodec_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined
-libosmocodec_la_LIBADD = $(top_builddir)/src/libosmocore.la
+libosmocodec_la_LIBADD = $(top_builddir)/src/libosmocore.la $(CODE_COVERAGE_LIBS)
diff --git a/src/coding/Makefile.am b/src/coding/Makefile.am
index c001c13..f179159 100644
--- a/src/coding/Makefile.am
+++ b/src/coding/Makefile.am
@@ -6,8 +6,9 @@
AM_CPPFLAGS = \
-I"$(top_srcdir)/include" \
-I"$(top_builddir)/include" \
- $(TALLOC_CFLAGS)
-AM_CFLAGS = -Wall
+ $(TALLOC_CFLAGS) \
+ $(CODE_COVERAGE_CPPFLAGS)
+AM_CFLAGS = -Wall $(CODE_COVERAGE_CFLAGS)
if ENABLE_PSEUDOTALLOC
AM_CPPFLAGS += -I$(top_srcdir)/src/pseudotalloc
@@ -30,6 +31,7 @@
libosmocoding_la_LIBADD = \
../libosmocore.la \
../gsm/libosmogsm.la \
- ../codec/libosmocodec.la
+ ../codec/libosmocodec.la \
+ $(CODE_COVERAGE_LIBS)
EXTRA_DIST = libosmocoding.map
diff --git a/src/ctrl/Makefile.am b/src/ctrl/Makefile.am
index fe7c47d..537ea7c 100644
--- a/src/ctrl/Makefile.am
+++ b/src/ctrl/Makefile.am
@@ -3,7 +3,9 @@
# before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html
LIBVERSION=3:0:3
-AM_CFLAGS = -Wall $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)/include $(TALLOC_CFLAGS)
+AM_CPPFLAGS = $(CODE_COVERAGE_CPPFLAGS)
+AM_CFLAGS = -Wall $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)/include $(TALLOC_CFLAGS) \
+ $(CODE_COVERAGE_CFLAGS)
if ENABLE_CTRL
lib_LTLIBRARIES = libosmoctrl.la
@@ -14,7 +16,8 @@
libosmoctrl_la_LIBADD = $(TALLOC_LIBS) \
$(top_builddir)/src/libosmocore.la \
$(top_builddir)/src/gsm/libosmogsm.la \
- $(top_builddir)/src/vty/libosmovty.la
+ $(top_builddir)/src/vty/libosmovty.la \
+ $(CODE_COVERAGE_LIBS)
if ENABLE_VTY
libosmoctrl_la_SOURCES += control_vty.c
diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am
index 3180f9c..530c8e1 100644
--- a/src/gb/Makefile.am
+++ b/src/gb/Makefile.am
@@ -2,8 +2,10 @@
# Please read Chapter 6 "Library interface versions" of the libtool documentation before making any modification
LIBVERSION=8:0:2
-AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
-AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} -fno-strict-aliasing $(TALLOC_CFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include \
+ $(CODE_COVERAGE_CPPFLAGS)
+AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} -fno-strict-aliasing $(TALLOC_CFLAGS) \
+ $(CODE_COVERAGE_CFLAGS)
# FIXME: this should eventually go into a milenage/Makefile.am
noinst_HEADERS = common_vty.h gb_internal.h
@@ -15,7 +17,8 @@
libosmogb_la_LIBADD = $(TALLOC_LIBS) \
$(top_builddir)/src/libosmocore.la \
$(top_builddir)/src/vty/libosmovty.la \
- $(top_builddir)/src/gsm/libosmogsm.la
+ $(top_builddir)/src/gsm/libosmogsm.la \
+ $(CODE_COVERAGE_LIBS)
libosmogb_la_SOURCES = gprs_ns.c gprs_ns_frgre.c gprs_ns_vty.c gprs_ns_sns.c \
gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c \
diff --git a/src/gsm/Makefile.am b/src/gsm/Makefile.am
index 9066500..010e5d9 100644
--- a/src/gsm/Makefile.am
+++ b/src/gsm/Makefile.am
@@ -3,8 +3,9 @@
# before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html
LIBVERSION=11:0:0
-AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(TALLOC_CFLAGS)
-AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN}
+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(TALLOC_CFLAGS) \
+ $(CODE_COVERAGE_CPPFLAGS)
+AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} $(CODE_COVERAGE_CFLAGS)
if ENABLE_PSEUDOTALLOC
AM_CPPFLAGS += -I$(top_srcdir)/src/pseudotalloc
diff --git a/src/pseudotalloc/Makefile.am b/src/pseudotalloc/Makefile.am
index 3c78bba..f7a1ffc 100644
--- a/src/pseudotalloc/Makefile.am
+++ b/src/pseudotalloc/Makefile.am
@@ -1,4 +1,6 @@
-AM_CFLAGS = -Wall -I. $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)/include
+AM_CPPFLAGS = $(CODE_COVERAGE_CPPFLAGS)
+AM_CFLAGS = -Wall -I. $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)/include \
+ $(CODE_COVERAGE_CFLAGS)
if ENABLE_PSEUDOTALLOC
@@ -6,6 +8,7 @@
libpseudotalloc_la_SOURCES = pseudotalloc.c
libpseudotalloc_la_LDFLAGS = -no-undefined
+libpseudotalloc_la_LIBADD = $(CODE_COVERAGE_LIBS)
nobase_include_HEADERS = talloc.h
diff --git a/src/sim/Makefile.am b/src/sim/Makefile.am
index ebf4739..cca5e23 100644
--- a/src/sim/Makefile.am
+++ b/src/sim/Makefile.am
@@ -3,9 +3,9 @@
# before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html
LIBVERSION=0:2:0
-AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)/include
-AM_CFLAGS = -fPIC -Wall $(PCSC_CFLAGS) $(TALLOC_CFLAGS)
-AM_LDFLAGS = $(COVERAGE_LDFLAGS)
+AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)/include \
+ $(CODE_COVERAGE_CPPFLAGS)
+AM_CFLAGS = -fPIC -Wall $(PCSC_CFLAGS) $(TALLOC_CFLAGS) $(CODE_COVERAGE_CFLAGS)
if ENABLE_PCSC
# FIXME: only build the PC/SC dependent part conditional, but always build other parts
@@ -22,6 +22,7 @@
$(top_builddir)/src/libosmocore.la \
$(top_builddir)/src/gsm/libosmogsm.la \
$(TALLOC_LIBS) \
- $(PCSC_LIBS)
+ $(PCSC_LIBS) \
+ $(CODE_COVERAGE_LIBS)
endif
diff --git a/src/vty/Makefile.am b/src/vty/Makefile.am
index cdde0fa..4e2e5a5 100644
--- a/src/vty/Makefile.am
+++ b/src/vty/Makefile.am
@@ -3,8 +3,9 @@
# before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html
LIBVERSION=6:0:2
-AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
-AM_CFLAGS = -Wall $(TALLOC_CFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include \
+ $(CODE_COVERAGE_CPPFLAGS)
+AM_CFLAGS = -Wall $(TALLOC_CFLAGS) $(CODE_COVERAGE_CFLAGS)
if ENABLE_VTY
lib_LTLIBRARIES = libosmovty.la
@@ -14,5 +15,5 @@
fsm_vty.c talloc_ctx_vty.c \
tdef_vty.c
libosmovty_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined
-libosmovty_la_LIBADD = $(top_builddir)/src/libosmocore.la $(TALLOC_LIBS)
+libosmovty_la_LIBADD = $(top_builddir)/src/libosmocore.la $(TALLOC_LIBS) $(CODE_COVERAGE_LIBS)
endif
--
To view, visit https://gerrit.osmocom.org/13496
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6f4ffb91bd7f3dd070aa09dd16d5ad1faf130a4c
Gerrit-Change-Number: 13496
Gerrit-PatchSet: 1
Gerrit-Owner: Vasil Velichkov <vvvelichkov at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190403/16b4b56f/attachment.htm>