mirror of
https://github.com/php/php-src.git
synced 2024-10-01 23:06:11 +00:00
9c1e1bbc05
While running these on HHVM I've run into a lot of parallelism issues. I'm backporting all the fixes I had to do in https://github.com/facebook/hiphop-php/blob/master/hphp/tools/import_zend_test.py#L650 to php core. Most of these changes were just filenames that were shared between tests, but I did more surgery on the fixed ports. I can apreciate port 31337 as much as the next nerd, but random ports are better for tests.
50 lines
1.2 KiB
PHP
50 lines
1.2 KiB
PHP
--TEST--
|
|
Streams Based IPv6 UDP Loopback test
|
|
--SKIPIF--
|
|
<?php # vim:ft=php:
|
|
/* If IPv6 is supported on the platform this will error out with code 111 -
|
|
* Connection refused. If IPv6 is NOT supported, $errno will be set to
|
|
* something else (indicating parse/getaddrinfo error)
|
|
* Note: Might be a good idea to export an IPv6 support indicator
|
|
* (such as AF_INET6 exported by ext/sockets), however, since we
|
|
* cannot tell for sure if IPv6 works until we probe it at run time,
|
|
* this isn't really practical.
|
|
*/
|
|
|
|
@stream_socket_client('tcp://[::1]:0', $errno);
|
|
if ($errno != 111) die('skip IPv6 not supported.');
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
|
|
for ($i=0; $i<100; $i++) {
|
|
$port = rand(10000, 65000);
|
|
/* Setup socket server */
|
|
$server = @stream_socket_server("udp://[::1]:$port", $errno, $errstr, STREAM_SERVER_BIND);
|
|
if ($server) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!$server) {
|
|
die('Unable to create AF_INET6 socket [server]');
|
|
}
|
|
|
|
/* Connect to it */
|
|
$client = stream_socket_client("udp://[::1]:$port");
|
|
if (!$client) {
|
|
die('Unable to create AF_INET6 socket [client]');
|
|
}
|
|
|
|
fwrite($client, "ABCdef123\n");
|
|
|
|
$data = fread($server, 10);
|
|
var_dump($data);
|
|
|
|
fclose($client);
|
|
fclose($server);
|
|
?>
|
|
--EXPECT--
|
|
string(10) "ABCdef123
|
|
"
|