diff options
author | Gerard Roche <gerardroche@users.noreply.github.com> | 2019-09-25 19:13:17 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-10-11 17:44:36 +0200 |
commit | db54b0fa187e874ae8d02104cb3471cdcd89e9d2 (patch) | |
tree | 7051f349b7ea4fd5ffac8e8d8f7408e962b942c4 /build | |
parent | aa10e208303e8a36f543b2c0afbc15f1ca980410 (diff) | |
download | php-git-db54b0fa187e874ae8d02104cb3471cdcd89e9d2.tar.gz |
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.
Diffstat (limited to 'build')
-rw-r--r-- | build/Makefile.gcov | 62 |
1 files changed, 44 insertions, 18 deletions
diff --git a/build/Makefile.gcov b/build/Makefile.gcov index 944739aff3..a206523061 100644 --- a/build/Makefile.gcov +++ b/build/Makefile.gcov @@ -1,34 +1,43 @@ # -# LCOV +# GCOV # LTP = lcov LTP_GENHTML = genhtml -lcov: lcov-html +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-test: lcov-clean-data test +lcov: lcov-html -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 |