Skip to content

Commit

Permalink
Merge branch 'PHP-7.4'
Browse files Browse the repository at this point in the history
  • Loading branch information
nikic committed Oct 11, 2019
2 parents 17f9136 + db54b0f commit 242b554
Show file tree
Hide file tree
Showing 6 changed files with 103 additions and 27 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,8 @@ tmp-php.ini
# ------------------------------------------------------------------------------
*.gcda
*.gcno
/gcovr.xml
/gcovr_html/
/lcov_html/
/php_lcov.info

Expand Down
4 changes: 4 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,7 @@ jobs:
--enable-debug --enable-zts
CFLAGS='-fsanitize=undefined,address -fno-sanitize-recover -DZEND_TRACK_ARENA_ALLOC'
LDFLAGS='-fsanitize=undefined,address'
- template: azure/coverage_job.yml
parameters:
configurationName: COVERAGE_DEBUG_ZTS
configurationParameters: '--enable-debug --disable-zts'
42 changes: 42 additions & 0 deletions azure/coverage_job.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
parameters:
configurationName: ''
configurationParameters: ''
runTestsParameters: ''
timeoutInMinutes: 60

jobs:
- job: ${{ parameters.configurationName }}
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
pool:
vmImage: 'ubuntu-latest'
steps:
- template: apt.yml
- script: |
sudo -H pip install gcovr
displayName: 'Install gcovr'
- template: configure.yml
parameters:
configurationParameters: --enable-gcov ${{ parameters.configurationParameters }}
- script: make -j$(/usr/bin/nproc) >/dev/null
displayName: 'Make Build'
- template: install.yml
- script: |
mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
sudo -u postgres psql -c "CREATE DATABASE test;"
displayName: 'Setup'
- template: test.yml
parameters:
configurationName: ${{ parameters.configurationName }}
runTestsParameters: ${{ parameters.runTestsParameters }}
- script: |
make gcovr-xml
mv gcovr.xml coverage.xml
displayName: 'Generate ${{ parameters.configurationName }} Test Coverage'
condition: or(succeeded(), failed())
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: 'Cobertura'
summaryFileLocation: coverage.xml
displayName: 'Publish ${{ parameters.configurationName }} Test Coverage'
condition: or(succeeded(), failed())
10 changes: 10 additions & 0 deletions azure/install.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
steps:
- script: |
sudo make install
sudo mkdir /etc/php.d
sudo chmod 777 /etc/php.d
echo mysqli.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/mysqli.ini
echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/pdo_mysql.ini
echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini
echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
displayName: 'Install Build'
10 changes: 1 addition & 9 deletions azure/job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,7 @@ jobs:
configurationParameters: ${{ parameters.configurationParameters }}
- script: make -j$(/usr/bin/nproc) >/dev/null
displayName: 'Make Build'
- script: |
sudo make install
sudo mkdir /etc/php.d
sudo chmod 777 /etc/php.d
echo mysqli.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/mysqli.ini
echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/pdo_mysql.ini
echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini
echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
displayName: 'Install Build'
- template: install.yml
- script: |
mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
Expand Down
62 changes: 44 additions & 18 deletions build/Makefile.gcov
Original file line number Diff line number Diff line change
@@ -1,38 +1,64 @@
#
# 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
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

0 comments on commit 242b554

Please sign in to comment.