ecore: Enable coverage builds for exsisting tests

SVN revision: 75055
This commit is contained in:
Stefan Schmidt 2012-08-09 16:19:30 +00:00
parent 6aefa60a0a
commit 0037cc3f7d
11 changed files with 118 additions and 11 deletions

View File

@ -117,6 +117,7 @@ m4/ecore_check_options.m4 \
m4/efl_doxygen.m4 \
m4/efl_path_max.m4 \
m4/efl_shm_open.m4 \
m4/efl_coverage.m4 \
m4/efl_tests.m4 \
m4/efl_threads.m4
@ -196,7 +197,7 @@ if BUILD_ECORE_WAYLAND
pkgconfig_DATA += ecore-wayland.pc
endif
.PHONY: doc
.PHONY: doc coverage
# Documentation
@ -217,3 +218,33 @@ check-local:
@echo "reconfigure with --enable-tests"
endif
# Coverage report
if EFL_ENABLE_COVERAGE
lcov-reset:
@rm -rf $(top_builddir)/coverage
@find $(top_builddir) -name "*.gcda" -delete
@lcov --zerocounters --directory $(top_builddir)
lcov-report:
@mkdir $(top_builddir)/coverage
lcov --capture --compat-libtool --output-file $(top_builddir)/coverage/coverage.info --directory $(top_builddir)
lcov --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info
genhtml -t "$(PACKAGE_STRING)" -o $(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned.info
@echo "Coverage Report at $(top_builddir)/coverage/html"
coverage:
@$(MAKE) lcov-reset
@$(MAKE) check
@$(MAKE) lcov-report
else
lcov-reset:
@echo "reconfigure with --enable-coverage"
lcov-report:
@echo "reconfigure with --enable-coverage"
coverage:
@echo "reconfigure with --enable-tests --enable-coverage"
endif

View File

@ -1969,10 +1969,17 @@ ECORE_EVAS_CHECK_MODULE_FULL([wayland-egl], [wayland-egl egl >= 7.10],
fi
])
### Unit tests
### Unit tests and coverage
EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"])
EFL_CHECK_COVERAGE([${enable_tests}], [enable_coverage="yes"], [enable_coverage="no"])
CFLAGS="${CFLAGS} ${EFL_COVERAGE_CFLAGS}"
ECORE_LIBS="${ECORE_LIBS} ${EFL_COVERAGE_LIBS}"
if test "x$enable_coverage" = "xyes" ; then
CFLAGS="${CFLAGS} ${EFL_DEBUG_CFLAGS}"
fi
### install and build examples
EFL_CHECK_BUILD_EXAMPLES([enable_build_examples="yes"], [enable_build_examples="no"])
@ -2220,6 +2227,7 @@ if test "x${have_ecore_evas}" = "xyes" ; then
fi
echo
echo " Tests................: ${enable_tests}"
echo " Coverage.............: ${enable_coverage}"
echo " Maximum log level....: ${with_max_log_level}"
echo "Documentation..........: ${build_doc}"
echo "Examples...............: ${enable_build_examples}"

View File

