summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/tests/network/tcp4loop.phpt34
-rw-r--r--ext/standard/tests/network/tcp6loop.phpt42
-rw-r--r--ext/standard/tests/network/udgloop.phpt37
-rw-r--r--ext/standard/tests/network/udp4loop.phpt27
-rw-r--r--ext/standard/tests/network/udp6loop.phpt35
-rw-r--r--ext/standard/tests/network/unixloop.phpt44
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
+"