Commit:    e217db8e6921446da93d656c9b22efed5a671581
Author:    Sara Golemon <poll...@php.net>         Tue, 30 Apr 2013 19:30:55 
-0700
Parents:   6aefaad46e98f8d434244c99cc7bd254330b1dc9
Branches:  master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=e217db8e6921446da93d656c9b22efed5a671581

Log:
Harden loopback tests

These tests depend on being able to bind port 31337.
Try a range of ports until one binds or we give up trying.

Changed paths:
  M  ext/sockets/tests/ipv4loop.phpt
  M  ext/sockets/tests/ipv6loop.phpt
  M  ext/sockets/tests/socket_getpeername_ipv4loop.phpt
  M  ext/sockets/tests/socket_getpeername_ipv6loop.phpt


Diff:
diff --git a/ext/sockets/tests/ipv4loop.phpt b/ext/sockets/tests/ipv4loop.phpt
index 9fdcc17..920b27b 100644
--- a/ext/sockets/tests/ipv4loop.phpt
+++ b/ext/sockets/tests/ipv4loop.phpt
@@ -13,8 +13,15 @@ IPv4 Loopback test
        if (!$server) {
                die('Unable to create AF_INET socket [server]');
        }
-       if (!socket_bind($server, '127.0.0.1', 31337)) {
-               die('Unable to bind to 127.0.0.1:31337');
+       $bound = false;
+       for($port = 31337; $port < 31357; ++$port) {
+               if (socket_bind($server, '127.0.0.1', $port)) {
+                       $bound = true;
+                       break;
+               }
+       }
+       if (!$bound) {
+               die("Unable to bind to 127.0.0.1");
        }
        if (!socket_listen($server, 2)) {
                die('Unable to listen on socket');
@@ -25,7 +32,7 @@ IPv4 Loopback test
        if (!$client) {
                die('Unable to create AF_INET socket [client]');
        }
-       if (!socket_connect($client, '127.0.0.1', 31337)) {
+       if (!socket_connect($client, '127.0.0.1', $port)) {
                die('Unable to connect to server socket');
        }
 
diff --git a/ext/sockets/tests/ipv6loop.phpt b/ext/sockets/tests/ipv6loop.phpt
index 6967605..0d51bb0 100644
--- a/ext/sockets/tests/ipv6loop.phpt
+++ b/ext/sockets/tests/ipv6loop.phpt
@@ -14,8 +14,15 @@ IPv6 Loopback test
        if (!$server) {
                die('Unable to create AF_INET6 socket [server]');
        }
-       if (!socket_bind($server, '::1', 31337)) {
-               die('Unable to bind to [::1]:31337');
+       $bound = false;
+       for($port = 31337; $port < 31357; ++$port) {
+               if (socket_bind($server, '::1', $port)) {
+                       $bound = true;
+                       break;
+               }
+       }
+       if (!$bound)
+               die("Unable to bind to [::1]:$port");
        }
        if (!socket_listen($server, 2)) {
                die('Unable to listen on socket');
@@ -26,7 +33,7 @@ IPv6 Loopback test
        if (!$client) {
                die('Unable to create AF_INET6 socket [client]');
        }
-       if (!socket_connect($client, '::1', 31337)) {
+       if (!socket_connect($client, '::1', $port)) {
                die('Unable to connect to server socket');
        }
 
diff --git a/ext/sockets/tests/socket_getpeername_ipv4loop.phpt 
b/ext/sockets/tests/socket_getpeername_ipv4loop.phpt
index aa59abb..b948e0e 100644
--- a/ext/sockets/tests/socket_getpeername_ipv4loop.phpt
+++ b/ext/sockets/tests/socket_getpeername_ipv4loop.phpt
@@ -14,17 +14,23 @@ ext/sockets - socket_getpeername_ipv4loop - basic test
        /* Bind and connect sockets to localhost */
        $localhost = '127.0.0.1';
 
-       /* Hold the port associated to address */
-       $port = 31337; 
-
         /* Setup socket server */
         $server = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
         if (!$server) {
                 die('Unable to create AF_INET socket [server]');
         }
-       
-        if (!socket_bind($server, $localhost, $port)) {
-                die('Unable to bind to '.$localhost.':'.$port);
+
+       $minport = 31337;
+       $maxport = 31356;
+       $bound = false;
+       for($port = $minport; $port <= $maxport; ++$port) {
+               if (socket_bind($server, $localhost, $port)) {
+                       $bound = true;
+                       break;
+               }
+       }
+       if (!$bound) {
+                die('Unable to bind to '.$localhost);
         }
         if (!socket_listen($server, 2)) {
                 die('Unable to listen on socket');
@@ -45,10 +51,10 @@ ext/sockets - socket_getpeername_ipv4loop - basic test
                 die('Unable to accept connection');
         }
 
-       if (!socket_getpeername($client, $address, $port)) {
+       if (!socket_getpeername($client, $address, $peerport)) {
                die('Unable to retrieve peer name');
        }
-        var_dump($address, $port);
+        var_dump($address, $port === $peerport);
 
         socket_close($client);
         socket_close($socket);
@@ -56,4 +62,4 @@ ext/sockets - socket_getpeername_ipv4loop - basic test
 ?>
 --EXPECT--
 string(9) "127.0.0.1"
-int(31337)
+bool(true)
diff --git a/ext/sockets/tests/socket_getpeername_ipv6loop.phpt 
b/ext/sockets/tests/socket_getpeername_ipv6loop.phpt
index e865f3e..5d03e32 100644
--- a/ext/sockets/tests/socket_getpeername_ipv6loop.phpt
+++ b/ext/sockets/tests/socket_getpeername_ipv6loop.phpt
@@ -15,17 +15,23 @@ require 'ipv6_skipif.inc';
        /* Bind and connect sockets to localhost */
        $localhost = '::1';
 
-       /* Hold the port associated to address */
-       $port = 31337;
-       
         /* Setup socket server */
         $server = socket_create(AF_INET6, SOCK_STREAM, getprotobyname('tcp'));
         if (!$server) {
                 die('Unable to create AF_INET6 socket [server]');
         }
-       
-        if (!socket_bind($server, $localhost, $port)) {
-                die('Unable to bind to '.$localhost.':'.$port);
+
+       $minport = 31337;
+       $maxport = 31356;
+       $bound = false;
+       for($port = $minport; $port <= $maxport; ++$port) {
+               if (socket_bind($server, $localhost, $port)) {
+                       $bound = true;
+                       break;
+               }
+       }
+       if (!$bound) {
+                die('Unable to bind to '.$localhost);
         }
         if (!socket_listen($server, 2)) {
                 die('Unable to listen on socket');
@@ -46,10 +52,10 @@ require 'ipv6_skipif.inc';
                die('Unable to accept connection');
         }
 
-       if (!socket_getpeername($client, $address, $port)) {
+       if (!socket_getpeername($client, $address, $peerport)) {
                die('Unable to retrieve peer name');
        }
-        var_dump($address, $port);
+        var_dump($address, $port === $peerport);
 
         socket_close($client);
         socket_close($socket);
@@ -57,4 +63,4 @@ require 'ipv6_skipif.inc';
 ?>
 --EXPECT--
 string(3) "::1"
-int(31337)
+bool(true)


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to