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