From f5c02afaff43f4ed7f4ac74d7c90171e56c2b2d7 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Wed, 13 Jul 2022 16:35:28 +0200 Subject: [PATCH] gh-94759: Create LCOV report with branch coverage (GH-94793) --- Makefile.pre.in | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index e1dc503059ec28..77696fca940787 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -318,7 +318,8 @@ PROFILE_TASK= @PROFILE_TASK@ # report files for gcov / lcov coverage report COVERAGE_INFO= $(abs_builddir)/coverage.info COVERAGE_REPORT=$(abs_builddir)/lcov-report -COVERAGE_REPORT_OPTIONS=--no-branch-coverage --title "CPython lcov report" +COVERAGE_LCOV_OPTIONS=--rc lcov_branch_coverage=1 +COVERAGE_REPORT_OPTIONS=--rc lcov_branch_coverage=1 --branch-coverage --title "CPython $(VERSION) LCOV report [commit $(shell $(GITVERSION))]" # === Definitions added by makesetup === @@ -651,25 +652,24 @@ profile-opt: profile-run-stamp coverage: @echo "Building with support for coverage checking:" $(MAKE) clean - $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) -O0 -pg --coverage" LIBS="$(LIBS) --coverage" + $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) -O0 -pg --coverage" LDFLAGS="$(LDFLAGS) --coverage" coverage-lcov: @echo "Creating Coverage HTML report with LCOV:" @rm -f $(COVERAGE_INFO) @rm -rf $(COVERAGE_REPORT) - @lcov --capture --directory $(abs_builddir) \ + @lcov $(COVERAGE_LCOV_OPTIONS) --capture \ + --directory $(abs_builddir) \ --base-directory $(realpath $(abs_builddir)) \ --path $(realpath $(abs_srcdir)) \ --output-file $(COVERAGE_INFO) @ # remove 3rd party modules, system headers and internal files with @ # debug, test or dummy functions. - @lcov --remove $(COVERAGE_INFO) \ + @lcov $(COVERAGE_LCOV_OPTIONS) --remove $(COVERAGE_INFO) \ '*/Modules/_blake2/impl/*' \ '*/Modules/_ctypes/libffi*/*' \ '*/Modules/_decimal/libmpdec/*' \ '*/Modules/expat/*' \ - '*/Modules/zlib/*' \ - '*/Include/*' \ '*/Modules/xx*.c' \ '*/Python/pyfpe.c' \ '*/Python/pystrcmp.c' \ @@ -677,7 +677,8 @@ coverage-lcov: '/usr/local/include/*' \ '/usr/lib/gcc/*' \ --output-file $(COVERAGE_INFO) - @genhtml $(COVERAGE_INFO) --output-directory $(COVERAGE_REPORT) \ + @genhtml $(COVERAGE_INFO) \ + --output-directory $(COVERAGE_REPORT) \ $(COVERAGE_REPORT_OPTIONS) @echo @echo "lcov report at $(COVERAGE_REPORT)/index.html"