@@ -1196,12 +1196,11 @@ TEST(server, task_worker) {
1196
1196
ASSERT_EQ (serv.gs ->task_count , 2 );
1197
1197
}
1198
1198
1199
- // PHP_METHOD(swoole_server, task)
1200
- TEST (server, task_worker2) {
1201
- Server serv (Server::MODE_PROCESS);
1199
+ static void test_task (Server::Mode mode, uint8_t task_ipc_mode = Server::TASK_IPC_UNIXSOCK) {
1200
+ Server serv (mode);
1202
1201
serv.worker_num = 2 ;
1202
+ serv.task_ipc_mode = task_ipc_mode;
1203
1203
serv.task_worker_num = 3 ;
1204
- serv.task_enable_coroutine = 1 ;
1205
1204
1206
1205
ListenPort *port = serv.add_port (SW_SOCK_TCP, TEST_HOST, 0 );
1207
1206
if (!port) {
@@ -1225,6 +1224,7 @@ TEST(server, task_worker2) {
1225
1224
ASSERT_EQ (serv.create (), SW_OK);
1226
1225
1227
1226
serv.onWorkerStart = [&](Server *serv, Worker *worker) {
1227
+ DEBUG () << " onWorkerStart: id=" << worker->id << " \n " ;
1228
1228
if (worker->id == 1 ) {
1229
1229
int _dst_worker_id = 0 ;
1230
1230
@@ -1234,15 +1234,28 @@ TEST(server, task_worker2) {
1234
1234
memcpy (buf.data , packet, strlen (packet));
1235
1235
buf.info .reactor_id = worker->id ;
1236
1236
buf.info .ext_flags |= (SW_TASK_NONBLOCK | SW_TASK_CALLBACK);
1237
- ASSERT_EQ (serv->gs -> task_workers . dispatch (&buf, &_dst_worker_id), SW_OK );
1237
+ ASSERT_TRUE (serv->task (&buf, &_dst_worker_id));
1238
1238
sleep (1 );
1239
- kill ( serv->gs -> master_pid , SIGTERM );
1239
+ serv->shutdown ( );
1240
1240
}
1241
1241
};
1242
1242
1243
1243
ASSERT_EQ (serv.start (), 0 );
1244
1244
}
1245
1245
1246
+ // PHP_METHOD(swoole_server, task)
1247
+ TEST (server, task_base) {
1248
+ test_task (Server::MODE_BASE);
1249
+ }
1250
+
1251
+ TEST (server, task_process) {
1252
+ test_task (Server::MODE_PROCESS);
1253
+ }
1254
+
1255
+ TEST (server, task_ipc_stream) {
1256
+ test_task (Server::MODE_PROCESS, Server::TASK_IPC_STREAM);
1257
+ }
1258
+
1246
1259
// static PHP_METHOD(swoole_server, taskCo)
1247
1260
TEST (server, task_worker3) {
1248
1261
Server serv (Server::MODE_PROCESS);
0 commit comments