mirror of
https://github.com/php/php-src.git
synced 2026-04-11 10:03:18 +02:00
lcov is emitting several errors for generated regex files that have no code
coverage data. The fix is to add the files to the lcov exlusion list.
This is not an issue for CI because it uses gcovr to generate code coverage.
The errors:
Processing ext/date/lib/parse_date.gcda
geninfo: WARNING: could not open /home/code/vendor/php/php-src/parse_date.re
geninfo: WARNING: could not open /home/code/vendor/php/php-src/<stdout>
geninfo: WARNING: some exclusion markers may be ignored
Processing ext/date/lib/parse_tz.gcda
Processing ext/date/lib/tm2unixtime.gcda
Processing ext/date/lib/parse_iso_intervals.gcda
geninfo: WARNING: could not open /home/code/vendor/php/php-src/<stdout>
geninfo: WARNING: could not open /home/code/vendor/php/php-src/parse_iso_intervals.re
geninfo: WARNING: some exclusion markers may be ignored
...
genhtml: ERROR: cannot read /home/code/vendor/php/php-src/parse_date.re
Processing file /home/code/vendor/php/php-src/parse_date.re
make: *** [Makefile:443: lcov-html] Error 2
Closes GH-5568.
67 lines
1.7 KiB
Makefile
67 lines
1.7 KiB
Makefile
#
|
|
# GCOV
|
|
#
|
|
|
|
LTP = lcov
|
|
LTP_GENHTML = genhtml
|
|
|
|
LCOV_EXCLUDES = \
|
|
'$(top_srcdir)/ext/bcmath/libbcmath/*' \
|
|
'$(top_srcdir)/ext/date/lib/*' \
|
|
'$(top_srcdir)/ext/fileinfo/libmagic/*' \
|
|
'$(top_srcdir)/ext/gd/libgd/*' \
|
|
'$(top_srcdir)/ext/hash/sha3/*' \
|
|
'$(top_srcdir)/ext/mbstring/libmbfl/*' \
|
|
'$(top_srcdir)/ext/opcache/jit/libudis86/*' \
|
|
'$(top_srcdir)/ext/pcre/pcre2lib/*' \
|
|
'$(top_srcdir)/ext/xmlrpc/libxmlrpc/*' \
|
|
'$(top_srcdir)/parse_date.re' \
|
|
'$(top_srcdir)/parse_iso_intervals.re'
|
|
|
|
GCOVR_EXCLUDES = \
|
|
'ext/bcmath/libbcmath/.*' \
|
|
'ext/date/lib/.*' \
|
|
'ext/fileinfo/libmagic/.*' \
|
|
'ext/gd/libgd/.*' \
|
|
'ext/hash/sha3/.*' \
|
|
'ext/mbstring/libmbfl/.*' \
|
|
'ext/opcache/jit/libudis86/.*' \
|
|
'ext/pcre/pcre2lib/.*' \
|
|
'ext/xmlrpc/libxmlrpc/.*'
|
|
|
|
lcov: lcov-html
|
|
|
|
php_lcov.info:
|
|
@echo "Generating lcov data for $@"
|
|
$(LTP) --capture --no-external --directory . --output-file $@
|
|
@echo "Stripping bundled libraries from $@"
|
|
$(LTP) --output-file $@ --remove $@ '*/<stdout>' $(LCOV_EXCLUDES)
|
|
|
|
lcov-html: php_lcov.info
|
|
@echo "Generating lcov HTML"
|
|
$(LTP_GENHTML) --legend --output-directory lcov_html/ --title "PHP Code Coverage" php_lcov.info
|
|
|
|
lcov-clean:
|
|
rm -f php_lcov.info
|
|
rm -rf lcov_html/
|
|
|
|
lcov-clean-data:
|
|
@find . -name \*.gcda -o -name \*.da -o -name \*.bbg? | xargs rm -f
|
|
|
|
gcovr-html:
|
|
@echo "Generating gcovr HTML"
|
|
@rm -rf gcovr_html/
|
|
@mkdir gcovr_html
|
|
gcovr -sr . -o gcovr_html/index.html --html --html-details \
|
|
--exclude-directories 'ext/date/lib$$' \
|
|
$(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$$' \
|
|
$(foreach lib, $(GCOVR_EXCLUDES), -e $(lib))
|
|
|
|
.PHONY: gcovr-html lcov-html php_lcov.info
|