]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-94759: Create LCOV report with branch coverage (GH-94793)
authorChristian Heimes <christian@python.org>
Wed, 13 Jul 2022 14:35:28 +0000 (16:35 +0200)
committerGitHub <noreply@github.com>
Wed, 13 Jul 2022 14:35:28 +0000 (16:35 +0200)
Makefile.pre.in

index e1dc503059ec286283d85cc62bd06702908921de..77696fca9407870d9c375c3e39f9f647c97462cf 100644 (file)
@@ -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"