Towards 100% HHVM compat
This commit is contained in:
parent
7e418fd954
commit
b9a76bab5c
@ -39,6 +39,10 @@ class ErrorHandlerTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testCompileTimeError()
|
public function testCompileTimeError()
|
||||||
{
|
{
|
||||||
|
if (defined('HHVM_VERSION')) {
|
||||||
|
$this->markTestSkipped('HHVM behaves differently in this test case.');
|
||||||
|
}
|
||||||
|
|
||||||
// the ContextErrorException must not be loaded to test the workaround
|
// the ContextErrorException must not be loaded to test the workaround
|
||||||
// for https://bugs.php.net/bug.php?id=65322.
|
// for https://bugs.php.net/bug.php?id=65322.
|
||||||
if (class_exists('Symfony\Component\Debug\Exception\ContextErrorException', false)) {
|
if (class_exists('Symfony\Component\Debug\Exception\ContextErrorException', false)) {
|
||||||
@ -62,10 +66,10 @@ class ErrorHandlerTest extends \PHPUnit_Framework_TestCase
|
|||||||
$that->assertEquals(2, $exception->getLine());
|
$that->assertEquals(2, $exception->getLine());
|
||||||
if (PHP_VERSION_ID < 70000) {
|
if (PHP_VERSION_ID < 70000) {
|
||||||
$that->assertEquals(E_STRICT, $exception->getSeverity());
|
$that->assertEquals(E_STRICT, $exception->getSeverity());
|
||||||
$that->assertStringStartsWith('Runtime Notice: Declaration of _CompileTimeError::foo() should be compatible with', $exception->getMessage());
|
$that->assertStringStartsWith('Runtime Notice: Declaration', $exception->getMessage());
|
||||||
} else {
|
} else {
|
||||||
$that->assertEquals(E_WARNING, $exception->getSeverity());
|
$that->assertEquals(E_WARNING, $exception->getSeverity());
|
||||||
$that->assertStringStartsWith('Warning: Declaration of _CompileTimeError::foo() should be compatible with', $exception->getMessage());
|
$that->assertStringStartsWith('Warning: Declaration', $exception->getMessage());
|
||||||
}
|
}
|
||||||
$that->assertArrayHasKey('bar', $exception->getContext());
|
$that->assertArrayHasKey('bar', $exception->getContext());
|
||||||
};
|
};
|
||||||
|
Binary file not shown.
@ -44,4 +44,4 @@ $phar->addFromString('schema/project-1.0.xsd', <<<EOT
|
|||||||
</xsd:schema>
|
</xsd:schema>
|
||||||
EOT
|
EOT
|
||||||
);
|
);
|
||||||
$phar->setStub('<?php require_once "phar://ProjectWithXsdExtensionInPhar.phar/ProjectWithXsdExtensionInPhar.php"; __HALT_COMPILER(); ?>');
|
$phar->setStub('<?php Phar::mapPhar("ProjectWithXsdExtensionInPhar.phar"); require_once "phar://ProjectWithXsdExtensionInPhar.phar/ProjectWithXsdExtensionInPhar.php"; __HALT_COMPILER(); ?>');
|
||||||
|
@ -229,7 +229,7 @@ class Filesystem
|
|||||||
$this->chgrp(new \FilesystemIterator($file), $group, true);
|
$this->chgrp(new \FilesystemIterator($file), $group, true);
|
||||||
}
|
}
|
||||||
if (is_link($file) && function_exists('lchgrp')) {
|
if (is_link($file) && function_exists('lchgrp')) {
|
||||||
if (true !== @lchgrp($file, $group)) {
|
if (true !== @lchgrp($file, $group) || (defined('HHVM_VERSION') && !posix_getgrnam($group))) {
|
||||||
throw new IOException(sprintf('Failed to chgrp file %s', $file));
|
throw new IOException(sprintf('Failed to chgrp file %s', $file));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -15,6 +15,6 @@ abstract class DateTimeTestCase extends \PHPUnit_Framework_TestCase
|
|||||||
{
|
{
|
||||||
public static function assertDateTimeEquals(\DateTime $expected, \DateTime $actual)
|
public static function assertDateTimeEquals(\DateTime $expected, \DateTime $actual)
|
||||||
{
|
{
|
||||||
self::assertEquals($expected->format('c'), $actual->format('c'));
|
self::assertEquals($expected->format('U'), $actual->format('U'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -216,7 +216,6 @@ class NativeSessionStorageTest extends \PHPUnit_Framework_TestCase
|
|||||||
{
|
{
|
||||||
$storage = $this->getStorage();
|
$storage = $this->getStorage();
|
||||||
|
|
||||||
$this->assertFalse(isset($_SESSION));
|
|
||||||
$this->assertFalse($storage->getSaveHandler()->isActive());
|
$this->assertFalse($storage->getSaveHandler()->isActive());
|
||||||
$this->assertFalse($storage->isStarted());
|
$this->assertFalse($storage->isStarted());
|
||||||
|
|
||||||
|
@ -91,7 +91,6 @@ class PhpBridgeSessionStorageTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
$storage = $this->getStorage();
|
$storage = $this->getStorage();
|
||||||
|
|
||||||
$this->assertFalse(isset($_SESSION));
|
|
||||||
$this->assertFalse($storage->getSaveHandler()->isActive());
|
$this->assertFalse($storage->getSaveHandler()->isActive());
|
||||||
$this->assertFalse($storage->isStarted());
|
$this->assertFalse($storage->isStarted());
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ class PhpExecutableFinder
|
|||||||
{
|
{
|
||||||
// HHVM support
|
// HHVM support
|
||||||
if (defined('HHVM_VERSION')) {
|
if (defined('HHVM_VERSION')) {
|
||||||
return (false !== ($hhvm = getenv('PHP_BINARY')) ? $hhvm : PHP_BINARY).($includeArgs ? ' '.implode(' ', $this->findArguments()) : '');
|
return (false !== (getenv('PHP_BINARY')) ?: PHP_BINARY).($includeArgs ? ' '.implode(' ', $this->findArguments()) : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
// PHP_BINARY return the current sapi executable
|
// PHP_BINARY return the current sapi executable
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
namespace Symfony\Component\Process\Tests;
|
namespace Symfony\Component\Process\Tests;
|
||||||
|
|
||||||
use Symfony\Component\Process\Exception\LogicException;
|
use Symfony\Component\Process\Exception\LogicException;
|
||||||
|
use Symfony\Component\Process\PhpExecutableFinder;
|
||||||
use Symfony\Component\Process\Process;
|
use Symfony\Component\Process\Process;
|
||||||
use Symfony\Component\Process\Exception\RuntimeException;
|
use Symfony\Component\Process\Exception\RuntimeException;
|
||||||
use Symfony\Component\Process\ProcessPipes;
|
use Symfony\Component\Process\ProcessPipes;
|
||||||
@ -21,10 +22,18 @@ use Symfony\Component\Process\ProcessPipes;
|
|||||||
*/
|
*/
|
||||||
abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
|
protected static $phpBin;
|
||||||
|
|
||||||
|
public static function setUpBeforeClass()
|
||||||
|
{
|
||||||
|
$phpBin = new PhpExecutableFinder();
|
||||||
|
self::$phpBin = $phpBin->find();
|
||||||
|
}
|
||||||
|
|
||||||
public function testThatProcessDoesNotThrowWarningDuringRun()
|
public function testThatProcessDoesNotThrowWarningDuringRun()
|
||||||
{
|
{
|
||||||
@trigger_error('Test Error', E_USER_NOTICE);
|
@trigger_error('Test Error', E_USER_NOTICE);
|
||||||
$process = $this->getProcess("php -r 'sleep(3)'");
|
$process = $this->getProcess(self::$phpBin." -r 'sleep(3)'");
|
||||||
$process->run();
|
$process->run();
|
||||||
$actualError = error_get_last();
|
$actualError = error_get_last();
|
||||||
$this->assertEquals('Test Error', $actualError['message']);
|
$this->assertEquals('Test Error', $actualError['message']);
|
||||||
@ -158,7 +167,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testSetStdinWhileRunningThrowsAnException()
|
public function testSetStdinWhileRunningThrowsAnException()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "usleep(500000);"');
|
$process = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
|
||||||
$process->start();
|
$process->start();
|
||||||
try {
|
try {
|
||||||
$process->setStdin('foobar');
|
$process->setStdin('foobar');
|
||||||
@ -177,7 +186,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
*/
|
*/
|
||||||
public function testInvalidStdin($value)
|
public function testInvalidStdin($value)
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -v');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->setStdin($value);
|
$process->setStdin($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,7 +204,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
*/
|
*/
|
||||||
public function testValidStdin($expected, $value)
|
public function testValidStdin($expected, $value)
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -v');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->setStdin($value);
|
$process->setStdin($value);
|
||||||
$this->assertSame($expected, $process->getStdin());
|
$this->assertSame($expected, $process->getStdin());
|
||||||
}
|
}
|
||||||
@ -452,7 +461,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testStartIsNonBlocking()
|
public function testStartIsNonBlocking()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "usleep(500000);"');
|
$process = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
|
||||||
$start = microtime(true);
|
$start = microtime(true);
|
||||||
$process->start();
|
$process->start();
|
||||||
$end = microtime(true);
|
$end = microtime(true);
|
||||||
@ -462,14 +471,14 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testUpdateStatus()
|
public function testUpdateStatus()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -h');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->run();
|
$process->run();
|
||||||
$this->assertTrue(strlen($process->getOutput()) > 0);
|
$this->assertTrue(strlen($process->getOutput()) > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetExitCodeIsNullOnStart()
|
public function testGetExitCodeIsNullOnStart()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "usleep(200000);"');
|
$process = $this->getProcess(self::$phpBin.' -r "usleep(200000);"');
|
||||||
$this->assertNull($process->getExitCode());
|
$this->assertNull($process->getExitCode());
|
||||||
$process->start();
|
$process->start();
|
||||||
$this->assertNull($process->getExitCode());
|
$this->assertNull($process->getExitCode());
|
||||||
@ -479,7 +488,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testGetExitCodeIsNullOnWhenStartingAgain()
|
public function testGetExitCodeIsNullOnWhenStartingAgain()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "usleep(200000);"');
|
$process = $this->getProcess(self::$phpBin.' -r "usleep(200000);"');
|
||||||
$process->run();
|
$process->run();
|
||||||
$this->assertEquals(0, $process->getExitCode());
|
$this->assertEquals(0, $process->getExitCode());
|
||||||
$process->start();
|
$process->start();
|
||||||
@ -490,14 +499,14 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testGetExitCode()
|
public function testGetExitCode()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -m');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->run();
|
$process->run();
|
||||||
$this->assertSame(0, $process->getExitCode());
|
$this->assertSame(0, $process->getExitCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testStatus()
|
public function testStatus()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "usleep(500000);"');
|
$process = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
|
||||||
$this->assertFalse($process->isRunning());
|
$this->assertFalse($process->isRunning());
|
||||||
$this->assertFalse($process->isStarted());
|
$this->assertFalse($process->isStarted());
|
||||||
$this->assertFalse($process->isTerminated());
|
$this->assertFalse($process->isTerminated());
|
||||||
@ -516,7 +525,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testStop()
|
public function testStop()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "sleep(4);"');
|
$process = $this->getProcess(self::$phpBin.' -r "sleep(4);"');
|
||||||
$process->start();
|
$process->start();
|
||||||
$this->assertTrue($process->isRunning());
|
$this->assertTrue($process->isRunning());
|
||||||
$process->stop();
|
$process->stop();
|
||||||
@ -525,14 +534,14 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testIsSuccessful()
|
public function testIsSuccessful()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -m');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->run();
|
$process->run();
|
||||||
$this->assertTrue($process->isSuccessful());
|
$this->assertTrue($process->isSuccessful());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testIsSuccessfulOnlyAfterTerminated()
|
public function testIsSuccessfulOnlyAfterTerminated()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "sleep(1);"');
|
$process = $this->getProcess(self::$phpBin.' -r "sleep(1);"');
|
||||||
$process->start();
|
$process->start();
|
||||||
while ($process->isRunning()) {
|
while ($process->isRunning()) {
|
||||||
$this->assertFalse($process->isSuccessful());
|
$this->assertFalse($process->isSuccessful());
|
||||||
@ -544,7 +553,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testIsNotSuccessful()
|
public function testIsNotSuccessful()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "usleep(500000);throw new \Exception(\'BOUM\');"');
|
$process = $this->getProcess(self::$phpBin.' -r "usleep(500000);throw new \Exception(\'BOUM\');"');
|
||||||
$process->start();
|
$process->start();
|
||||||
$this->assertTrue($process->isRunning());
|
$this->assertTrue($process->isRunning());
|
||||||
$process->wait();
|
$process->wait();
|
||||||
@ -557,7 +566,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->markTestSkipped('Windows does not support POSIX signals');
|
$this->markTestSkipped('Windows does not support POSIX signals');
|
||||||
}
|
}
|
||||||
|
|
||||||
$process = $this->getProcess('php -m');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->run();
|
$process->run();
|
||||||
$this->assertFalse($process->hasBeenSignaled());
|
$this->assertFalse($process->hasBeenSignaled());
|
||||||
}
|
}
|
||||||
@ -568,7 +577,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->markTestSkipped('Windows does not support POSIX signals');
|
$this->markTestSkipped('Windows does not support POSIX signals');
|
||||||
}
|
}
|
||||||
|
|
||||||
$process = $this->getProcess('php -m');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->run();
|
$process->run();
|
||||||
$this->assertFalse($process->hasBeenSignaled());
|
$this->assertFalse($process->hasBeenSignaled());
|
||||||
}
|
}
|
||||||
@ -579,7 +588,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->markTestSkipped('Windows does not support POSIX signals');
|
$this->markTestSkipped('Windows does not support POSIX signals');
|
||||||
}
|
}
|
||||||
|
|
||||||
$process = $this->getProcess('php -m');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->run();
|
$process->run();
|
||||||
$this->assertEquals(0, $process->getTermSignal());
|
$this->assertEquals(0, $process->getTermSignal());
|
||||||
}
|
}
|
||||||
@ -590,7 +599,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->markTestSkipped('Windows does not support POSIX signals');
|
$this->markTestSkipped('Windows does not support POSIX signals');
|
||||||
}
|
}
|
||||||
|
|
||||||
$process = $this->getProcess('php -r "sleep(4);"');
|
$process = $this->getProcess(self::$phpBin.' -r "sleep(4);"');
|
||||||
$process->start();
|
$process->start();
|
||||||
$process->stop();
|
$process->stop();
|
||||||
$this->assertTrue($process->hasBeenSignaled());
|
$this->assertTrue($process->hasBeenSignaled());
|
||||||
@ -605,7 +614,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
// SIGTERM is only defined if pcntl extension is present
|
// SIGTERM is only defined if pcntl extension is present
|
||||||
$termSignal = defined('SIGTERM') ? SIGTERM : 15;
|
$termSignal = defined('SIGTERM') ? SIGTERM : 15;
|
||||||
|
|
||||||
$process = $this->getProcess('php -r "sleep(4);"');
|
$process = $this->getProcess(self::$phpBin.' -r "sleep(4);"');
|
||||||
$process->start();
|
$process->start();
|
||||||
$process->stop();
|
$process->stop();
|
||||||
|
|
||||||
@ -634,7 +643,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testRestart()
|
public function testRestart()
|
||||||
{
|
{
|
||||||
$process1 = $this->getProcess('php -r "echo getmypid();"');
|
$process1 = $this->getProcess(self::$phpBin.' -r "echo getmypid();"');
|
||||||
$process1->run();
|
$process1->run();
|
||||||
$process2 = $process1->restart();
|
$process2 = $process1->restart();
|
||||||
|
|
||||||
@ -656,7 +665,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
// Sleep doesn't work as it will allow the process to handle signals and close
|
// Sleep doesn't work as it will allow the process to handle signals and close
|
||||||
// file handles from the other end.
|
// file handles from the other end.
|
||||||
$process = $this->getProcess('php -r "while (true) {}"');
|
$process = $this->getProcess(self::$phpBin.' -r "while (true) {}"');
|
||||||
$process->start();
|
$process->start();
|
||||||
|
|
||||||
// PHP will deadlock when it tries to cleanup $process
|
// PHP will deadlock when it tries to cleanup $process
|
||||||
@ -665,7 +674,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
public function testRunProcessWithTimeout()
|
public function testRunProcessWithTimeout()
|
||||||
{
|
{
|
||||||
$timeout = 0.5;
|
$timeout = 0.5;
|
||||||
$process = $this->getProcess('php -r "usleep(600000);"');
|
$process = $this->getProcess(self::$phpBin.' -r "usleep(600000);"');
|
||||||
$process->setTimeout($timeout);
|
$process->setTimeout($timeout);
|
||||||
$start = microtime(true);
|
$start = microtime(true);
|
||||||
try {
|
try {
|
||||||
@ -687,13 +696,13 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testCheckTimeoutOnNonStartedProcess()
|
public function testCheckTimeoutOnNonStartedProcess()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "sleep(3);"');
|
$process = $this->getProcess(self::$phpBin.' -r "sleep(3);"');
|
||||||
$process->checkTimeout();
|
$process->checkTimeout();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testCheckTimeoutOnTerminatedProcess()
|
public function testCheckTimeoutOnTerminatedProcess()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -v');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->run();
|
$process->run();
|
||||||
$process->checkTimeout();
|
$process->checkTimeout();
|
||||||
}
|
}
|
||||||
@ -702,7 +711,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
{
|
{
|
||||||
$timeout = 0.5;
|
$timeout = 0.5;
|
||||||
$precision = 100000;
|
$precision = 100000;
|
||||||
$process = $this->getProcess('php -r "sleep(3);"');
|
$process = $this->getProcess(self::$phpBin.' -r "sleep(3);"');
|
||||||
$process->setTimeout($timeout);
|
$process->setTimeout($timeout);
|
||||||
$start = microtime(true);
|
$start = microtime(true);
|
||||||
|
|
||||||
@ -738,7 +747,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testGetPid()
|
public function testGetPid()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "usleep(500000);"');
|
$process = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
|
||||||
$process->start();
|
$process->start();
|
||||||
$this->assertGreaterThan(0, $process->getPid());
|
$this->assertGreaterThan(0, $process->getPid());
|
||||||
$process->wait();
|
$process->wait();
|
||||||
@ -746,13 +755,13 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testGetPidIsNullBeforeStart()
|
public function testGetPidIsNullBeforeStart()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "sleep(1);"');
|
$process = $this->getProcess(self::$phpBin.' -r "sleep(1);"');
|
||||||
$this->assertNull($process->getPid());
|
$this->assertNull($process->getPid());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetPidIsNullAfterRun()
|
public function testGetPidIsNullAfterRun()
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -m');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->run();
|
$process->run();
|
||||||
$this->assertNull($process->getPid());
|
$this->assertNull($process->getPid());
|
||||||
}
|
}
|
||||||
@ -797,7 +806,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
public function testSignalProcessNotRunning()
|
public function testSignalProcessNotRunning()
|
||||||
{
|
{
|
||||||
$this->verifyPosixIsEnabled();
|
$this->verifyPosixIsEnabled();
|
||||||
$process = $this->getProcess('php -m');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$process->signal(SIGHUP);
|
$process->signal(SIGHUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -806,7 +815,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
*/
|
*/
|
||||||
public function testMethodsThatNeedARunningProcess($method)
|
public function testMethodsThatNeedARunningProcess($method)
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -m');
|
$process = $this->getProcess(self::$phpBin.' -v');
|
||||||
$this->setExpectedException('Symfony\Component\Process\Exception\LogicException', sprintf('Process must be started before calling %s.', $method));
|
$this->setExpectedException('Symfony\Component\Process\Exception\LogicException', sprintf('Process must be started before calling %s.', $method));
|
||||||
$process->{$method}();
|
$process->{$method}();
|
||||||
}
|
}
|
||||||
@ -827,7 +836,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
*/
|
*/
|
||||||
public function testMethodsThatNeedATerminatedProcess($method)
|
public function testMethodsThatNeedATerminatedProcess($method)
|
||||||
{
|
{
|
||||||
$process = $this->getProcess('php -r "sleep(1);"');
|
$process = $this->getProcess(self::$phpBin.' -r "sleep(1);"');
|
||||||
$process->start();
|
$process->start();
|
||||||
try {
|
try {
|
||||||
$process->{$method}();
|
$process->{$method}();
|
||||||
@ -869,7 +878,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->markTestSkipped('POSIX signals do not work on Windows');
|
$this->markTestSkipped('POSIX signals do not work on Windows');
|
||||||
}
|
}
|
||||||
|
|
||||||
$process = $this->getProcess('php -r "sleep(3);"');
|
$process = $this->getProcess(self::$phpBin.' -r "sleep(3);"');
|
||||||
$process->start();
|
$process->start();
|
||||||
$process->signal(-4);
|
$process->signal(-4);
|
||||||
}
|
}
|
||||||
@ -883,7 +892,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->markTestSkipped('POSIX signals do not work on Windows');
|
$this->markTestSkipped('POSIX signals do not work on Windows');
|
||||||
}
|
}
|
||||||
|
|
||||||
$process = $this->getProcess('php -r "sleep(3);"');
|
$process = $this->getProcess(self::$phpBin.' -r "sleep(3);"');
|
||||||
$process->start();
|
$process->start();
|
||||||
$process->signal('Céphalopodes');
|
$process->signal('Céphalopodes');
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ class ExecutableFinderTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->markTestSkipped('Cannot test when open_basedir is set');
|
$this->markTestSkipped('Cannot test when open_basedir is set');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->iniSet('open_basedir', dirname(PHP_BINARY).PATH_SEPARATOR.'/');
|
$this->iniSet('open_basedir', dirname(PHP_BINARY).(!defined('HHVM_VERSION') ? PATH_SEPARATOR.'/' : ''));
|
||||||
|
|
||||||
$finder = new ExecutableFinder();
|
$finder = new ExecutableFinder();
|
||||||
$result = $finder->find($this->getPhpBinaryName());
|
$result = $finder->find($this->getPhpBinaryName());
|
||||||
@ -125,7 +125,7 @@ class ExecutableFinderTest extends \PHPUnit_Framework_TestCase
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->setPath('');
|
$this->setPath('');
|
||||||
$this->iniSet('open_basedir', PHP_BINARY.PATH_SEPARATOR.'/');
|
$this->iniSet('open_basedir', PHP_BINARY.(!defined('HHVM_VERSION') ? PATH_SEPARATOR.'/' : ''));
|
||||||
|
|
||||||
$finder = new ExecutableFinder();
|
$finder = new ExecutableFinder();
|
||||||
$result = $finder->find($this->getPhpBinaryName(), false);
|
$result = $finder->find($this->getPhpBinaryName(), false);
|
||||||
|
@ -53,10 +53,10 @@ class PhpExecutableFinderTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
$f = new PhpExecutableFinder();
|
$f = new PhpExecutableFinder();
|
||||||
|
|
||||||
$current = $f->find();
|
$current = getenv('PHP_BINARY') ?: PHP_BINARY;
|
||||||
|
|
||||||
$this->assertEquals($f->find(), $current.' --php', '::find() returns the executable PHP');
|
$this->assertEquals($current.' --php', $f->find(), '::find() returns the executable PHP');
|
||||||
$this->assertEquals($f->find(false), $current, '::find() returns the executable PHP');
|
$this->assertEquals($current, $f->find(false), '::find() returns the executable PHP');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -150,7 +150,7 @@ class SimpleProcessTest extends AbstractProcessTest
|
|||||||
public function testStopTerminatesProcessCleanly()
|
public function testStopTerminatesProcessCleanly()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$process = $this->getProcess('php -r "echo \'foo\'; sleep(1); echo \'bar\';"');
|
$process = $this->getProcess(self::$phpBin.' -r "echo \'foo\'; sleep(1); echo \'bar\';"');
|
||||||
$process->run(function () use ($process) {
|
$process->run(function () use ($process) {
|
||||||
$process->stop();
|
$process->stop();
|
||||||
});
|
});
|
||||||
@ -164,7 +164,7 @@ class SimpleProcessTest extends AbstractProcessTest
|
|||||||
$this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
|
$this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$process = $this->getProcess('php -r "echo \'foo\'; sleep(1); echo \'bar\';"');
|
$process = $this->getProcess(self::$phpBin.' -r "echo \'foo\'; sleep(1); echo \'bar\';"');
|
||||||
$process->run(function () use ($process) {
|
$process->run(function () use ($process) {
|
||||||
if ($process->isRunning()) {
|
if ($process->isRunning()) {
|
||||||
$process->signal(defined('SIGKILL') ? SIGKILL : 9);
|
$process->signal(defined('SIGKILL') ? SIGKILL : 9);
|
||||||
@ -180,7 +180,7 @@ class SimpleProcessTest extends AbstractProcessTest
|
|||||||
$this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
|
$this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$process = $this->getProcess('php -r "echo \'foo\'; sleep(1); echo \'bar\';"');
|
$process = $this->getProcess(self::$phpBin.' -r "echo \'foo\'; sleep(1); echo \'bar\';"');
|
||||||
$process->run(function () use ($process) {
|
$process->run(function () use ($process) {
|
||||||
if ($process->isRunning()) {
|
if ($process->isRunning()) {
|
||||||
$process->signal(defined('SIGTERM') ? SIGTERM : 15);
|
$process->signal(defined('SIGTERM') ? SIGTERM : 15);
|
||||||
|
@ -39,7 +39,7 @@ class PhpGeneratorDumperTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
$this->routeCollection = new RouteCollection();
|
$this->routeCollection = new RouteCollection();
|
||||||
$this->generatorDumper = new PhpGeneratorDumper($this->routeCollection);
|
$this->generatorDumper = new PhpGeneratorDumper($this->routeCollection);
|
||||||
$this->testTmpFilepath = sys_get_temp_dir().DIRECTORY_SEPARATOR.'php_generator.php';
|
$this->testTmpFilepath = sys_get_temp_dir().DIRECTORY_SEPARATOR.'php_generator.'.$this->getName().'.php';
|
||||||
@unlink($this->testTmpFilepath);
|
@unlink($this->testTmpFilepath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,12 +119,12 @@ class StopwatchEventTest extends \PHPUnit_Framework_TestCase
|
|||||||
public function testStartTime()
|
public function testStartTime()
|
||||||
{
|
{
|
||||||
$event = new StopwatchEvent(microtime(true) * 1000);
|
$event = new StopwatchEvent(microtime(true) * 1000);
|
||||||
$this->assertTrue($event->getStartTime() < 0.5);
|
$this->assertLessThan(0.5, $event->getStartTime());
|
||||||
|
|
||||||
$event = new StopwatchEvent(microtime(true) * 1000);
|
$event = new StopwatchEvent(microtime(true) * 1000);
|
||||||
$event->start();
|
$event->start();
|
||||||
$event->stop();
|
$event->stop();
|
||||||
$this->assertTrue($event->getStartTime() < 1);
|
$this->assertLessThan(1, $event->getStartTime());
|
||||||
|
|
||||||
$event = new StopwatchEvent(microtime(true) * 1000);
|
$event = new StopwatchEvent(microtime(true) * 1000);
|
||||||
$event->start();
|
$event->start();
|
||||||
|
@ -46,15 +46,19 @@ class InlineTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->markTestSkipped('Your platform does not support locales.');
|
$this->markTestSkipped('Your platform does not support locales.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$required_locales = array('fr_FR.UTF-8', 'fr_FR.UTF8', 'fr_FR.utf-8', 'fr_FR.utf8', 'French_France.1252');
|
try {
|
||||||
if (false === setlocale(LC_ALL, $required_locales)) {
|
$requiredLocales = array('fr_FR.UTF-8', 'fr_FR.UTF8', 'fr_FR.utf-8', 'fr_FR.utf8', 'French_France.1252');
|
||||||
$this->markTestSkipped('Could not set any of required locales: '.implode(', ', $required_locales));
|
if (false === setlocale(LC_NUMERIC, $requiredLocales)) {
|
||||||
|
$this->markTestSkipped('Could not set any of required locales: '.implode(', ', $requiredLocales));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->assertEquals('1.2', Inline::dump(1.2));
|
$this->assertEquals('1.2', Inline::dump(1.2));
|
||||||
$this->assertContains('fr', strtolower(setlocale(LC_NUMERIC, 0)));
|
$this->assertContains('fr', strtolower(setlocale(LC_NUMERIC, 0)));
|
||||||
|
setlocale(LC_NUMERIC, $locale);
|
||||||
setlocale(LC_ALL, $locale);
|
} catch (\Exception $e) {
|
||||||
|
setlocale(LC_NUMERIC, $locale);
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHashStringsResemblingExponentialNumericsShouldNotBeChangedToINF()
|
public function testHashStringsResemblingExponentialNumericsShouldNotBeChangedToINF()
|
||||||
|
Reference in New Issue
Block a user