1--TEST--
2swoole_server: shutdown in base mode
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->initRandomData(1);
10$pm->parentFunc = function () use ($pm) {
11    go(function () use ($pm) {
12        $client = new Co\Client(SWOOLE_SOCK_TCP);
13        Assert::assert($client->connect('127.0.0.1', $pm->getFreePort()));
14        Assert::assert($client->send($pm->getRandomData()) > 0);
15    });
16};
17$pm->childFunc = function () use ($pm) {
18    $server = new Swoole\Server('127.0.0.1', $pm->getFreePort(), SWOOLE_BASE);
19    $server->set(['worker_num' => mt_rand(2, 4), 'log_file' => '/dev/null']);
20    $server->on('start', function () use ($pm) {
21        echo "START\n";
22        $pm->wakeup();
23    });
24    $server->on('receive', function (Swoole\Server $server, int $fd, int $rid, string $data) use ($pm) {
25        Assert::same($data, $pm->getRandomData());
26        $server->shutdown();
27    });
28    $server->on('shutdown', function () {
29        echo "SHUTDOWN\n";
30    });
31    $server->start();
32};
33$pm->childFirst();
34$pm->run();
35$pm->expectExitCode(0);
36?>
37--EXPECT--
38START
39SHUTDOWN
40