From d1f89a7daa180dac92c48f45b2d1925449f34c08 Mon Sep 17 00:00:00 2001 From: Mateusz Charytoniuk <mateusz.charytoniuk@protonmail.com> Date: Fri, 22 Mar 2024 01:12:54 +0100 Subject: [PATCH] chore: try finding which test causes segfault in github actions --- src/ObservableTaskTableTest.php | 184 ++++++++++++++++---------------- src/SwooleTimeoutTest.php | 84 +++++++-------- 2 files changed, 134 insertions(+), 134 deletions(-) diff --git a/src/ObservableTaskTableTest.php b/src/ObservableTaskTableTest.php index 89abca94..f93de8f0 100644 --- a/src/ObservableTaskTableTest.php +++ b/src/ObservableTaskTableTest.php @@ -15,95 +15,95 @@ use Swoole\Event; /** * @internal */ -// #[CoversClass(ObservableTaskTable::class)] -// final class ObservableTaskTableTest extends TestCase -// { -// private ?ObservableTaskConfiguration $observableTaskConfiguration = null; -// private ?ObservableTaskTable $observableTaskTable = null; - -// protected function setUp(): void -// { -// $this->observableTaskConfiguration = new ObservableTaskConfiguration( -// maxTasks: 4, -// serializedStatusSize: 32768, -// ); - -// $this->observableTaskTable = new ObservableTaskTable( -// observableTaskConfiguration: $this->observableTaskConfiguration, -// serializer: new Vanilla(), -// ); -// } - -// protected function tearDown(): void -// { -// Event::wait(); -// } - -// public function test_channel_is_observed(): void -// { -// SwooleCoroutineHelper::mustRun(function () { -// $channel = new Channel(); -// $wg = new WaitGroup(); - -// $this->observableTaskTable?->observableChannels->add($channel); - -// $observableTask = new ObservableTask(static function () { -// yield new ObservableTaskStatusUpdate( -// ObservableTaskStatus::Running, -// 'test1', -// ); - -// yield new ObservableTaskStatusUpdate( -// ObservableTaskStatus::Finished, -// 'test2', -// ); -// }); - -// $wg->add(); - -// SwooleCoroutineHelper::mustGo(static function () use ($channel, $wg) { -// Coroutine::defer(static function () use ($wg) { -// $wg->done(); -// }); - -// $status1 = $channel->pop(); - -// self::assertInstanceOf(ObservableTaskSlotStatusUpdate::class, $status1); -// self::assertSame(ObservableTaskStatus::Running, $status1->observableTaskStatusUpdate->status); - -// $status2 = $channel->pop(); - -// self::assertInstanceOf(ObservableTaskSlotStatusUpdate::class, $status2); -// self::assertSame(ObservableTaskStatus::Finished, $status2->observableTaskStatusUpdate->status); -// }); - -// $this->observableTaskTable?->observe($observableTask); - -// $wg->wait(); - -// $this->observableTaskTable?->observableChannels->remove($channel); -// }); -// } - -// public function test_task_is_observed(): void -// { -// $observableTask = new ObservableTask(static function () { -// yield new ObservableTaskStatusUpdate( -// ObservableTaskStatus::Running, -// 'test', -// ); -// }); - -// self::assertNull($this->observableTaskTable?->getStatus('0')); - -// $slotId = $this->observableTaskTable?->observe($observableTask); - -// self::assertSame('0', $slotId); - -// $status = $this->observableTaskTable?->getStatus($slotId); - -// self::assertInstanceOf(ObservableTaskStatusUpdate::class, $status); -// self::assertSame(ObservableTaskStatus::Running, $status->status); -// self::assertSame('test', $status->data); -// } -// } +#[CoversClass(ObservableTaskTable::class)] +final class ObservableTaskTableTest extends TestCase +{ + private ?ObservableTaskConfiguration $observableTaskConfiguration = null; + private ?ObservableTaskTable $observableTaskTable = null; + + protected function setUp(): void + { + $this->observableTaskConfiguration = new ObservableTaskConfiguration( + maxTasks: 4, + serializedStatusSize: 32768, + ); + + $this->observableTaskTable = new ObservableTaskTable( + observableTaskConfiguration: $this->observableTaskConfiguration, + serializer: new Vanilla(), + ); + } + + protected function tearDown(): void + { + Event::wait(); + } + + // public function test_channel_is_observed(): void + // { + // SwooleCoroutineHelper::mustRun(function () { + // $channel = new Channel(); + // $wg = new WaitGroup(); + + // $this->observableTaskTable?->observableChannels->add($channel); + + // $observableTask = new ObservableTask(static function () { + // yield new ObservableTaskStatusUpdate( + // ObservableTaskStatus::Running, + // 'test1', + // ); + + // yield new ObservableTaskStatusUpdate( + // ObservableTaskStatus::Finished, + // 'test2', + // ); + // }); + + // $wg->add(); + + // SwooleCoroutineHelper::mustGo(static function () use ($channel, $wg) { + // Coroutine::defer(static function () use ($wg) { + // $wg->done(); + // }); + + // $status1 = $channel->pop(); + + // self::assertInstanceOf(ObservableTaskSlotStatusUpdate::class, $status1); + // self::assertSame(ObservableTaskStatus::Running, $status1->observableTaskStatusUpdate->status); + + // $status2 = $channel->pop(); + + // self::assertInstanceOf(ObservableTaskSlotStatusUpdate::class, $status2); + // self::assertSame(ObservableTaskStatus::Finished, $status2->observableTaskStatusUpdate->status); + // }); + + // $this->observableTaskTable?->observe($observableTask); + + // $wg->wait(); + + // $this->observableTaskTable?->observableChannels->remove($channel); + // }); + // } + + public function test_task_is_observed(): void + { + $observableTask = new ObservableTask(static function () { + yield new ObservableTaskStatusUpdate( + ObservableTaskStatus::Running, + 'test', + ); + }); + + self::assertNull($this->observableTaskTable?->getStatus('0')); + + $slotId = $this->observableTaskTable?->observe($observableTask); + + self::assertSame('0', $slotId); + + $status = $this->observableTaskTable?->getStatus($slotId); + + self::assertInstanceOf(ObservableTaskStatusUpdate::class, $status); + self::assertSame(ObservableTaskStatus::Running, $status->status); + self::assertSame('test', $status->data); + } +} diff --git a/src/SwooleTimeoutTest.php b/src/SwooleTimeoutTest.php index 9e1bc0ae..20552722 100644 --- a/src/SwooleTimeoutTest.php +++ b/src/SwooleTimeoutTest.php @@ -11,45 +11,45 @@ use Swoole\Event; /** * @internal */ -#[CoversClass(SwooleTimeout::class)] -#[CoversClass(SwooleTimeoutScheduled::class)] -#[CoversClass(SwooleTimeoutScheduler::class)] -final class SwooleTimeoutTest extends TestCase -{ - protected function tearDown(): void - { - Event::wait(); - } - - public function test_code_executes_after_timeout(): void - { - SwooleCoroutineHelper::mustRun(static function () { - $before = microtime(true); - - $timeout = new SwooleTimeout(static function () use ($before) { - $after = microtime(true); - - self::assertGreaterThan(0.03, $after - $before); - self::assertLessThan(0.035, $after - $before); - }); - - $timeout->setTimeout(0.03); - }); - } - - public function test_task_is_rescheduled(): void - { - SwooleCoroutineHelper::mustRun(static function () { - $before = microtime(true); - - $timeout = new SwooleTimeout(static function () use ($before) { - $after = microtime(true); - - self::assertGreaterThan(0.03, $after - $before); - self::assertLessThan(0.035, $after - $before); - }); - - $timeout->setTimeout(0.02)->reschedule(0.03); - }); - } -} +// #[CoversClass(SwooleTimeout::class)] +// #[CoversClass(SwooleTimeoutScheduled::class)] +// #[CoversClass(SwooleTimeoutScheduler::class)] +// final class SwooleTimeoutTest extends TestCase +// { +// protected function tearDown(): void +// { +// Event::wait(); +// } + +// public function test_code_executes_after_timeout(): void +// { +// SwooleCoroutineHelper::mustRun(static function () { +// $before = microtime(true); + +// $timeout = new SwooleTimeout(static function () use ($before) { +// $after = microtime(true); + +// self::assertGreaterThan(0.03, $after - $before); +// self::assertLessThan(0.035, $after - $before); +// }); + +// $timeout->setTimeout(0.03); +// }); +// } + +// public function test_task_is_rescheduled(): void +// { +// SwooleCoroutineHelper::mustRun(static function () { +// $before = microtime(true); + +// $timeout = new SwooleTimeout(static function () use ($before) { +// $after = microtime(true); + +// self::assertGreaterThan(0.03, $after - $before); +// self::assertLessThan(0.035, $after - $before); +// }); + +// $timeout->setTimeout(0.02)->reschedule(0.03); +// }); +// } +// } -- GitLab