Commit bbc5070a authored by Pavel Vainerman's avatar Pavel Vainerman

Добавил использование утилит gcov и lcov для генерирования отчёта о покрытии

тестов.
parent 7a939bcf
...@@ -199,6 +199,8 @@ UNISET_EXT_LIBS="\$(top_builddir)/extensions/lib/libUniSet2Extensions.la" ...@@ -199,6 +199,8 @@ UNISET_EXT_LIBS="\$(top_builddir)/extensions/lib/libUniSet2Extensions.la"
AC_SUBST(UNISET_EXT_LIBS) AC_SUBST(UNISET_EXT_LIBS)
COV_LIBS=
COV_CFLAGS=
AC_MSG_CHECKING([tests support]) AC_MSG_CHECKING([tests support])
buildtests=true buildtests=true
AC_ARG_ENABLE(tests, AC_HELP_STRING([--disable-tests], [disable tests build]), AC_ARG_ENABLE(tests, AC_HELP_STRING([--disable-tests], [disable tests build]),
...@@ -219,6 +221,27 @@ if test ${buildtests} = true; then ...@@ -219,6 +221,27 @@ if test ${buildtests} = true; then
TESTSUITE_DIR="\$(top_builddir)/testsuite" TESTSUITE_DIR="\$(top_builddir)/testsuite"
AC_SUBST(TESTSUITE_DIR) AC_SUBST(TESTSUITE_DIR)
#check gcov
AC_MSG_CHECKING([test coverage])
buildgcov=true
AC_ARG_ENABLE(coverage, AC_HELP_STRING([--disable-coverage], [disable gcov support]),
[ if test $enableval = yes; then buildgcov=true; else buildgcov=false; fi],[ buildgcov=true; ])
if test ${buildgcov} = true; then
AC_MSG_RESULT([yes])
COV_LIBS="-lgcov"
COV_CFLAGS="-fprofile-arcs -ftest-coverage -g -ggdb"
AC_PATH_PROG([LCOV], [lcov])
test "x$LCOV" = "x" && AC_MSG_ERROR([*** lcov not found (install lcov or use --disable-coverage)])
AC_SUBST(LCOV)
AC_PATH_PROG([LCOV_GENHTML], [genhtml])
test "x$LCOV_GENHTML" = "x" && AC_MSG_ERROR([*** genhtml not found (install lcov or use --disable-coverage)])
AC_SUBST(LCOV_GENHTML)
else
AC_MSG_RESULT([no])
fi
AM_CONDITIONAL(HAVE_COVERAGE, test ${buildgcov} = true)
else else
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
fi fi
...@@ -226,8 +249,10 @@ fi ...@@ -226,8 +249,10 @@ fi
AM_CONDITIONAL(HAVE_TESTS, test ${buildtests} = true) AM_CONDITIONAL(HAVE_TESTS, test ${buildtests} = true)
# export # export
LDFLAGS="${OMNI_LIBS} ${XML_LIBS} ${SIGC_LIBS}" LDFLAGS="${OMNI_LIBS} ${XML_LIBS} ${SIGC_LIBS} ${COV_LIBS}"
CXXFLAGS="-pedantic -Wall -funsigned-char -std=c++11 -g -D_GNU_SOURCE ${OMNI_CFLAGS} ${XML_CFLAGS} ${SIGC_CFLAGS} -I\$(top_builddir)/include" CXXFLAGS="-pedantic -Wall -funsigned-char -std=c++11 -g -D_GNU_SOURCE ${OMNI_CFLAGS} ${XML_CFLAGS} ${SIGC_CFLAGS} ${COV_CFLAGS} -I\$(top_builddir)/include"
AC_SUBST(LDFLAGS) AC_SUBST(LDFLAGS)
AC_SUBST(CXXFLAGS) AC_SUBST(CXXFLAGS)
......
...@@ -26,5 +26,10 @@ check-local: atconfig package.m4 $(TESTSUITE) ...@@ -26,5 +26,10 @@ check-local: atconfig package.m4 $(TESTSUITE)
clean-local: clean-local:
test ! -f '$(TESTSUITE)'|| $(SHELL) '$(TESTSUITE)' --clean test ! -f '$(TESTSUITE)'|| $(SHELL) '$(TESTSUITE)' --clean
rm -rf $(CLEANFILES) rm -rf $(CLEANFILES)
rm -rf $(COVERAGE_REPORT_DIR)
if HAVE_COVERAGE
include $(top_builddir)/testsuite/testsuite-coverage-common.mk
endif
endif endif
...@@ -137,6 +137,7 @@ SensorMessage::SensorMessage(const VoidMessage *msg): ...@@ -137,6 +137,7 @@ SensorMessage::SensorMessage(const VoidMessage *msg):
SystemMessage::SystemMessage(): SystemMessage::SystemMessage():
command(SystemMessage::Unknown) command(SystemMessage::Unknown)
{ {
memset(data,0,sizeof(data));
type = Message::SysCommand; type = Message::SysCommand;
} }
......
...@@ -54,5 +54,10 @@ check-local: atconfig package.m4 $(TESTSUITE) ...@@ -54,5 +54,10 @@ check-local: atconfig package.m4 $(TESTSUITE)
clean-local: clean-local:
test ! -f '$(TESTSUITE)'|| $(SHELL) '$(TESTSUITE)' --clean test ! -f '$(TESTSUITE)'|| $(SHELL) '$(TESTSUITE)' --clean
rm -rf $(CLEANFILES) rm -rf $(CLEANFILES)
rm -rf $(COVERAGE_REPORT_DIR)
if HAVE_COVERAGE
include $(top_builddir)/testsuite/testsuite-coverage-common.mk
endif
endif endif
COVERAGE_REPORT_DIR=$(abs_srcdir)/coverage-report
cov: all
$(LCOV) --directory $(abs_srcdir) --zerocounters
$(LCOV) -c -i -d $(abs_srcdir) -o $(abs_srcdir)/.coverage.base
make check
$(LCOV) -c -d $(abs_srcdir) -o $(abs_srcdir)/.coverage.run
$(LCOV) -d $(abs_srcdir) -a $(abs_srcdir)/.coverage.base -a $(abs_srcdir)/.coverage.run -o $(abs_srcdir)/.coverage.total
$(LCOV) -r $(abs_srcdir)/.coverage.total '/usr/include/c++/*' '/usr/include/cc++/*' '/usr/include/omniORB4/*' '/usr/include/sigc++-2.0/sigc++/*' -d $(abs_srcdir) -o $(abs_srcdir)/.coverage.total
$(LCOV_GENHTML) --no-branch-coverage -o $(COVERAGE_REPORT_DIR) $(abs_srcdir)/.coverage.total
rm -f $(abs_srcdir)/.coverage.base $(abs_srcdir)/.coverage.run $(abs_srcdir)/.coverage.total
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment