1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00
Files
archived-php-src/ext/standard/tests/streams/bug51056.phpt

44 lines
927 B
PHP

--TEST--
Bug #51056 (fread() on blocking stream will block even if data is available)
--FILE--
<?php
$serverCode = <<<'CODE'
$server = stream_socket_server('tcp://127.0.0.1:0');
phpt_notify_server_start($server);
$conn = stream_socket_accept($server);
fwrite($conn, "Hello 1\n"); // 8 bytes
usleep(50000);
fwrite($conn, str_repeat('a', 300)."\n"); // 301 bytes
usleep(50000);
fwrite($conn, "Hello 1\n"); // 8 bytes
fclose($conn);
fclose($server);
CODE;
$clientCode = <<<'CODE'
$fp = fsockopen("tcp://{{ ADDR }}");
while (!feof($fp)) {
$data = fread($fp, 256);
$bytes = strlen($data);
if ($bytes > 0) {
printf("fread read %d bytes\n", $bytes);
}
}
CODE;
include sprintf("%s/../../../openssl/tests/ServerClientTestCase.inc", __DIR__);
ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
?>
--EXPECT--
fread read 8 bytes
fread read 256 bytes
fread read 45 bytes
fread read 8 bytes