steps:
- script: |
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- # see https://formulae.brew.sh/ for package names
- brew install autoconf \
+ displayName: 'Install Homebrew'
+ - script: |
+ brew install pkg-config \
+ autoconf \
automake \
libtool \
bison \
- re2c \
- pkg-config \
+ re2c
+ displayName: 'Install Build Tools'
+ - script: |
+ brew install openssl@1.1 \
krb5 \
bzip2 \
enchant \
freetype \
intltool \
icu4c \
- readline \
libiconv \
zlib \
t1lib \
libzip \
gmp \
tidyp \
- libxml2\
- openssl@1.1 \
+ libxml2 \
+ libxslt \
postgresql
brew link icu4c gettext --force
- displayName: 'brew'
+ displayName: 'Install Build Dependencies'
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/krb5/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/libffi/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/libxml2/lib/pkgconfig"
+ export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/libxslt/lib/pkgconfig"
+ export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/zlib/lib/pkgconfig"
./buildconf --force
./configure ${{ parameters.configurationParameters }} \
--prefix=/usr/local \
--enable-exif \
--with-zip \
--with-zlib \
- --with-zlib-dir=/usr \
--enable-soap \
--enable-xmlreader \
--with-xsl \
--with-readline=/usr/local/opt/readline \
--enable-mbstring \
--with-curl \
- --with-gettext==/usr/local/opt/gettext \
+ --with-gettext=/usr/local/opt/gettext \
--enable-sockets \
--with-bz2=/usr/local/opt/bzip2 \
--with-openssl \
configurationName: ${{ parameters.configurationName }}
runTestsName: 'OpCache'
runTestsParameters: -d zend_extension=opcache.so -d opcache.enable_cli=1
- - ${{ if ne(variables['Build.SourceBranch'], 'refs/heads/PHP-7.4') }}:
- - template: test.yml
- parameters:
- configurationName: ${{ parameters.configurationName }}
- runTestsName: 'JIT'
- runTestsParameters: -d zend_extension=opcache.so -d opcache.enable_cli=1 -d opcache.jit_buffer_size=16M
export TEST_PHP_JUNIT=junit.xml
export REPORT_EXIT_STATUS=no
export SKIP_IO_CAPTURE_TESTS=1
+ export CI_NO_IPV6=1
rm -rf junit.xml | true
/usr/local/bin/php run-tests.php -P -q \
-j$(sysctl -n hw.ncpu) \
testResultsFormat: 'JUnit'
testResultsFiles: junit.xml
testRunTitle: '${{ parameters.configurationName }} ${{ parameters.runTestsName }}'
- failTaskOnFailedTests: false
+ failTaskOnFailedTests: true
displayName: 'Export ${{ parameters.configurationName }} ${{ parameters.runTestsName }} Results'
condition: or(succeeded(), failed())
} catch (Throwable $e) {
die('skip PHP symbols not available');
}
+
+if (PHP_OS == "Darwin") {
+ die("xfail there is a known leak here");
+}
?>
--INI--
ffi.enable=1
$pid=pcntl_fork();
if ($pid==0) {
- sleep(10);
+ while(1);
exit;
} else {
$options=0;
<?php
-if (!defined("AF_INET6")) {
+if (getenv("CI_NO_IPV6") || !defined("AF_INET6")) {
die('skip no IPv6 support');
}
if (@stream_socket_client('udp://[::1]:8888') === false)
die('skip no IPv6 support');
+
if (!extension_loaded('sockets')) {
die('skip sockets extension not available.');
}
-if (!defined('IPPROTO_IPV6')) {
+if (getenv('CI_NO_IPV6') || !defined('IPPROTO_IPV6')) {
die('skip IPv6 not available.');
}
$level = IPPROTO_IPV6;
unlink ($filename);
die('SKIP Test cannot be run as root.');
}
+if (@socket_create_listen(80)) {
+ die('SKIP Test cannot be run in environment that will allow binding to port 80 (azure)');
+}
--FILE--
<?php
-$sock = socket_create_listen(PHP_OS == "Darwin" ? 427 : 80);
+$sock = socket_create_listen(80);
--EXPECTF--
Warning: socket_create_listen(): unable to bind to given address [13]: Permission denied in %s on line %d
--CLEAN--
echo "*** Testing flock() fun with file and dir ***\n";
$file_path = __DIR__;
-$file_handle = fopen("$file_path/lock.tmp", "w");
+$lock_file = preg_replace("~\.phpt?$~", null, __FILE__);
+
+$file_handle = fopen($lock_file, "w");
var_dump(flock($file_handle, LOCK_SH|LOCK_NB));
var_dump(flock($file_handle, LOCK_UN));
var_dump(flock($file_handle, LOCK_EX));
var_dump(flock($file_handle, LOCK_UN));
fclose($file_handle);
-unlink("$file_path/lock.tmp");
+unlink($lock_file);
+
+$lock_dir = sprintf("%s.dir", preg_replace("~\.phpt?$~", null, __FILE__));
-mkdir("$file_path/dir");
-$dir_handle = opendir("$file_path/dir");
+mkdir($lock_dir);
+$dir_handle = opendir($lock_dir);
var_dump(flock($dir_handle, LOCK_SH|LOCK_NB));
var_dump(flock($dir_handle, LOCK_UN));
var_dump(flock($dir_handle, LOCK_EX));
var_dump(flock($dir_handle, LOCK_UN));
closedir($dir_handle);
-rmdir("$file_path/dir");
+rmdir($lock_dir);
echo "\n*** Done ***\n";
?>
echo "*** Testing error conditions ***\n";
-$file = __DIR__."/flock.tmp";
+$file = preg_replace("~\.phpt?$~", null, __FILE__);
$fp = fopen($file, "w");
/* array of operatons */
echo "*** Testing flock() fun with the various operation and
wouldblock values ***\n";
-$file = __DIR__."/flock.tmp";
+
+$file = preg_replace("~\.phpt?$~", null, __FILE__);
$fp = fopen($file, "w");
/* array of operatons */
+++ /dev/null
---TEST--
-mixed stream_socket_enable_crypto(resource $stream , bool $enable [, int $crypto_type [, resource $session_stream ]] ) ;
---CREDITS--
-marcosptf - <marcosptf@yahoo.com.br> - #phparty7 - @phpsp - novatec/2015 - sao paulo - br
---SKIPIF--
-<?php
-if (!extension_loaded('openssl')) {
- die('skip ext/openssl required');
-}
-?>
---FILE--
-<?php
-$serverUri = "tcp://127.0.0.1:31854";
-$sock = stream_socket_server($serverUri, $errno, $errstr);
-
-if (is_resource($sock)) {
- var_dump(stream_socket_enable_crypto($sock, false));
- var_dump(stream_socket_enable_crypto($sock, true));
- var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT));
- var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT));
- var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv2_CLIENT));
- var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_TLS_CLIENT));
- var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv23_SERVER));
- var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv2_SERVER));
- var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv3_SERVER));
- var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_TLS_SERVER));
-} else {
- die("Test stream_socket_enable_crypto has failed; Unable to connect: {$errstr} ({$errno})");
-}
-?>
---CLEAN--
-<?php
-unset($serverUri);
-unset($sock);
-unset($errno);
-unset($errstr);
-?>
---EXPECTF--
-bool(false)
-
-Warning: stream_socket_enable_crypto(): When enabling encryption you must specify the crypto type in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL: %a in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
-
-Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
-bool(false)
if (!extension_loaded("zlib")) {
print "skip - ZLIB extension not loaded";
}
+
+if (PHP_OS == "Darwin") {
+ print "skip - OS is encoded in headers, tested header is non Darwin";
+}
?>
--FILE--
<?php
if (!extension_loaded("zlib")) {
print "skip - ZLIB extension not loaded";
}
+
+if (PHP_OS == "Darwin") {
+ print "skip - OS is encoded in headers, tested header is non Darwin";
+}
?>
--FILE--
<?php
}
request_started = 1;
CG(start_lineno) = lineno;
+
+ zend_register_bool_constant(
+ ZEND_STRL("PHP_CLI_PROCESS_TITLE"),
+ is_ps_title_available() == PS_TITLE_SUCCESS,
+ CONST_CS, 0);
+
*arg_excp = arg_free; /* reconstuct argv */
if (hide_argv) {
--SKIPIF--
<?php
if (PHP_SAPI !== "cli")
- die("skip");
+ die("skip cli process title not available in non-cli SAPI");
+if (!PHP_CLI_PROCESS_TITLE)
+ die("skip process title not available (disabled or unsupported)");
?>
--FILE--
<?php
Check cli_process_title support on Unix
--SKIPIF--
<?php
+if (PHP_SAPI !== "cli")
+ die("skip cli process title not available in non-cli SAPI");
+if (!PHP_CLI_PROCESS_TITLE)
+ die("skip process title not available (disabled or unsupported)");
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
die("skip");
?>
--SKIPIF--
<?php
if (PHP_SAPI !== "cli")
- die("skip");
+ die("skip cli process title not available in non-cli SAPI");
+if (!PHP_CLI_PROCESS_TITLE)
+ die("skip process title not available (disabled or unsupported)");
?>
--FILE--
<?php