mirror of
https://github.com/php/php-src.git
synced 2026-04-02 13:43:02 +02:00
Azure: Publish code coverage results
* Add an Azure Publish Code Coverage Results task * Add `make gcovr-html` to generate a gcovr test coverage report in HTML * Add `make gcovr-xml` to generate a gcovr test coverage report in XML * Remove `test` target dependency from `make lcov-html`; Run the two targets together instead: `make test lcov-html`. Re: https://github.com/php/php-src/pull/4739#issuecomment-534911441 See: https://externals.io/message/107113, https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/test/publish-code-coverage-results?view=azure-devops, and https://github.com/php/php-src/pull/4759.
This commit is contained in:
committed by
Nikita Popov
parent
aa10e20830
commit
db54b0fa18
@@ -1,34 +1,43 @@
|
||||
#
|
||||
# LCOV
|
||||
# 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/*'
|
||||
|
||||
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
|
||||
|
||||
lcov-test: lcov-clean-data test
|
||||
|
||||
php_lcov.info: lcov-test
|
||||
php_lcov.info:
|
||||
@echo "Generating lcov data for $@"
|
||||
@$(LTP) --capture --no-external --directory . --output-file $@
|
||||
$(LTP) --capture --no-external --directory . --output-file $@
|
||||
@echo "Stripping bundled libraries from $@"
|
||||
@$(LTP) --remove $@ \
|
||||
'*/<stdout>' \
|
||||
'$(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/*' \
|
||||
--output-file $@
|
||||
$(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
|
||||
$(LTP_GENHTML) --legend --output-directory lcov_html/ --title "PHP Code Coverage" php_lcov.info
|
||||
|
||||
lcov-clean:
|
||||
rm -f php_lcov.info
|
||||
@@ -36,3 +45,20 @@ lcov-clean:
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user