Skip to content

Commit

Permalink
chore: try finding which test causes segfault in github actions
Browse files Browse the repository at this point in the history
  • Loading branch information
mcharytoniuk committed Mar 22, 2024
1 parent a3d468d commit 7bd5eee
Show file tree
Hide file tree
Showing 4 changed files with 178 additions and 181 deletions.
3 changes: 0 additions & 3 deletions .github/workflows/unit_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
124 changes: 62 additions & 62 deletions src/ObservableTaskTableSlotStatusUpdateIteratorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,65 +12,65 @@
/**
* @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);
// });
// }
// }
184 changes: 92 additions & 92 deletions src/ObservableTaskTableTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,95 +15,95 @@
/**
* @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);
// }
// }
48 changes: 24 additions & 24 deletions src/SwooleTimeoutTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,35 +21,35 @@ protected function tearDown(): void
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);
});
}
}

0 comments on commit 7bd5eee

Please sign in to comment.