diff options
-rw-r--r-- | ext/standard/tests/network/tcp4loop.phpt | 34 | ||||
-rw-r--r-- | ext/standard/tests/network/tcp6loop.phpt | 42 | ||||
-rw-r--r-- | ext/standard/tests/network/udgloop.phpt | 37 | ||||
-rw-r--r-- | ext/standard/tests/network/udp4loop.phpt | 27 | ||||
-rw-r--r-- | ext/standard/tests/network/udp6loop.phpt | 35 | ||||
-rw-r--r-- | ext/standard/tests/network/unixloop.phpt | 44 |
6 files changed, 219 insertions, 0 deletions
diff --git a/ext/standard/tests/network/tcp4loop.phpt b/ext/standard/tests/network/tcp4loop.phpt new file mode 100644 index 0000000000..8bd1c46d7e --- /dev/null +++ b/ext/standard/tests/network/tcp4loop.phpt @@ -0,0 +1,34 @@ +--TEST-- +Streams Based IPv4 TCP Loopback test +--FILE-- +<?php + /* Setup socket server */ + $server = stream_socket_server('tcp://127.0.0.1:31337'); + if (!$server) { + die('Unable to create AF_INET socket [server]'); + } + + /* Connect to it */ + $client = stream_socket_client('tcp://127.0.0.1:31337'); + if (!$client) { + die('Unable to create AF_INET socket [client]'); + } + + /* Accept that connection */ + $socket = stream_socket_accept($server); + if (!$socket) { + die('Unable to accept connection'); + } + + fwrite($client, "ABCdef123\n"); + + $data = fread($socket, 10); + var_dump($data); + + fclose($client); + fclose($socket); + fclose($server); +?> +--EXPECT-- +string(10) "ABCdef123 +" diff --git a/ext/standard/tests/network/tcp6loop.phpt b/ext/standard/tests/network/tcp6loop.phpt new file mode 100644 index 0000000000..ae616508b6 --- /dev/null +++ b/ext/standard/tests/network/tcp6loop.phpt @@ -0,0 +1,42 @@ +--TEST-- +Streams Based IPv6 TCP Loopback test +--SKIPIF-- +<?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) */ + @stream_socket_client('tcp://[::1]:0, $errno); + if ($errno != 111) die('IPv6 not supported.'); +?> +--FILE-- +<?php + /* Setup socket server */ + $server = stream_socket_server('tcp://[::1]:31337'); + if (!$server) { + die('Unable to create AF_INET6 socket [server]'); + } + + /* Connect to it */ + $client = stream_socket_client('tcp://[::1]:31337'); + if (!$client) { + die('Unable to create AF_INET6 socket [client]'); + } + + /* Accept that connection */ + $socket = stream_socket_accept($server); + if (!$socket) { + die('Unable to accept connection'); + } + + fwrite($client, "ABCdef123\n"); + + $data = fread($socket, 10); + var_dump($data); + + fclose($client); + fclose($socket); + fclose($server); +?> +--EXPECT-- +string(10) "ABCdef123 +" diff --git a/ext/standard/tests/network/udgloop.phpt b/ext/standard/tests/network/udgloop.phpt new file mode 100644 index 0000000000..2642d8568d --- /dev/null +++ b/ext/standard/tests/network/udgloop.phpt @@ -0,0 +1,37 @@ +--TEST-- +Streams Based Unix Domain Datagram Loopback test +--SKIPIF-- +<?php + if (array_search("udg",stream_get_transports()) === false) + die('No support for UNIX domain sockets.'); +?> +--FILE-- +<?php + $uniqid = uniqid(); + if (file_exists("/tmp/$uniqid.sock")) + die('Temporary socket already exists.'); + + /* Setup socket server */ + $server = stream_socket_server("udg:///tmp/$uniqid.sock", $errno, $errstr, STREAM_SERVER_BIND); + if (!$server) { + die('Unable to create AF_UNIX socket [server]'); + } + + /* Connect to it */ + $client = stream_socket_client("udg:///tmp/$uniqid.sock"); + if (!$client) { + die('Unable to create AF_UNIX socket [client]'); + } + + fwrite($client, "ABCdef123\n"); + + $data = fread($server, 10); + var_dump($data); + + fclose($client); + fclose($server); + unlink("/tmp/$uniqid.sock"); +?> +--EXPECT-- +string(10) "ABCdef123 +" diff --git a/ext/standard/tests/network/udp4loop.phpt b/ext/standard/tests/network/udp4loop.phpt new file mode 100644 index 0000000000..10d36ed73f --- /dev/null +++ b/ext/standard/tests/network/udp4loop.phpt @@ -0,0 +1,27 @@ +--TEST-- +Streams Based IPv4 UDP Loopback test +--FILE-- +<?php + /* Setup socket server */ + $server = stream_socket_server('udp://127.0.0.1:31338', $errno, $errstr, STREAM_SERVER_BIND); + if (!$server) { + die('Unable to create AF_INET socket [server]'); + } + + /* Connect to it */ + $client = stream_socket_client('udp://127.0.0.1:31338'); + if (!$client) { + die('Unable to create AF_INET socket [client]'); + } + + fwrite($client, "ABCdef123\n"); + + $data = fread($server, 10); + var_dump($data); + + fclose($client); + fclose($server); +?> +--EXPECT-- +string(10) "ABCdef123 +" diff --git a/ext/standard/tests/network/udp6loop.phpt b/ext/standard/tests/network/udp6loop.phpt new file mode 100644 index 0000000000..6668870b3a --- /dev/null +++ b/ext/standard/tests/network/udp6loop.phpt @@ -0,0 +1,35 @@ +--TEST-- +Streams Based IPv6 UDP Loopback test +--SKIPIF-- +<?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) */ + @stream_socket_client('tcp://[::1]:0, $errno); + if ($errno != 111) die('IPv6 not supported.'); +?> +--FILE-- +<?php + /* Setup socket server */ + $server = stream_socket_server('udp://[::1]:31337', $errno, $errstr, STREAM_SERVER_BIND); + if (!$server) { + die('Unable to create AF_INET6 socket [server]'); + } + + /* Connect to it */ + $client = stream_socket_client('udp://[::1]:31337'); + 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 +" diff --git a/ext/standard/tests/network/unixloop.phpt b/ext/standard/tests/network/unixloop.phpt new file mode 100644 index 0000000000..618f4866d3 --- /dev/null +++ b/ext/standard/tests/network/unixloop.phpt @@ -0,0 +1,44 @@ +--TEST-- +Streams Based Unix Domain Loopback test +--SKIPIF-- +<?php + if (array_search("unix",stream_get_transports()) === false) + die('No support for UNIX domain sockets.'); +?> +--FILE-- +<?php + $uniqid = uniqid(); + if (file_exists("/tmp/$uniqid.sock")) + die('Temporary socket already exists.'); + + /* Setup socket server */ + $server = stream_socket_server("unix:///tmp/$uniqid.sock"); + if (!$server) { + die('Unable to create AF_UNIX socket [server]'); + } + + /* Connect to it */ + $client = stream_socket_client("unix:///tmp/$uniqid.sock"); + if (!$client) { + die('Unable to create AF_UNIX socket [client]'); + } + + /* Accept that connection */ + $socket = stream_socket_accept($server); + if (!$socket) { + die('Unable to accept connection'); + } + + fwrite($client, "ABCdef123\n"); + + $data = fread($socket, 10); + var_dump($data); + + fclose($client); + fclose($socket); + fclose($server); + unlink("/tmp/$uniqid.sock"); +?> +--EXPECT-- +string(10) "ABCdef123 +" |