mirror of
https://github.com/php/php-src.git
synced 2024-12-05 07:46:06 +08:00
0dfca74be2
This uses a separate job template, because msan requires all used libraries (apart from glibc) to be instrumented, so we can't link any external libraries unless we recompile them. As such, we need a much more minimal configure.
77 lines
2.6 KiB
YAML
77 lines
2.6 KiB
YAML
parameters:
|
|
configurationName: ''
|
|
configurationParameters: ''
|
|
runTestsParameters: ''
|
|
timeoutInMinutes: 60
|
|
|
|
jobs:
|
|
- job: ${{ parameters.configurationName }}
|
|
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
steps:
|
|
- template: apt.yml
|
|
- script: |
|
|
export CC=clang
|
|
export CXX=clang++
|
|
export CFLAGS="-fsanitize=memory -DZEND_TRACK_ARENA_ALLOC"
|
|
export LDFLAGS="-fsanitize=memory"
|
|
./buildconf --force
|
|
# msan requires all used libraries to be instrumented,
|
|
# so we should avoiding linking against anything but libc here
|
|
./configure ${{ parameters.configurationParameters }} \
|
|
--prefix=/usr \
|
|
--without-sqlite3 \
|
|
--without-pdo-sqlite \
|
|
--without-libxml \
|
|
--disable-dom \
|
|
--disable-simplexml \
|
|
--disable-xml \
|
|
--disable-xmlreader \
|
|
--disable-xmlwriter \
|
|
--without-pcre-jit \
|
|
--enable-phpdbg \
|
|
--enable-fpm \
|
|
--with-pdo-mysql=mysqlnd \
|
|
--with-mysqli=mysqlnd \
|
|
--without-pear \
|
|
--enable-exif \
|
|
--enable-sysvsem \
|
|
--enable-sysvshm \
|
|
--enable-shmop \
|
|
--enable-pcntl \
|
|
--enable-mbstring \
|
|
--disable-mbregex \
|
|
--enable-sockets \
|
|
--enable-bcmath \
|
|
--enable-calendar \
|
|
--enable-ftp \
|
|
--enable-zend-test \
|
|
--enable-werror \
|
|
--with-config-file-path=/etc \
|
|
--with-config-file-scan-dir=/etc/php.d
|
|
displayName: 'Configure Build'
|
|
- 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
|
|
displayName: 'Install Build'
|
|
- script: |
|
|
mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
|
|
displayName: 'Setup'
|
|
- 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 -d opcache.enable_cli=1
|