1--TEST--
2swoole_server/task: kill task worker 01 [SWOOLE_BASE]
3--SKIPIF--
4<?php
5require __DIR__ . '/../../include/skipif.inc';
6skip_if_darwin();
7skip_if_in_valgrind();
8?>
9--FILE--
10<?php
11require __DIR__ . '/../../include/bootstrap.php';
12use Swoole\Server;
13const PROC_NAME = 'swoole_unittest_server_task_worker';
14$pm = new SwooleTest\ProcessManager;
15
16$pm->parentFunc = function ($pid) use ($pm) {
17    for ($i = 0; $i < 5; $i++)
18    {
19        //杀死进程
20        kill_process_by_name(PROC_NAME);
21        usleep(10000);
22        //判断进程是否存在
23        Assert::assert(get_process_pid_by_name(PROC_NAME) > 0);
24    }
25    $pm->kill();
26};
27
28$pm->childFunc = function () use ($pm)
29{
30    $serv = new Server('127.0.0.1', $pm->getFreePort(), SWOOLE_BASE);
31    $serv->set(["worker_num" => 1, 'log_file' => TEST_LOG_FILE, 'task_worker_num' => 1,]);
32    $serv->on("WorkerStart", function (Server $serv, $worker_id) use ($pm) {
33        if ($worker_id = 1) {
34            swoole_set_process_name(PROC_NAME);
35            $pm->wakeup();
36        }
37    });
38    $serv->on("Receive", function (Server $serv, $fd, $reactorId, $data)
39    {
40    });
41    $serv->on('task', function (Server $serv, $task_id, $worker_id, $data)
42    {
43        return array("code" => 0, 'message' => 'hello world', 'sid' => uniqid());
44    });
45    $serv->on('finish', function (Server $serv, $fd, $rid, $data)
46    {
47    });
48    $serv->start();
49};
50
51$pm->childFirst();
52$pm->run();
53
54?>
55--EXPECT--
56