From 7bd5eee95f849d49e825de1f68e25e19b685b6b1 Mon Sep 17 00:00:00 2001 From: Mateusz Charytoniuk <mateusz.charytoniuk@protonmail.com> Date: Fri, 22 Mar 2024 01:10:41 +0100 Subject: [PATCH] chore: try finding which test causes segfault in github actions --- .github/workflows/unit_tests.yaml | 3 - ...eTaskTableSlotStatusUpdateIteratorTest.php | 124 ++++++------ src/ObservableTaskTableTest.php | 184 +++++++++--------- src/SwooleTimeoutTest.php | 48 ++--- 4 files changed, 178 insertions(+), 181 deletions(-) diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index dc0f888e..3bcaa4d8 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -31,9 +31,6 @@ jobs: - name: checkout uses: actions/checkout@v4 - - name: create esbuild-meta.json - run: BUILD_ID=$GITHUB_SHA make esbuild - - name: test run: make phpunit diff --git a/src/ObservableTaskTableSlotStatusUpdateIteratorTest.php b/src/ObservableTaskTableSlotStatusUpdateIteratorTest.php index 35616723..8720907f 100644 --- a/src/ObservableTaskTableSlotStatusUpdateIteratorTest.php +++ b/src/ObservableTaskTableSlotStatusUpdateIteratorTest.php @@ -12,65 +12,65 @@ use Swoole\Event; /** * @internal */ -#[CoversClass(ObservableTaskTableSlotStatusUpdateIterator::class)] -final class ObservableTaskTableSlotStatusUpdateIteratorTest 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 () { - // $observableTask = new ObservableTask(static function () { - // yield new ObservableTaskStatusUpdate( - // ObservableTaskStatus::Running, - // 'test1', - // ); - - // yield new ObservableTaskStatusUpdate( - // ObservableTaskStatus::Finished, - // 'test2', - // ); - // }); - - // SwooleCoroutineHelper::mustGo(function () { - // self::assertNotNull($this->observableTaskTable); - - // $iterator = new ObservableTaskTableSlotStatusUpdateIterator($this->observableTaskTable); - - // foreach ($iterator as $statusUpdate) { - // self::assertInstanceOf(ObservableTaskSlotStatusUpdate::class, $statusUpdate); - // self::assertEquals('0', $statusUpdate->slotId); - - // if (ObservableTaskStatus::Finished === $statusUpdate->observableTaskStatusUpdate->status) { - // self::assertEquals('test2', $statusUpdate->observableTaskStatusUpdate->data); - - // break; - // } - - // self::assertEquals('test1', $statusUpdate->observableTaskStatusUpdate->data); - // } - // }); - - // $this->observableTaskTable?->observe($observableTask); - // }); - // } -} +// #[CoversClass(ObservableTaskTableSlotStatusUpdateIterator::class)] +// final class ObservableTaskTableSlotStatusUpdateIteratorTest 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 () { +// $observableTask = new ObservableTask(static function () { +// yield new ObservableTaskStatusUpdate( +// ObservableTaskStatus::Running, +// 'test1', +// ); + +// yield new ObservableTaskStatusUpdate( +// ObservableTaskStatus::Finished, +// 'test2', +// ); +// }); + +// SwooleCoroutineHelper::mustGo(function () { +// self::assertNotNull($this->observableTaskTable); + +// $iterator = new ObservableTaskTableSlotStatusUpdateIterator($this->observableTaskTable); + +// foreach ($iterator as $statusUpdate) { +// self::assertInstanceOf(ObservableTaskSlotStatusUpdate::class, $statusUpdate); +// self::assertEquals('0', $statusUpdate->slotId); + +// if (ObservableTaskStatus::Finished === $statusUpdate->observableTaskStatusUpdate->status) { +// self::assertEquals('test2', $statusUpdate->observableTaskStatusUpdate->data); + +// break; +// } + +// self::assertEquals('test1', $statusUpdate->observableTaskStatusUpdate->data); +// } +// }); + +// $this->observableTaskTable?->observe($observableTask); +// }); +// } +// } diff --git a/src/ObservableTaskTableTest.php b/src/ObservableTaskTableTest.php index d17eb2cd..89abca94 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 84e6005a..9e1bc0ae 100644 --- a/src/SwooleTimeoutTest.php +++ b/src/SwooleTimeoutTest.php @@ -21,35 +21,35 @@ final class SwooleTimeoutTest extends TestCase Event::wait(); } - // public function test_code_executes_after_timeout(): void - // { - // SwooleCoroutineHelper::mustRun(static function () { - // $before = microtime(true); + 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); + $timeout = new SwooleTimeout(static function () use ($before) { + $after = microtime(true); - // self::assertGreaterThan(0.03, $after - $before); - // self::assertLessThan(0.035, $after - $before); - // }); + self::assertGreaterThan(0.03, $after - $before); + self::assertLessThan(0.035, $after - $before); + }); - // $timeout->setTimeout(0.03); - // }); - // } + $timeout->setTimeout(0.03); + }); + } - // public function test_task_is_rescheduled(): void - // { - // SwooleCoroutineHelper::mustRun(static function () { - // $before = microtime(true); + public function test_task_is_rescheduled(): void + { + SwooleCoroutineHelper::mustRun(static function () { + $before = microtime(true); - // $timeout = new SwooleTimeout(static function () use ($before) { - // $after = microtime(true); + $timeout = new SwooleTimeout(static function () use ($before) { + $after = microtime(true); - // self::assertGreaterThan(0.03, $after - $before); - // self::assertLessThan(0.035, $after - $before); - // }); + self::assertGreaterThan(0.03, $after - $before); + self::assertLessThan(0.035, $after - $before); + }); - // $timeout->setTimeout(0.02)->reschedule(0.03); - // }); - // } + $timeout->setTimeout(0.02)->reschedule(0.03); + }); + } } -- GitLab