]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-94759: Create LCOV report with branch coverage (GH-94793)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 13 Jul 2022 15:01:15 +0000 (08:01 -0700)
committerGitHub <noreply@github.com>
Wed, 13 Jul 2022 15:01:15 +0000 (08:01 -0700)
(cherry picked from commit f5c02afaff43f4ed7f4ac74d7c90171e56c2b2d7)

Co-authored-by: Christian Heimes <christian@python.org>
Makefile.pre.in

index 3d0e279dba71de5723031f5fc5cc79d14ef6c6d8..f43956b6b7cf6c42e6bbcfdd3d1a95c75b21954f 100644 (file)
@@ -316,7 +316,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 ===
@@ -653,25 +654,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' \
@@ -679,7 +679,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"