1--TEST--
2swoole_server/task: task_ipc_mode = 2
3--SKIPIF--
4<?php require __DIR__ . '/../../include/skipif.inc'; ?>
5--FILE--
6<?php
7require __DIR__ . '/../../include/bootstrap.php';
8$pm = new SwooleTest\ProcessManager;
9$pm->parentFunc = function ($pid) use ($pm) {
10    go(function () use ($pm) {
11        echo httpGetBody("http://127.0.0.1:{$pm->getFreePort()}/");
12        $pm->kill();
13    });
14};
15$pm->childFunc = function () use ($pm) {
16    $server = new swoole_http_server('127.0.0.1', $pm->getFreePort(), SERVER_MODE_RANDOM);
17    $server->set([
18        'log_file' => '/dev/null',
19        'open_tcp_nodelay' => true,
20        'task_worker_num' => 4,
21        'task_ipc_mode' => 2,
22        'dispatch_mode' => 2
23    ]);
24    $server->on('workerStart', function () use ($pm) {
25        $pm->wakeup();
26    });
27    $server->on('request', function (swoole_http_request $request, swoole_http_response $response) use ($server) {
28        $response->detach();
29        $server->task($response->fd);
30    });
31    $server->on('task', function ($server, $task_id, $worker_id, string $fd) {
32        $response = swoole_http_response::create($fd);
33        $response->end("Hello Swoole!\n");
34    });
35    $server->on('finish', function () { });
36    $server->on('close', function () { });
37    $server->start();
38};
39$pm->childFirst();
40$pm->run();
41?>
42--EXPECT--
43Hello Swoole!
44