Commit 7cfde6edba5 for php.net
commit 7cfde6edba5163db1f8e83cb3bbf3f982d2c64fd
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date: Fri Apr 3 16:38:13 2026 +0200
Ignore ZPP in gcovr (GH-21623)
The ZPP macros materialize into optimized code with many error branches that
aren't useful to test for every function. Ignore these lines completely by using
the gcovr --exclude-lines-by-pattern flag. For codecov to pick up on this
change, we generate the xml file manually and point to it in the codecov action.
Also move the ignore paths from codecov.yml to Makefile.gcov.
diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml
index 9eeff1455f8..ef213a53993 100644
--- a/.github/workflows/test-suite.yml
+++ b/.github/workflows/test-suite.yml
@@ -413,10 +413,15 @@ jobs:
with:
enableOpcache: true
jitType: tracing
+ - name: Generate coverage report
+ if: ${{ !cancelled() }}
+ run: make gcovr-xml
- uses: codecov/codecov-action@v5
if: ${{ !cancelled() }}
with:
+ disable_search: true
fail_ci_if_error: true
+ files: gcovr.xml
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
COMMUNITY:
diff --git a/build/Makefile.gcov b/build/Makefile.gcov
index de85893398c..d389cecdd19 100644
--- a/build/Makefile.gcov
+++ b/build/Makefile.gcov
@@ -22,8 +22,12 @@ GCOVR_EXCLUDES = \
'ext/fileinfo/libmagic/.*' \
'ext/gd/libgd/.*' \
'ext/hash/sha3/.*' \
+ 'ext/lexbor/lexbor/.*' \
'ext/mbstring/libmbfl/.*' \
- 'ext/pcre/pcre2lib/.*'
+ 'ext/pcre/pcre2lib/.*' \
+ 'ext/uri/uriparser/.*'
+
+GCOVR_EXCLUDE_LINES_BY_PATTERN = '.*\b(ZEND_PARSE_PARAMETERS_(START|END|NONE)|Z_PARAM_).*'
lcov: lcov-html
@@ -49,14 +53,14 @@ gcovr-html:
@rm -rf gcovr_html/
@mkdir gcovr_html
gcovr -sr . -o gcovr_html/index.html --html --html-details \
- --exclude-directories 'ext/date/lib$$' \
+ --exclude-lines-by-pattern $(GCOVR_EXCLUDE_LINES_BY_PATTERN) \
$(foreach lib, $(GCOVR_EXCLUDES), -e $(lib))
gcovr-xml:
@echo "Generating gcovr XML"
@rm -f gcovr.xml
gcovr -sr . -o gcovr.xml --xml \
- --exclude-directories 'ext/date/lib$$' \
+ --exclude-lines-by-pattern $(GCOVR_EXCLUDE_LINES_BY_PATTERN) \
$(foreach lib, $(GCOVR_EXCLUDES), -e $(lib))
.PHONY: gcovr-html lcov-html php_lcov.info
diff --git a/codecov.yml b/codecov.yml
deleted file mode 100644
index 4c7648e738c..00000000000
--- a/codecov.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-ignore:
- # bundled libraries
- - "ext/lexbor/lexbor/core"
- - "ext/lexbor/lexbor/css"
- - "ext/lexbor/lexbor/dom"
- - "ext/lexbor/lexbor/encoding"
- - "ext/lexbor/lexbor/html"
- - "ext/lexbor/lexbor/ns"
- - "ext/lexbor/lexbor/ports"
- - "ext/lexbor/lexbor/punycode"
- - "ext/lexbor/lexbor/tag"
- - "ext/lexbor/lexbor/unicode"
- - "ext/lexbor/lexbor/url"
- - "ext/pcre/pcre2lib"
- - "ext/uri/uriparser"