1--TEST-- 2swoole_socket_coro: readv test 3--SKIPIF-- 4<?php require __DIR__ . '/../include/skipif.inc'; ?> 5--FILE-- 6<?php 7 8use Swoole\Coroutine\Socket; 9use Swoole\Coroutine\Server; 10use Swoole\Coroutine\Server\Connection; 11 12use function Swoole\Coroutine\run; 13 14require __DIR__ . '/../include/bootstrap.php'; 15$pm = new SwooleTest\ProcessManager; 16$pm->parentFunc = function () use ($pm) { 17 run(function () use ($pm) { 18 $conn = new Socket(AF_INET, SOCK_STREAM, IPPROTO_IP); 19 $conn->connect('127.0.0.1', $pm->getFreePort()); 20 $conn->send('hello'); 21 $iov = [5, 5]; 22 $ret = $conn->readVector($iov); 23 Assert::same($ret, ['hello', 'world']); 24 25 $conn->send('hello'); 26 $iov = [5, 7]; 27 $ret = $conn->readVector($iov); 28 Assert::same($ret, ['hello', 'world']); 29 30 $conn->send('hello'); 31 $iov = [5, 7, 7]; 32 $ret = $conn->readVector($iov); 33 Assert::same($ret, ['hello', 'world']); 34 $pm->kill(); 35 echo "DONE\n"; 36 }); 37}; 38$pm->childFunc = function () use ($pm) { 39 run(function () use ($pm) { 40 $server = new Server('127.0.0.1', $pm->getFreePort(), false); 41 42 $server->handle(function (Connection $conn) use ($server) { 43 while (true) { 44 $conn->recv(); 45 $conn->send("helloworld"); 46 } 47 }); 48 49 $server->start(); 50 }); 51}; 52$pm->childFirst(); 53$pm->run(); 54?> 55--EXPECT-- 56DONE 57