@ -0,0 +1,62 @@
dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
dnl That code is public domain and can be freely used or copied.
dnl Macro that check if coverage support is wanted and, if yes, if
dnl lcov is available.
dnl Usage: EFL_CHECK_COVERAGE(tests [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
dnl The parameter 'tests' is used if a dependency is needed. If set to "yes",
dnl the dependency is available.
dnl Defines EFL_COVERAGE_CFLAGS and EFL_COVERAGE_LIBS variables
dnl Defines the automake conditionnal EFL_ENABLE_COVERAGE
AC_DEFUN([EFL_CHECK_COVERAGE],
[
dnl configure option
AC_ARG_ENABLE([coverage],
[AC_HELP_STRING([--enable-coverage], [enable coverage profiling instrumentation @<:@default=disabled@:>@])],
[
if test "x${enableval}" = "xyes" ; then
_efl_enable_coverage="yes"
else
_efl_enable_coverage="no"
fi
],
[_efl_enable_coverage="no"])
AC_MSG_CHECKING([whether to use profiling instrumentation])
AC_MSG_RESULT([$_efl_enable_coverage])
dnl lcov check
if test "x$_efl_enable_coverage" = "xyes" && test ! "x$1" = "xyes" ; then
AC_MSG_WARN([Coverage report requested but tests not being built, disable profiling instrumentation.])
AC_MSG_WARN([Run configure with --enable-tests])
_efl_enable_coverage="no"
fi
if test "x$_efl_enable_coverage" = "xyes" ; then
AC_CHECK_PROG(have_lcov, [lcov], [yes], [no])
if test "x$have_lcov" = "xyes" ; then
EFL_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage"
EFL_COVERAGE_LIBS="-lgcov"
# remove any optimisation flag and force debug symbols
EFL_DEBUG_CFLAGS="-g -O0 -DDEBUG"
else
AC_MSG_WARN([lcov is not found, disable profiling instrumentation])
_efl_enable_coverage="no"
fi
fi
dnl Substitution
AC_SUBST(EFL_COVERAGE_CFLAGS)
AC_SUBST(EFL_COVERAGE_LIBS)
AM_CONDITIONAL(EFL_ENABLE_COVERAGE, test "x${_efl_enable_coverage}" = "xyes")
AS_IF([test "x$_efl_enable_coverage" = "xyes"], [$2], [$3])
])
dnl End of efl_coverage.m4

View File

@ -6,7 +6,8 @@ AM_CPPFLAGS = \
-I$(top_builddir)/src/lib/ecore \
-I$(top_builddir)/src/lib/ecore_input \
@EVAS_CFLAGS@ \
@EINA_CFLAGS@
@EINA_CFLAGS@ \
@EFL_ECORE_BUILD@
lib_LTLIBRARIES = libecore_cocoa.la
includes_HEADERS = \

View File

@ -12,7 +12,8 @@ AM_CPPFLAGS = \
@EINA_CFLAGS@ \
@TLS_CFLAGS@ \
@CARES_CFLAGS@ \
@WIN32_CPPFLAGS@
@WIN32_CPPFLAGS@ \
@EFL_ECORE_BUILD@
lib_LTLIBRARIES = libecore_con.la
includes_HEADERS = Ecore_Con.h

View File

@ -12,7 +12,8 @@ AM_CPPFLAGS = \
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
@EVAS_CFLAGS@ \
@EET_CFLAGS@ \
@EINA_CFLAGS@
@EINA_CFLAGS@ \
@EFL_ECORE_BUILD@
CLEANFILES = $(DB)

View File

@ -3,7 +3,7 @@ MAINTAINERCLEANFILES = Makefile.in
AM_CPPFLAGS = \
-I$(top_srcdir)/src/lib/ecore \
-I$(top_builddir)/src/lib/ecore \
@DIRECTFB_CFLAGS@ @EINA_CFLAGS@
@DIRECTFB_CFLAGS@ @EINA_CFLAGS@ @EFL_ECORE_BUILD@
lib_LTLIBRARIES = libecore_directfb.la
includes_HEADERS = Ecore_DirectFB.h

View File

@ -107,7 +107,8 @@ $(ECORE_IPC_INC) \
@EVAS_CFLAGS@ \
@EINA_CFLAGS@ \
@EVIL_CFLAGS@ \
@WAYLAND_EGL_CFLAGS@
@WAYLAND_EGL_CFLAGS@ \
@EFL_ECORE_BUILD@
AM_CFLAGS = @WIN32_CFLAGS@

View File

@ -5,8 +5,8 @@ AM_CPPFLAGS = \
-I$(top_builddir)/src/lib/ecore \
-I$(top_srcdir)/src/lib/ecore_input \
@TSLIB_CFLAGS@ \
@EINA_CFLAGS@
@EINA_CFLAGS@ \
@EFL_ECORE_BUILD@
lib_LTLIBRARIES = libecore_fb.la
includes_HEADERS = Ecore_Fb.h

View File

@ -8,7 +8,8 @@ AM_CPPFLAGS = \
@CURL_CFLAGS@ \
@EVIL_CFLAGS@ \
@EINA_CFLAGS@ \
@WIN32_CPPFLAGS@
@WIN32_CPPFLAGS@ \
@EFL_ECORE_BUILD@
AM_CFLAGS = @WIN32_CFLAGS@

View File

@ -5,7 +5,8 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/lib/ecore_con \
-I$(top_srcdir)/src/lib/ecore_x \
@EINA_CFLAGS@ \
@CHECK_CFLAGS@
@CHECK_CFLAGS@ \
@EFL_ECORE_BUILD@
if EFL_ENABLE_TESTS