fix zm_sleep float bug and add test

This commit is contained in:
crazywhalecc
2022-08-07 13:11:27 +08:00
committed by Jerry Ma
parent de4748860c
commit 6282da4972
2 changed files with 9 additions and 1 deletions

View File

@@ -279,9 +279,10 @@ function get_onebot_target_id_name(string $message_type): string
* *
* 与 {@link sleep()} 一致,只是增加了协程支持 * 与 {@link sleep()} 一致,只是增加了协程支持
* *
* @param float|int $seconds 秒数支持到1ms0.001
* @since 2.7.3 此函数不再返回 true * @since 2.7.3 此函数不再返回 true
*/ */
function zm_sleep(int $seconds = 1): void function zm_sleep($seconds = 1): void
{ {
if (Coroutine::getCid() !== -1) { if (Coroutine::getCid() !== -1) {
System::sleep($seconds); System::sleep($seconds);

View File

@@ -76,4 +76,11 @@ class GlobalFunctionsTest extends TestCase
{ {
$this->assertEquals(['code' => 0, 'signal' => 0, 'output' => "foo\n"], zm_exec('echo foo')); $this->assertEquals(['code' => 0, 'signal' => 0, 'output' => "foo\n"], zm_exec('echo foo'));
} }
public function testZmSleep(): void
{
$starttime = microtime(true);
zm_sleep(0.001);
$this->assertGreaterThanOrEqual(0.001, microtime(true) - $starttime);
}
} }