From 356237724f12329771cd8c1cb0f63c70445b95e0 Mon Sep 17 00:00:00 2001 From: matyhtf Date: Mon, 18 Nov 2024 16:47:13 +0800 Subject: [PATCH] Added http chunk test for Coroutine\Http\Client; Optimize write_func tests --filter=[unit] --- tests/swoole_http_client_coro/http_chunk.phpt | 52 +++++++++++++++++++ .../swoole_http_client_coro/write_func_1.phpt | 5 ++ .../swoole_http_client_coro/write_func_2.phpt | 5 ++ 3 files changed, 62 insertions(+) create mode 100644 tests/swoole_http_client_coro/http_chunk.phpt diff --git a/tests/swoole_http_client_coro/http_chunk.phpt b/tests/swoole_http_client_coro/http_chunk.phpt new file mode 100644 index 00000000000..d9a75f9fc7e --- /dev/null +++ b/tests/swoole_http_client_coro/http_chunk.phpt @@ -0,0 +1,52 @@ +--TEST-- +swoole_http_client_coro: http chunk +--SKIPIF-- + +--FILE-- +parentFunc = function ($pid) use ($pm, $chunks, $body) { + Co\run(function () use ($pm, $chunks, $body) { + $cli = new Swoole\Coroutine\Http\Client('127.0.0.1', $pm->getFreePort()); + Assert::assert($cli->get('/')); + Assert::eq($cli->getBody(), $body); + }); + $pm->kill(); + echo "DONE\n"; +}; + +$pm->childFunc = function () use ($pm, $chunks) { + Co\run(function () use ($pm, $chunks) { + Event::defer(function () use ($pm) { + $pm->wakeup(); + }); + $server = new Swoole\Coroutine\Http\Server('127.0.0.1', $pm->getFreePort()); + $server->handle('/', function ($req, $resp) use ($server, $chunks) { + foreach ($chunks as $chunk) { + $resp->write($chunk); + usleep(mt_rand(10, 50) * 100); + } + }); + $server->start(); + }); +}; + +$pm->childFirst(); +$pm->run(); +?> +--EXPECT-- +DONE diff --git a/tests/swoole_http_client_coro/write_func_1.phpt b/tests/swoole_http_client_coro/write_func_1.phpt index 2474a7ad46d..51f668b9a86 100644 --- a/tests/swoole_http_client_coro/write_func_1.phpt +++ b/tests/swoole_http_client_coro/write_func_1.phpt @@ -6,6 +6,8 @@ swoole_http_client_coro: write func 1 parentFunc = function ($pid) use ($pm, $chunks) { $pm->childFunc = function () use ($pm, $chunks) { Co\run(function () use ($pm, $chunks) { + Event::defer(function () use ($pm) { + $pm->wakeup(); + }); $server = new Swoole\Coroutine\Http\Server('127.0.0.1', $pm->getFreePort()); $server->handle('/', function ($req, $resp) use ($server, $chunks) { foreach ($chunks as $chunk) { diff --git a/tests/swoole_http_client_coro/write_func_2.phpt b/tests/swoole_http_client_coro/write_func_2.phpt index 62ee3ca2c00..e2da0b38d83 100644 --- a/tests/swoole_http_client_coro/write_func_2.phpt +++ b/tests/swoole_http_client_coro/write_func_2.phpt @@ -6,6 +6,8 @@ swoole_http_client_coro: write func 1 parentFunc = function ($pid) use ($pm, $chunks) { $pm->childFunc = function () use ($pm, $chunks) { Co\run(function () use ($pm, $chunks) { + Event::defer(function () use ($pm) { + $pm->wakeup(); + }); $server = new Swoole\Coroutine\Http\Server('127.0.0.1', $pm->getFreePort()); $server->handle('/', function ($req, $resp) use ($server, $chunks) { foreach ($chunks as $chunk) {