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 0000000000..d9a75f9fc7 --- /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 2474a7ad46..51f668b9a8 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 62ee3ca2c0..e2da0b38d8 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) {