[Process] Fix tests on windows

This commit is contained in:
Jordi Boggiano 2013-04-25 15:23:11 +02:00
parent 08e95dbbf4
commit ae1624fe02
2 changed files with 40 additions and 8 deletions

View File

@ -136,19 +136,19 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testGetErrorOutput() public function testGetErrorOutput()
{ {
$p = new Process(sprintf('php -r %s', escapeshellarg('ini_set(\'display_errors\',\'on\'); $n = 0; while ($n < 3) { echo $a; $n++; }'))); $p = new Process(sprintf('php -r %s', escapeshellarg('$n = 0; while ($n < 3) { file_put_contents(\'php://stderr\', \'ERROR\'); $n++; }')));
$p->run(); $p->run();
$this->assertEquals(3, preg_match_all('/PHP Notice/', $p->getErrorOutput(), $matches)); $this->assertEquals(3, preg_match_all('/ERROR/', $p->getErrorOutput(), $matches));
} }
public function testGetIncrementalErrorOutput() public function testGetIncrementalErrorOutput()
{ {
$p = new Process(sprintf('php -r %s', escapeshellarg('ini_set(\'display_errors\',\'on\'); usleep(50000); $n = 0; while ($n < 3) { echo $a; $n++; }'))); $p = new Process(sprintf('php -r %s', escapeshellarg('$n = 0; while ($n < 3) { usleep(50000); file_put_contents(\'php://stderr\', \'ERROR\'); $n++; }')));
$p->start(); $p->start();
while ($p->isRunning()) { while ($p->isRunning()) {
$this->assertLessThanOrEqual(1, preg_match_all('/PHP Notice/', $p->getIncrementalOutput(), $matches)); $this->assertLessThanOrEqual(1, preg_match_all('/ERROR/', $p->getIncrementalErrorOutput(), $matches));
usleep(20000); usleep(20000);
} }
} }
@ -431,6 +431,10 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testSignal() public function testSignal()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->markTestSkipped('POSIX signals do not work on windows');
}
$process = $this->getProcess('exec php -f ' . __DIR__ . '/SignalListener.php'); $process = $this->getProcess('exec php -f ' . __DIR__ . '/SignalListener.php');
$process->start(); $process->start();
usleep(500000); usleep(500000);
@ -448,6 +452,10 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
*/ */
public function testSignalProcessNotRunning() public function testSignalProcessNotRunning()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->markTestSkipped('POSIX signals do not work on windows');
}
$process = $this->getProcess('php -m'); $process = $this->getProcess('php -m');
$process->signal(SIGHUP); $process->signal(SIGHUP);
} }
@ -457,6 +465,10 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
*/ */
public function testSignalWithWrongIntSignal() public function testSignalWithWrongIntSignal()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->markTestSkipped('POSIX signals do not work on windows');
}
$process = $this->getProcess('php -r "sleep(3);"'); $process = $this->getProcess('php -r "sleep(3);"');
$process->start(); $process->start();
$process->signal(-4); $process->signal(-4);
@ -467,6 +479,10 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
*/ */
public function testSignalWithWrongNonIntSignal() public function testSignalWithWrongNonIntSignal()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->markTestSkipped('POSIX signals do not work on windows');
}
$process = $this->getProcess('php -r "sleep(3);"'); $process = $this->getProcess('php -r "sleep(3);"');
$process->start(); $process->start();
$process->signal('Céphalopodes'); $process->signal('Céphalopodes');

View File

@ -122,10 +122,18 @@ class ProcessBuilderTest extends \PHPUnit_Framework_TestCase
$pb->setPrefix('/usr/bin/php'); $pb->setPrefix('/usr/bin/php');
$proc = $pb->setArguments(array('-v'))->getProcess(); $proc = $pb->setArguments(array('-v'))->getProcess();
$this->assertEquals("'/usr/bin/php' '-v'", $proc->getCommandLine()); if (defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->assertEquals('"/usr/bin/php" "-v"', $proc->getCommandLine());
} else {
$this->assertEquals("'/usr/bin/php' '-v'", $proc->getCommandLine());
}
$proc = $pb->setArguments(array('-i'))->getProcess(); $proc = $pb->setArguments(array('-i'))->getProcess();
$this->assertEquals("'/usr/bin/php' '-i'", $proc->getCommandLine()); if (defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->assertEquals('"/usr/bin/php" "-i"', $proc->getCommandLine());
} else {
$this->assertEquals("'/usr/bin/php' '-i'", $proc->getCommandLine());
}
} }
public function testShouldEscapeArguments() public function testShouldEscapeArguments()
@ -167,7 +175,11 @@ class ProcessBuilderTest extends \PHPUnit_Framework_TestCase
->setPrefix('/usr/bin/php') ->setPrefix('/usr/bin/php')
->getProcess(); ->getProcess();
$this->assertEquals("'/usr/bin/php'", $process->getCommandLine()); if (defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->assertEquals('"/usr/bin/php"', $process->getCommandLine());
} else {
$this->assertEquals("'/usr/bin/php'", $process->getCommandLine());
}
} }
public function testShouldNotThrowALogicExceptionIfNoPrefix() public function testShouldNotThrowALogicExceptionIfNoPrefix()
@ -175,6 +187,10 @@ class ProcessBuilderTest extends \PHPUnit_Framework_TestCase
$process = ProcessBuilder::create(array('/usr/bin/php')) $process = ProcessBuilder::create(array('/usr/bin/php'))
->getProcess(); ->getProcess();
$this->assertEquals("'/usr/bin/php'", $process->getCommandLine()); if (defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->assertEquals('"/usr/bin/php"', $process->getCommandLine());
} else {
$this->assertEquals("'/usr/bin/php'", $process->getCommandLine());
}
} }
} }