+<?php declare(strict_types=1);
+
+use PHPUnit\Framework\TestCase;
+
+use Graphit\Concurrent\Daemon;
+
+require __DIR__."/../vendor/autoload.php";
+
+final class DaemonTest extends TestCase
+{
+ public function testDaemon(): void
+ {
+ $d = (new class() extends Daemon {
+ public function run() {
+ echo "from daemon: PID ".$this->getPid()."!\n";
+ flush();
+ while ( !$this->isStopped()){
+ usleep(500000);
+
+ echo "from daemon: Message!\n";
+ flush();
+ }
+ echo "from daemon: Stopped!\n";
+ }
+ });
+
+ $this->assertTrue($d->start(), "from main: Unable to start daemon");
+
+ echo "from main: PID ".$d->getPid()."\n";
+ sleep(2);
+
+ $d->stop();
+ }
+}