1--TEST-- 2swoole_socket_coro: writeVector with ssl 3--SKIPIF-- 4<?php require __DIR__ . '/../include/skipif.inc'; ?> 5--FILE-- 6<?php 7require __DIR__ . '/../include/bootstrap.php'; 8 9use Swoole\Coroutine\Socket; 10use Swoole\Server; 11 12use function Swoole\Coroutine\run; 13 14$pm = new ProcessManager; 15$pm->parentFunc = function ($pid) use ($pm) { 16 run(function () use ($pm) { 17 $conn = new Socket(AF_INET, SOCK_STREAM, IPPROTO_IP); 18 19 $conn->setProtocol([ 20 'open_ssl' => true, 21 ]); 22 $conn->connect('127.0.0.1', $pm->getFreePort()); 23 24 $iov = ['hello', 'world']; 25 $ret = $conn->writeVector($iov); 26 Assert::eq($ret, strlen('helloworld')); 27 $pm->kill(); 28 echo "DONE\n"; 29 }); 30}; 31 32$pm->childFunc = function () use ($pm) { 33 $serv = new Server('127.0.0.1', $pm->getFreePort(), SWOOLE_BASE, SWOOLE_SOCK_TCP | SWOOLE_SSL); 34 $serv->set([ 35 'ssl_cert_file' => SSL_FILE_DIR . '/server.crt', 36 'ssl_key_file' => SSL_FILE_DIR . '/server.key', 37 ]); 38 $serv->on("workerStart", function ($serv) use ($pm) { 39 $pm->wakeup(); 40 }); 41 $serv->on('receive', function ($serv, $fd, $tid, $data) { 42 Assert::eq($data, 'helloworld'); 43 }); 44 $serv->start(); 45}; 46$pm->childFirst(); 47$pm->run(); 48?> 49--EXPECT-- 50DONE 51