diff options
author | Eric Lambert <eric_lambert@xyratex.com> | 2014-08-08 13:29:01 -0700 |
---|---|---|
committer | Eric Lambert <eric_lambert@xyratex.com> | 2014-08-08 13:29:01 -0700 |
commit | 9b92176b4e00e287c09f540f4e801941418115b3 (patch) | |
tree | aa830d315398dc797adb97e1e7c8e6b1b68356ec | |
parent | f83caee42afe6c500a4588b41e91ed8047ccb994 (diff) | |
download | liberasurecode-9b92176b4e00e287c09f540f4e801941418115b3.tar.gz |
Added ability to generate coverage data with configure --enable-gcov.
Currently only works on Linux (build/tests will run on OS X but
coverage data is not generated).
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | configure.ac | 19 | ||||
-rw-r--r-- | src/Makefile.am | 8 | ||||
-rw-r--r-- | src/builtin/null_code/Makefile.am | 6 | ||||
-rw-r--r-- | src/builtin/xor_codes/Makefile.am | 6 | ||||
-rw-r--r-- | test/Makefile.am | 16 |
6 files changed, 45 insertions, 13 deletions
diff --git a/Makefile.am b/Makefile.am index 714d06f..6e23397 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,7 +11,7 @@ INCLUDE = -I$(abs_top_builddir)/include \ AM_CPPFLAGS = $(CPPFLAGS) $(INCLUDE) AM_CPPFLAGS += -Werror -AM_CFLAGS = -fPIC $(AM_CPPFLAGS) -L/usr/local/lib +AM_CFLAGS = -fPIC $(AM_CPPFLAGS) @GCOV_FLAGS@ -L/usr/local/lib include_HEADERS = \ include/erasurecode/alg_sig.h \ @@ -49,3 +49,4 @@ cscope: find src include -name "*.[ch]" > cscope.files cscope -q -b +MOSTLYCLEANFILES = *.gcda *.gcno *.gcov diff --git a/configure.ac b/configure.ac index 3f20373..3155567 100644 --- a/configure.ac +++ b/configure.ac @@ -49,6 +49,25 @@ else CFLAGS="-O2 -g -Werror -D_GNU_SOURCE=1" fi +AC_ARG_ENABLE([gcov], +[ --enable-gcov Turn on code coverage], +[case "${enableval}" in + yes) gcov=true ;; + no) gcov=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-gcov]) ;; +esac],[gcov=false]) +if test x$gcov = xtrue ; then + AC_CHECK_LIB(gcov, main, + [ + GCOV_FLAGS="-fprofile-arcs -ftest-coverage" + GCOV_LDFLAGS="-lgcov" + ], [ + AC_MSG_ERROR([failed to locate gcov library]) + ]) +fi +AC_SUBST(GCOV_FLAGS) +AC_SUBST(GCOV_LDFLAGS) + dnl Expand the sources and objects needed to build the library AC_SUBST(ac_aux_dir) AC_SUBST(OBJECTS) diff --git a/src/Makefile.am b/src/Makefile.am index 2e64f95..4f2d639 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -19,10 +19,14 @@ liberasurecode_la_SOURCES = \ backends/jerasure/jerasure_rs_vand.c \ backends/jerasure/jerasure_rs_cauchy.c -liberasurecode_la_CPPFLAGS = -Werror +liberasurecode_la_CPPFLAGS = -Werror @GCOV_FLAGS@ liberasurecode_la_LIBADD = \ - builtin/xor_codes/libXorcode.la -lpthread -lm + builtin/xor_codes/libXorcode.la -lpthread -lm @GCOV_LDFLAGS@ # Version format (C - A).(A).(R) for C:R:A input liberasurecode_la_LDFLAGS = -rpath '$(libdir)' -version-info 9:10:9 +MOSTLYCLEANFILES = *.gcda *.gcno *.gcov utils/chksum/*.gcda utils/chksum/*.gcno utils/chksum/*.gcov \ + backends/null/*.gcda backends/null/*.gcno backends/null/*.gcov \ + backends/xor/*.gcda backends/xor/*.gcno backends/xor/*.gcov \ + backends/jerasure/*.gcda backends/jerasure/*.gcno backends/jerasure/*.gcov diff --git a/src/builtin/null_code/Makefile.am b/src/builtin/null_code/Makefile.am index 3166256..e4e27f2 100644 --- a/src/builtin/null_code/Makefile.am +++ b/src/builtin/null_code/Makefile.am @@ -2,8 +2,10 @@ lib_LTLIBRARIES = libnullcode.la # libnullcode params libnullcode_la_SOURCES = null_code.c -libnullcode_la_CPPFLAGS = -I$(top_srcdir)/include/null_code +libnullcode_la_CPPFLAGS = -I$(top_srcdir)/include/null_code @GCOV_FLAGS@ # Version format (C - A).(A).(R) for C:R:A input -libnullcode_la_LDFLAGS = -rpath '$(libdir)' -version-info 1:1:0 +libnullcode_la_LDFLAGS = @GCOV_LDFLAGS@ -rpath '$(libdir)' -version-info 1:1:0 + +MOSTLYCLEANFILES = *.gcda *.gcno *.gcov diff --git a/src/builtin/xor_codes/Makefile.am b/src/builtin/xor_codes/Makefile.am index b69b20f..cb35246 100644 --- a/src/builtin/xor_codes/Makefile.am +++ b/src/builtin/xor_codes/Makefile.am @@ -2,8 +2,10 @@ lib_LTLIBRARIES = libXorcode.la # libXorcode params libXorcode_la_SOURCES = xor_code.c xor_hd_code.c -libXorcode_la_CPPFLAGS = -I$(top_srcdir)/include/xor_codes +libXorcode_la_CPPFLAGS = -I$(top_srcdir)/include/xor_codes @GCOV_FLAGS@ # Version format (C - A).(A).(R) for C:R:A input -libXorcode_la_LDFLAGS = -rpath '$(libdir)' -version-info 1:1:0 +libXorcode_la_LDFLAGS = @GCOV_LDFLAGS@ -rpath '$(libdir)' -version-info 1:1:0 + +MOSTLYCLEANFILES = *.gcda *.gcno *.gcov diff --git a/test/Makefile.am b/test/Makefile.am index 5f9db05..88c2631 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -4,16 +4,20 @@ noinst_PROGRAMS = test_xor_hd_code alg_sig_test liberasurecode_test test_xor_hd_code_SOURCES = \ builtin/xor_codes/test_xor_hd_code.c \ builtin/xor_codes/test_xor_hd_code.h -test_xor_hd_code_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode -I$(top_srcdir)/include/xor_codes -test_xor_hd_code_LDFLAGS = -static-libtool-libs $(top_srcdir)/src/liberasurecode.la $(top_srcdir)/src/builtin/xor_codes/libXorcode.la +test_xor_hd_code_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode -I$(top_srcdir)/include/xor_codes @GCOV_FLAGS@ +test_xor_hd_code_LDFLAGS = @GCOV_LDFLAGS@ -static-libtool-libs $(top_srcdir)/src/liberasurecode.la $(top_srcdir)/src/builtin/xor_codes/libXorcode.la check_PROGRAMS = test_xor_hd_code alg_sig_test_SOURCES = utils/chksum/test_alg_sig.c -alg_sig_test_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode -I$(top_srcdir)/include/xor_codes -alg_sig_test_LDFLAGS = -static-libtool-libs $(top_srcdir)/src/liberasurecode.la -ldl +alg_sig_test_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode -I$(top_srcdir)/include/xor_codes @GCOV_FLAGS@ +alg_sig_test_LDFLAGS = @GCOV_LDFLAGS@ -static-libtool-libs $(top_srcdir)/src/liberasurecode.la -ldl check_PROGRAMS += alg_sig_test liberasurecode_test_SOURCES = liberasurecode_test.c -liberasurecode_test_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode -liberasurecode_test_LDFLAGS = $(top_srcdir)/src/liberasurecode.la -ldl -lpthread +liberasurecode_test_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/erasurecode @GCOV_FLAGS@ +liberasurecode_test_LDFLAGS = @GCOV_LDFLAGS@ $(top_srcdir)/src/liberasurecode.la -ldl -lpthread check_PROGRAMS += liberasurecode_test + +MOSTLYCLEANFILES = *.gcda *.gcno *.gcov \ + ./builtin/xor_codes/*.gcda ./builtin/xor_codes/*.gcno ./builtin/xor_codes/*.gcov \ + ./utils/chksum/*.gcda ./utils/chksum/*.gcno ./utils/chksum/*.gcov |