com php-src: add test for bug #70198: ext/standard/tests/streams/bug70198.phpt
| From: | Anatol Belski | Date: | Tue, 11 Aug 2015 13:00:17 +0000 |
| Subject: | com php-src: add test for bug #70198: ext/standard/tests/streams/bug70198.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-88458@lists.php.net to get a copy of this message | ||
Commit: 8d2b131d9f4a52ea1e03ebeaaf3922abdc308d63
Author: Anatol Belski <ab@php.net> Tue, 11 Aug 2015 15:00:17 +0200
Parents: 24f0fe6b1f53e2d610dc27c04b0c6cd9927f4d4a
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=8d2b131d9f4a52ea1e03ebeaaf3922abdc308d63
Log:
add test for bug #70198
Bugs:
https://bugs.php.net/70198
Changed paths:
A ext/standard/tests/streams/bug70198.phpt
Diff:
diff --git a/ext/standard/tests/streams/bug70198.phpt b/ext/standard/tests/streams/bug70198.phpt
new file mode 100644
index 0000000..f3a608f
--- /dev/null
+++ b/ext/standard/tests/streams/bug70198.phpt
@@ -0,0 +1,61 @@
+--TEST--
+Bug #70198 Checking liveness does not work as expected
+--SKIPIF--
+<?php
+if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
+?>
+--FILE--
+<?php
+
+/* What is checked here is
+ - start a server and listen
+ - as soon as client connects, close connection and exit
+ - on the client side - sleep(1) and check feof()
+*/
+
+$srv_addr = "tcp://127.0.0.1:8085";
+$srv_fl = dirname(__FILE__) . "/bug70198_svr_" . md5(uniqid()) . ".php";
+$srv_fl_cont = <<<SRV
+<?php
+\$socket = stream_socket_server('$srv_addr', \$errno, \$errstr);
+
+if (!\$socket) {
+ echo "\$errstr (\$errno)<br />\\n";
+} else {
+ while (\$conn = stream_socket_accept(\$socket)) {
+
+ /* just close the connection immediately after accepting,
+ the client side will need wait a bit longer to realize it.*/
+ fclose(\$conn);
+ break;
+ }
+ fclose(\$socket);
+}
+SRV;
+file_put_contents($srv_fl, $srv_fl_cont);
+$dummy0 = $dummy1 = array();
+$srv_proc = proc_open(PHP_BINARY . " -n $srv_fl", $dummy0, $dummy1);
+
+$i = 0;
+$fp = stream_socket_client($srv_addr, $errno, $errstr, 1);
+if (!$fp) {
+ echo "$errstr ($errno)<br />\n";
+} else {
+ stream_set_blocking($fp, 0);
+ sleep(1);
+ while (!feof($fp)) {
+ ++$i;
+ }
+ fclose($fp);
+ var_dump($i);
+}
+
+
+proc_close($srv_proc);
+unlink($srv_fl);
+?>
+==DONE==
+--EXPECTF--
+int(0)
+==DONE==
+