diff options
Diffstat (limited to 'azure')
-rw-r--r-- | azure/community_job.yml | 20 | ||||
-rw-r--r-- | azure/configure.yml | 2 | ||||
-rw-r--r-- | azure/file_cache_job.yml | 54 | ||||
-rw-r--r-- | azure/i386/job.yml | 18 | ||||
-rw-r--r-- | azure/i386/test.yml | 33 | ||||
-rw-r--r-- | azure/job.yml | 13 | ||||
-rw-r--r-- | azure/macos/job.yml | 15 | ||||
-rw-r--r-- | azure/msan_job.yml | 5 | ||||
-rw-r--r-- | azure/tests.yml | 34 |
9 files changed, 132 insertions, 62 deletions
diff --git a/azure/community_job.yml b/azure/community_job.yml index 87b06184ba..e7b99cd374 100644 --- a/azure/community_job.yml +++ b/azure/community_job.yml @@ -46,6 +46,7 @@ jobs: echo zend_extension=opcache.so > /etc/php.d/opcache.ini echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini + echo opcache.jit_buffer_size=1G >> /etc/php.d/opcache.ini displayName: 'Install Build' - script: | git clone https://github.com/laravel/framework.git --branch=master --depth=1 @@ -56,6 +57,10 @@ jobs: # Avoid test using exit(), which thus leaks. # We can use USE_TRACKED_ALLOC=1 if more of these show up. sed -i "s/function_exists('pcntl_fork')/false/" tests/Filesystem/FilesystemTest.php + # Work around PHP 8 incompatibility in Doctrine + sed -i 's/function query()/function query(...$args)/' vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php + sed -i 's/function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)/function setFetchMode($fetchMode, $arg2 = null, $arg3 = null, ...$args)/' vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php + sed -i 's/public function getMessage();//' vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DriverException.php php vendor/bin/phpunit displayName: 'Test Laravel' - script: | @@ -63,13 +68,20 @@ jobs: cd symfony php7.3 /usr/bin/composer install --no-progress php7.3 ./phpunit install + # Work around PHP 8 incompatibility in Doctrine + sed -i 's/function query()/function query(...$args)/' vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php export USE_ZEND_ALLOC=0 export USE_TRACKED_ALLOC=1 export ASAN_OPTIONS=exitcode=139 - php ./phpunit --exclude-group tty,benchmark,intl-data,transient - if [ $? -gt 128 ]; then - exit 1 - fi + export SYMFONY_DEPRECATIONS_HELPER=max[total]=999 + X=0 + for component in $(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -printf '%h\n'); do + php ./phpunit $component --exclude-group tty,benchmark,intl-data,transient; + if [ $? -gt 128 ]; then + X=1; + fi + done + exit $X displayName: 'Test Symfony' condition: or(succeeded(), failed()) - script: | diff --git a/azure/configure.yml b/azure/configure.yml index 1d3374bfa0..e9e49bf98a 100644 --- a/azure/configure.yml +++ b/azure/configure.yml @@ -29,7 +29,6 @@ steps: --enable-xmlreader \ --with-xsl \ --with-tidy \ - --with-xmlrpc \ --enable-sysvsem \ --enable-sysvshm \ --enable-shmop \ @@ -56,6 +55,7 @@ steps: --with-password-argon2 \ --with-mhash \ --with-sodium \ + --enable-dba \ --enable-werror \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d diff --git a/azure/file_cache_job.yml b/azure/file_cache_job.yml new file mode 100644 index 0000000000..7c8b392a66 --- /dev/null +++ b/azure/file_cache_job.yml @@ -0,0 +1,54 @@ +parameters: + configurationName: '' + configurationParameters: '' + runTestsParameters: '' + timeoutInMinutes: 60 + +jobs: + - job: ${{ parameters.configurationName }} + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + pool: + vmImage: 'ubuntu-18.04' + steps: + - template: apt.yml + - template: configure.yml + parameters: + configurationParameters: ${{ parameters.configurationParameters }} + - script: make -j$(/usr/bin/nproc) >/dev/null + displayName: 'Make Build' + - template: install.yml + - template: setup.yml + - template: test.yml + parameters: + configurationName: ${{ parameters.configurationName }} + runTestsName: 'File Cache (prime)' + runTestsParameters: >- + ${{ parameters.runTestsParameters }} + -d zend_extension=opcache.so + --file-cache-prime + - template: test.yml + parameters: + configurationName: ${{ parameters.configurationName }} + runTestsName: 'File Cache (use)' + runTestsParameters: >- + ${{ parameters.runTestsParameters }} + -d zend_extension=opcache.so + --file-cache-use + - template: test.yml + parameters: + configurationName: ${{ parameters.configurationName }} + runTestsName: 'File Cache Only (prime)' + runTestsParameters: >- + ${{ parameters.runTestsParameters }} + -d zend_extension=opcache.so + --file-cache-prime + -d opcache.file_cache_only=1 + - template: test.yml + parameters: + configurationName: ${{ parameters.configurationName }} + runTestsName: 'File Cache Only (use)' + runTestsParameters: >- + ${{ parameters.runTestsParameters }} + -d zend_extension=opcache.so + --file-cache-use + -d opcache.file_cache_only=1 diff --git a/azure/i386/job.yml b/azure/i386/job.yml index 83e8705f0f..aa70b39f9b 100644 --- a/azure/i386/job.yml +++ b/azure/i386/job.yml @@ -1,17 +1,19 @@ parameters: configurationName: '' configurationParameters: '' + timeoutInMinutes: 75 jobs: - job: ${{ parameters.configurationName }} + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} pool: - vmImage: 'ubuntu-18.04' + vmImage: 'ubuntu-20.04' steps: - template: apt.yml - script: | ./buildconf --force - export CFLAGS=-m32 - export CXXFLAGS=-m32 + export CFLAGS="-m32 -msse2" + export CXXFLAGS="-m32 -msse2" export LDFLAGS=-L/usr/lib/i386-linux-gnu export PKG_CONFIG=/usr/bin/i686-linux-gnu-pkg-config ./configure ${{ parameters.configurationParameters }} \ @@ -39,7 +41,6 @@ jobs: --enable-xmlreader \ --with-xsl \ --with-tidy \ - --with-xmlrpc \ --enable-sysvsem \ --enable-sysvshm \ --enable-shmop \ @@ -63,6 +64,7 @@ jobs: --enable-zend-test \ --with-mhash \ --with-sodium \ + --enable-dba \ --enable-werror \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d @@ -86,11 +88,7 @@ jobs: #sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';" #sudo -u postgres psql -c "CREATE DATABASE test;" displayName: 'Setup' - - template: test.yml + - template: ../tests.yml parameters: configurationName: ${{ parameters.configurationName }} - - template: test.yml - parameters: - configurationName: ${{ parameters.configurationName }} - runTestsName: 'OpCache' - runTestsParameters: -d zend_extension=opcache.so + runTestsParameters: ${{ parameters.runTestsParameters }} diff --git a/azure/i386/test.yml b/azure/i386/test.yml deleted file mode 100644 index 1e2e1d6a1e..0000000000 --- a/azure/i386/test.yml +++ /dev/null @@ -1,33 +0,0 @@ -parameters: - runTestsName: '' - runTestsParameters: '' - -steps: - - script: | - export MYSQL_TEST_USER=root - export MYSQL_TEST_PASSWD=root - export PDO_MYSQL_TEST_DSN="mysql:host=localhost;dbname=test" - export PDO_MYSQL_TEST_USER=root - export PDO_MYSQL_TEST_PASS=root - export TEST_PHP_JUNIT=junit.xml - export REPORT_EXIT_STATUS=no - export SKIP_IO_CAPTURE_TESTS=1 - rm -rf junit.xml | true - php run-tests.php -P -q \ - -j$(/usr/bin/nproc) \ - -g FAIL,XFAIL,BORK,WARN,LEAK,XLEAK,SKIP \ - --offline \ - --show-diff \ - --show-slow 1000 \ - --set-timeout 120 \ - ${{ parameters.runTestsParameters }} - displayName: 'Test ${{ parameters.configurationName }} ${{ parameters.runTestsName }}' - condition: or(succeeded(), failed()) - - task: PublishTestResults@2 - inputs: - testResultsFormat: 'JUnit' - testResultsFiles: junit.xml - testRunTitle: '${{ parameters.configurationName }} ${{ parameters.runTestsName }}' - failTaskOnFailedTests: true - displayName: 'Export ${{ parameters.configurationName }} ${{ parameters.runTestsName }} Results' - condition: or(succeeded(), failed()) diff --git a/azure/job.yml b/azure/job.yml index 2893653b18..f85744eede 100644 --- a/azure/job.yml +++ b/azure/job.yml @@ -2,13 +2,13 @@ parameters: configurationName: '' configurationParameters: '' runTestsParameters: '' - timeoutInMinutes: 60 + timeoutInMinutes: 75 jobs: - job: ${{ parameters.configurationName }} timeoutInMinutes: ${{ parameters.timeoutInMinutes }} pool: - vmImage: 'ubuntu-18.04' + vmImage: 'ubuntu-20.04' steps: - template: apt.yml - template: configure.yml @@ -18,14 +18,7 @@ jobs: displayName: 'Make Build' - template: install.yml - template: setup.yml - - template: test.yml + - template: tests.yml parameters: configurationName: ${{ parameters.configurationName }} runTestsParameters: ${{ parameters.runTestsParameters }} - - template: test.yml - parameters: - configurationName: ${{ parameters.configurationName }} - runTestsName: 'OpCache' - runTestsParameters: >- - ${{ parameters.runTestsParameters }} - -d zend_extension=opcache.so diff --git a/azure/macos/job.yml b/azure/macos/job.yml index 4b979d41a8..07dd6d4803 100644 --- a/azure/macos/job.yml +++ b/azure/macos/job.yml @@ -5,7 +5,7 @@ parameters: jobs: - job: ${{ parameters.configurationName }} pool: - vmImage: 'macOS-10.14' + vmImage: 'macOS-10.15' steps: - template: brew.yml - script: | @@ -40,7 +40,6 @@ jobs: --enable-xmlreader \ --with-xsl \ --with-tidy=/usr/local/opt/tidyp \ - --with-xmlrpc \ --with-libxml \ --enable-sysvsem \ --enable-sysvshm \ @@ -66,6 +65,7 @@ jobs: --enable-intl \ --with-mhash \ --with-sodium \ + --enable-dba \ --enable-werror \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d @@ -85,3 +85,14 @@ jobs: configurationName: ${{ parameters.configurationName }} runTestsName: 'OpCache' runTestsParameters: -d zend_extension=opcache.so -d opcache.enable_cli=1 -d opcache.protect_memory=1 + - ${{ if eq(variables['Build.Reason'], 'Schedule') }}: + - template: test.yml + parameters: + configurationName: ${{ parameters.configurationName }} + runTestsName: 'Function JIT' + runTestsParameters: -d zend_extension=opcache.so -d opcache.enable_cli=1 -d opcache.protect_memory=1 -d opcache.jit_buffer_size=16M -d opcache.jit=1205 + - template: test.yml + parameters: + configurationName: ${{ parameters.configurationName }} + runTestsName: 'Tracing JIT' + runTestsParameters: -d zend_extension=opcache.so -d opcache.enable_cli=1 -d opcache.protect_memory=1 -d opcache.jit_buffer_size=16M diff --git a/azure/msan_job.yml b/azure/msan_job.yml index 3c6cb4ca09..0c7475be5b 100644 --- a/azure/msan_job.yml +++ b/azure/msan_job.yml @@ -14,8 +14,7 @@ jobs: - script: | export CC=clang export CXX=clang++ - export CFLAGS="-fsanitize=memory -DZEND_TRACK_ARENA_ALLOC" - export LDFLAGS="-fsanitize=memory" + export CFLAGS="-DZEND_TRACK_ARENA_ALLOC" ./buildconf --force # msan requires all used libraries to be instrumented, # so we should avoiding linking against anything but libc here @@ -31,6 +30,7 @@ jobs: --disable-xmlreader \ --disable-xmlwriter \ --without-pcre-jit \ + --disable-opcache-jit \ --enable-phpdbg \ --enable-fpm \ --with-pdo-mysql=mysqlnd \ @@ -50,6 +50,7 @@ jobs: --enable-ftp \ --enable-zend-test \ --enable-werror \ + --enable-memory-sanitizer \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d displayName: 'Configure Build' diff --git a/azure/tests.yml b/azure/tests.yml new file mode 100644 index 0000000000..6142623398 --- /dev/null +++ b/azure/tests.yml @@ -0,0 +1,34 @@ +parameters: + configurationName: '' + runTestsParameters: '' + +steps: + - template: test.yml + parameters: + configurationName: ${{ parameters.configurationName }} + runTestsParameters: ${{ parameters.runTestsParameters }} + - template: test.yml + parameters: + configurationName: ${{ parameters.configurationName }} + runTestsName: 'OpCache' + runTestsParameters: >- + ${{ parameters.runTestsParameters }} + -d zend_extension=opcache.so + - ${{ if eq(variables['Build.Reason'], 'Schedule') }}: + - template: test.yml + parameters: + configurationName: ${{ parameters.configurationName }} + runTestsName: 'Function JIT' + runTestsParameters: >- + ${{ parameters.runTestsParameters }} + -d zend_extension=opcache.so + -d opcache.jit_buffer_size=16M + -d opcache.jit=1205 + - template: test.yml + parameters: + configurationName: ${{ parameters.configurationName }} + runTestsName: 'Tracing JIT' + runTestsParameters: >- + ${{ parameters.runTestsParameters }} + -d zend_extension=opcache.so + -d opcache.jit_buffer_size=16M |