Initial commit
This commit is contained in:
85
tests/Signal/SignalHandlerTest.php
Normal file
85
tests/Signal/SignalHandlerTest.php
Normal file
@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace NoccyLabs\Ipc\Signal;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class SignalHandlerTest extends \PhpUnit\Framework\TestCase
|
||||
{
|
||||
|
||||
public function testSignalHandlerWithSingleHandlerInConstructor()
|
||||
{
|
||||
$callbacks = [
|
||||
function () use (&$handler1) { $handler1 = true; }
|
||||
];
|
||||
|
||||
$handler = new SignalHandler(SIGUSR1, $callbacks);
|
||||
|
||||
posix_kill(posix_getpid(), SIGUSR1);
|
||||
|
||||
usleep(1000);
|
||||
|
||||
$this->assertEquals(true, $handler1);
|
||||
}
|
||||
|
||||
public function testSignalHandlerWithMultipleHandlersInConstructor()
|
||||
{
|
||||
$callbacks = [
|
||||
function () use (&$handler1) { $handler1 = true; },
|
||||
function () use (&$handler2) { $handler2 = true; },
|
||||
function () use (&$handler3) { $handler3 = true; }
|
||||
];
|
||||
|
||||
$handler = new SignalHandler(SIGUSR1, $callbacks);
|
||||
|
||||
posix_kill(posix_getpid(), SIGUSR1);
|
||||
|
||||
usleep(1000);
|
||||
|
||||
$this->assertEquals(true, $handler1);
|
||||
$this->assertEquals(true, $handler2);
|
||||
$this->assertEquals(true, $handler3);
|
||||
}
|
||||
|
||||
public function testSignalHandlerWithAddedHandlers()
|
||||
{
|
||||
$callbacks = [
|
||||
function () use (&$handler1) { $handler1 = true; },
|
||||
function () use (&$handler2) { $handler2 = true; }
|
||||
];
|
||||
|
||||
$handler = new SignalHandler(SIGUSR1, $callbacks);
|
||||
|
||||
$handler->addHandler(function () use (&$handler3) { $handler3 = true; });
|
||||
|
||||
posix_kill(posix_getpid(), SIGUSR1);
|
||||
|
||||
usleep(1000);
|
||||
|
||||
$this->assertEquals(true, $handler1);
|
||||
$this->assertEquals(true, $handler2);
|
||||
$this->assertEquals(true, $handler3);
|
||||
}
|
||||
|
||||
public function testSignalHandlerWithBlockingHandler()
|
||||
{
|
||||
$callbacks = [
|
||||
function () use (&$handler1) { $handler1 = true; return true; },
|
||||
function () use (&$handler2) { $handler2 = true; },
|
||||
function () use (&$handler3) { $handler3 = true; }
|
||||
];
|
||||
|
||||
$handler = new SignalHandler(SIGUSR1, $callbacks);
|
||||
|
||||
posix_kill(posix_getpid(), SIGUSR1);
|
||||
|
||||
usleep(1000);
|
||||
|
||||
$this->assertEquals(true, $handler1);
|
||||
$this->assertEquals(false, $handler2);
|
||||
$this->assertEquals(false, $handler3);
|
||||
}
|
||||
|
||||
}
|
40
tests/Signal/SignalTest.php
Normal file
40
tests/Signal/SignalTest.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace NoccyLabs\Ipc\Signal;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class SignalTest extends \PhpUnit\Framework\TestCase
|
||||
{
|
||||
|
||||
public function testSimpleSignalHandler()
|
||||
{
|
||||
$callback = function () use (&$handler1) { $handler1 = true; };
|
||||
|
||||
$handler = new Signal(SIGUSR1);
|
||||
$handler->setHandler($callback);
|
||||
|
||||
posix_kill(posix_getpid(), SIGUSR1);
|
||||
|
||||
usleep(1000);
|
||||
|
||||
$this->assertEquals(true, $handler1);
|
||||
}
|
||||
|
||||
public function testSimpleSignalDispatcher()
|
||||
{
|
||||
$callback = function () use (&$handler1) { $handler1 = true; };
|
||||
|
||||
$handler = new Signal(SIGUSR1);
|
||||
$handler->setHandler($callback);
|
||||
|
||||
$handler->dispatch(posix_getpid());
|
||||
|
||||
usleep(1000);
|
||||
|
||||
$this->assertEquals(true, $handler1);
|
||||
}
|
||||
|
||||
}
|
42
tests/Signal/SignalTrapTest.php
Normal file
42
tests/Signal/SignalTrapTest.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace NoccyLabs\Ipc\Signal;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class SignalTrapTest extends \PhpUnit\Framework\TestCase
|
||||
{
|
||||
|
||||
public function testSignalTrap()
|
||||
{
|
||||
$trap = new SignalTrap(SIGUSR1);
|
||||
|
||||
$this->assertEquals(false, $trap->isTrapped());
|
||||
|
||||
posix_kill(posix_getpid(), SIGUSR1);
|
||||
|
||||
usleep(1000);
|
||||
|
||||
$this->assertEquals(true, $trap->isTrapped());
|
||||
|
||||
$this->assertEquals(false, $trap->isTrapped());
|
||||
}
|
||||
|
||||
public function testSignalTrapWithoutResetting()
|
||||
{
|
||||
$trap = new SignalTrap(SIGUSR1);
|
||||
|
||||
$this->assertEquals(false, $trap->isTrapped());
|
||||
|
||||
posix_kill(posix_getpid(), SIGUSR1);
|
||||
|
||||
usleep(1000);
|
||||
|
||||
$this->assertEquals(true, $trap->isTrapped(false));
|
||||
|
||||
$this->assertEquals(true, $trap->isTrapped());
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user