-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathTracingFiberFactoryTest.php
More file actions
36 lines (31 loc) · 1.06 KB
/
TracingFiberFactoryTest.php
File metadata and controls
36 lines (31 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
declare(strict_types=1);
namespace Revolt\EventLoop\Driver;
use Revolt\EventLoop\Driver;
use Revolt\EventLoop\TracingFiberFactory;
class TracingFiberFactoryTest extends StreamSelectDriverTest
{
private static TracingFiberFactory $factory;
public function getFactory(): callable
{
self::$factory ??= new TracingFiberFactory();
return static function (): StreamSelectDriver {
return new StreamSelectDriver(self::$factory);
};
}
public function testNumberOfFibers(): void
{
self::assertEquals(2, self::$factory->count());
$this->start(static function (Driver $loop): void {
$loop->queue(static function () use ($loop) {
$suspension = $loop->getSuspension();
$loop->delay(1, $suspension->resume(...));
$suspension->suspend();
});
$loop->delay(0.5, function () {
self::assertEquals(3, self::$factory->count());
});
});
self::assertEquals(2, self::$factory->count());
}
}