stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=14c19e1c6f649cdd8694d8dd72129fc1a3caeddb
commit 14c19e1c6f649cdd8694d8dd72129fc1a3caeddb Author: Stefan Schmidt <ste...@osg.samsung.com> Date: Wed Dec 7 17:35:57 2016 +0100 build: coverage: disable branch coverage generation to avoid hangs in gcov I have seen hangs with gcov on Jenkins and locally where the processing just keeps spinning in an infinite loop. From what I have found out this boils down to using gcov --all-blocks which is what lcov does with branch coverage enabled. It is supposed to be fixed in gcc 4.8+ but I see this here with 5.3.1. So its either a regression or not completely fixed. In any case we will ignore branch coverage for now. I hoped it would work well but it did only for a while and having line and function coverage is better than having nothing. --- .lcov-config | 2 -- Makefile.am | 16 ++++++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/.lcov-config b/.lcov-config index ef201f5..b069cdd 100644 --- a/.lcov-config +++ b/.lcov-config @@ -1,3 +1 @@ geninfo_auto_base=1 -lcov_branch_coverage=1 -genhtml_branch_coverage=1 diff --git a/Makefile.am b/Makefile.am index cf10724..4190502 100644 --- a/Makefile.am +++ b/Makefile.am @@ -451,16 +451,16 @@ lcov-reset: lcov-baseline: $(MKDIR_P) $(top_builddir)/coverage - lcov --capture --initial --compat-libtool --no-external --output-file $(top_builddir)/coverage/coverage-baseline.info --directory $(top_builddir) --config-file .lcov-config --rc lcov_branch_coverage=1 + lcov --capture --initial --compat-libtool --no-external --output-file $(top_builddir)/coverage/coverage-baseline.info --directory $(top_builddir) --config-file .lcov-config lcov-report: - lcov --capture --compat-libtool --no-external --output-file $(top_builddir)/coverage/coverage-check.info --directory $(top_builddir) --config-file .lcov-config --rc lcov_branch_coverage=1 - lcov --no-external --compat-libtool --add-tracefile $(top_builddir)/coverage/coverage-baseline.info --add-tracefile $(top_builddir)/coverage/coverage-check.info --output-file $(top_builddir)/coverage/coverage.info --config-file .lcov-config --rc lcov_branch_coverage=1 - lcov --no-external --compat-libtool --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info --config-file .lcov-config --rc lcov_branch_coverage=1 - lcov --no-external --compat-libtool --remove $(top_builddir)/coverage/coverage.cleaned.info '*/tests/*' --output-file $(top_builddir)/coverage/coverage.cleaned2.info --config-file .lcov-config --rc lcov_branch_coverage=1 - lcov --no-external --compat-libtool --remove $(top_builddir)/coverage/coverage.cleaned2.info '*NONE*' --output-file $(top_builddir)/coverage/coverage.cleaned3.info --config-file .lcov-config --rc lcov_branch_coverage=1 - lcov --no-external --compat-libtool --remove $(top_builddir)/coverage/coverage.cleaned3.info '*/doc/*' --output-file $(top_builddir)/coverage/coverage.cleaned4.info --config-file .lcov-config --rc lcov_branch_coverage=1 - lcov --no-external --compat-libtool --remove $(top_builddir)/coverage/coverage.cleaned4.info '*usr/include*' --output-file $(top_builddir)/coverage/coverage.cleaned5.info --config-file .lcov-config --rc lcov_branch_coverage=1 + lcov --capture --compat-libtool --no-external --output-file $(top_builddir)/coverage/coverage-check.info --directory $(top_builddir) --config-file .lcov-config + lcov --no-external --compat-libtool --add-tracefile $(top_builddir)/coverage/coverage-baseline.info --add-tracefile $(top_builddir)/coverage/coverage-check.info --output-file $(top_builddir)/coverage/coverage.info --config-file .lcov-config + lcov --no-external --compat-libtool --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info --config-file .lcov-config + lcov --no-external --compat-libtool --remove $(top_builddir)/coverage/coverage.cleaned.info '*/tests/*' --output-file $(top_builddir)/coverage/coverage.cleaned2.info --config-file .lcov-config + lcov --no-external --compat-libtool --remove $(top_builddir)/coverage/coverage.cleaned2.info '*NONE*' --output-file $(top_builddir)/coverage/coverage.cleaned3.info --config-file .lcov-config + lcov --no-external --compat-libtool --remove $(top_builddir)/coverage/coverage.cleaned3.info '*/doc/*' --output-file $(top_builddir)/coverage/coverage.cleaned4.info --config-file .lcov-config + lcov --no-external --compat-libtool --remove $(top_builddir)/coverage/coverage.cleaned4.info '*usr/include*' --output-file $(top_builddir)/coverage/coverage.cleaned5.info --config-file .lcov-config genhtml --config-file .lcov-config --legend -t "$(PACKAGE_STRING)" -o $(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned5.info @echo "Coverage Report at $(top_builddir)/coverage/html" --