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