use value of DIRECTORY_SEPARATOR to detect Windows

This commit unifies the detection of Windows builds across the Symfony
codebase.
This commit is contained in:
Christian Flothmann 2014-12-29 13:05:07 +01:00
parent 0469ea82b1
commit 20a427de7c
23 changed files with 67 additions and 67 deletions

View File

@ -84,7 +84,7 @@ EOF
$this->warmup($warmupDir, $realCacheDir, !$input->getOption('no-optional-warmers')); $this->warmup($warmupDir, $realCacheDir, !$input->getOption('no-optional-warmers'));
$filesystem->rename($realCacheDir, $oldCacheDir); $filesystem->rename($realCacheDir, $oldCacheDir);
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
sleep(1); // workaround for Windows PHP rename bug sleep(1); // workaround for Windows PHP rename bug
} }
$filesystem->rename($warmupDir, $realCacheDir); $filesystem->rename($warmupDir, $realCacheDir);

View File

@ -30,7 +30,7 @@ class SecurityRoutingIntegrationTest extends WebTestCase
*/ */
public function testRoutingErrorIsExposedWhenNotProtected($config) public function testRoutingErrorIsExposedWhenNotProtected($config)
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD') && PHP_VERSION_ID < 50309) { if ('\\' === DIRECTORY_SEPARATOR && PHP_VERSION_ID < 50309) {
$this->markTestSkipped('Test hangs on Windows & PHP due to https://bugs.php.net/bug.php?id=60120 fixed in http://svn.php.net/viewvc?view=revision&revision=318366'); $this->markTestSkipped('Test hangs on Windows & PHP due to https://bugs.php.net/bug.php?id=60120 fixed in http://svn.php.net/viewvc?view=revision&revision=318366');
} }
@ -46,7 +46,7 @@ class SecurityRoutingIntegrationTest extends WebTestCase
*/ */
public function testRoutingErrorIsNotExposedForProtectedResourceWhenLoggedInWithInsufficientRights($config) public function testRoutingErrorIsNotExposedForProtectedResourceWhenLoggedInWithInsufficientRights($config)
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD') && PHP_VERSION_ID < 50309) { if ('\\' === DIRECTORY_SEPARATOR && PHP_VERSION_ID < 50309) {
$this->markTestSkipped('Test hangs on Windows & PHP due to https://bugs.php.net/bug.php?id=60120 fixed in http://svn.php.net/viewvc?view=revision&revision=318366'); $this->markTestSkipped('Test hangs on Windows & PHP due to https://bugs.php.net/bug.php?id=60120 fixed in http://svn.php.net/viewvc?view=revision&revision=318366');
} }

View File

@ -812,7 +812,7 @@ class Application
*/ */
public function getTerminalDimensions() public function getTerminalDimensions()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
// extract [w, H] from "wxh (WxH)" // extract [w, H] from "wxh (WxH)"
if (preg_match('/^(\d+)x\d+ \(\d+x(\d+)\)$/', trim(getenv('ANSICON')), $matches)) { if (preg_match('/^(\d+)x\d+ \(\d+x(\d+)\)$/', trim(getenv('ANSICON')), $matches)) {
return array((int) $matches[1], (int) $matches[2]); return array((int) $matches[1], (int) $matches[2]);

View File

@ -255,7 +255,7 @@ class DialogHelper extends Helper
*/ */
public function askHiddenResponse(OutputInterface $output, $question, $fallback = true) public function askHiddenResponse(OutputInterface $output, $question, $fallback = true)
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$exe = __DIR__.'/../Resources/bin/hiddeninput.exe'; $exe = __DIR__.'/../Resources/bin/hiddeninput.exe';
// handle code running from a phar // handle code running from a phar

View File

@ -99,7 +99,7 @@ class DialogHelperTest extends \PHPUnit_Framework_TestCase
*/ */
public function testAskHiddenResponse() public function testAskHiddenResponse()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('This test is not supported on Windows'); $this->markTestSkipped('This test is not supported on Windows');
} }

View File

@ -152,7 +152,7 @@ class Filesystem
} }
} else { } else {
// https://bugs.php.net/bug.php?id=52176 // https://bugs.php.net/bug.php?id=52176
if (defined('PHP_WINDOWS_VERSION_MAJOR') && is_dir($file)) { if ('\\' === DIRECTORY_SEPARATOR && is_dir($file)) {
if (true !== @rmdir($file)) { if (true !== @rmdir($file)) {
throw new IOException(sprintf('Failed to remove file %s', $file)); throw new IOException(sprintf('Failed to remove file %s', $file));
} }
@ -295,7 +295,7 @@ class Filesystem
if (true !== @symlink($originDir, $targetDir)) { if (true !== @symlink($originDir, $targetDir)) {
$report = error_get_last(); $report = error_get_last();
if (is_array($report)) { if (is_array($report)) {
if (defined('PHP_WINDOWS_VERSION_MAJOR') && false !== strpos($report['message'], 'error code(1314)')) { if ('\\' === DIRECTORY_SEPARATOR && false !== strpos($report['message'], 'error code(1314)')) {
throw new IOException('Unable to create symlink due to error code 1314: \'A required privilege is not held by the client\'. Do you have the required Administrator-rights?'); throw new IOException('Unable to create symlink due to error code 1314: \'A required privilege is not held by the client\'. Do you have the required Administrator-rights?');
} }
} }
@ -315,7 +315,7 @@ class Filesystem
public function makePathRelative($endPath, $startPath) public function makePathRelative($endPath, $startPath)
{ {
// Normalize separators on Windows // Normalize separators on Windows
if (defined('PHP_WINDOWS_VERSION_MAJOR')) { if ('\\' === DIRECTORY_SEPARATOR) {
$endPath = strtr($endPath, '\\', '/'); $endPath = strtr($endPath, '\\', '/');
$startPath = strtr($startPath, '\\', '/'); $startPath = strtr($startPath, '\\', '/');
} }

View File

@ -32,7 +32,7 @@ class FilesystemTest extends \PHPUnit_Framework_TestCase
public static function setUpBeforeClass() public static function setUpBeforeClass()
{ {
if (defined('PHP_WINDOWS_VERSION_MAJOR')) { if ('\\' === DIRECTORY_SEPARATOR) {
self::$symlinkOnWindows = true; self::$symlinkOnWindows = true;
$originDir = tempnam(sys_get_temp_dir(), 'sl'); $originDir = tempnam(sys_get_temp_dir(), 'sl');
$targetDir = tempnam(sys_get_temp_dir(), 'sl'); $targetDir = tempnam(sys_get_temp_dir(), 'sl');
@ -798,7 +798,7 @@ class FilesystemTest extends \PHPUnit_Framework_TestCase
array('/a/aab/bb/', '/a/aa/', '../aab/bb/'), array('/a/aab/bb/', '/a/aa/', '../aab/bb/'),
); );
if (defined('PHP_WINDOWS_VERSION_MAJOR')) { if ('\\' === DIRECTORY_SEPARATOR) {
$paths[] = array('c:\var\lib/symfony/src/Symfony/', 'c:/var/lib/symfony/', 'src/Symfony/'); $paths[] = array('c:\var\lib/symfony/src/Symfony/', 'c:/var/lib/symfony/', 'src/Symfony/');
} }
@ -960,7 +960,7 @@ class FilesystemTest extends \PHPUnit_Framework_TestCase
$this->assertSame('bar', file_get_contents($filename)); $this->assertSame('bar', file_get_contents($filename));
// skip mode check on Windows // skip mode check on Windows
if (!defined('PHP_WINDOWS_VERSION_MAJOR')) { if ('\\' !== DIRECTORY_SEPARATOR) {
$this->assertEquals(753, $this->getFilePermissions($filename)); $this->assertEquals(753, $this->getFilePermissions($filename));
} }
} }
@ -975,7 +975,7 @@ class FilesystemTest extends \PHPUnit_Framework_TestCase
$this->assertSame('bar', file_get_contents($filename)); $this->assertSame('bar', file_get_contents($filename));
// skip mode check on Windows // skip mode check on Windows
if (!defined('PHP_WINDOWS_VERSION_MAJOR')) { if ('\\' !== DIRECTORY_SEPARATOR) {
$this->assertEquals(600, $this->getFilePermissions($filename)); $this->assertEquals(600, $this->getFilePermissions($filename));
} }
} }
@ -1031,21 +1031,21 @@ class FilesystemTest extends \PHPUnit_Framework_TestCase
$this->markTestSkipped('symlink is not supported'); $this->markTestSkipped('symlink is not supported');
} }
if (defined('PHP_WINDOWS_VERSION_MAJOR') && false === self::$symlinkOnWindows) { if ('\\' === DIRECTORY_SEPARATOR && false === self::$symlinkOnWindows) {
$this->markTestSkipped('symlink requires "Create symbolic links" privilege on Windows'); $this->markTestSkipped('symlink requires "Create symbolic links" privilege on Windows');
} }
} }
private function markAsSkippedIfChmodIsMissing() private function markAsSkippedIfChmodIsMissing()
{ {
if (defined('PHP_WINDOWS_VERSION_MAJOR')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('chmod is not supported on Windows'); $this->markTestSkipped('chmod is not supported on Windows');
} }
} }
private function markAsSkippedIfPosixIsMissing() private function markAsSkippedIfPosixIsMissing()
{ {
if (defined('PHP_WINDOWS_VERSION_MAJOR') || !function_exists('posix_isatty')) { if ('\\' === DIRECTORY_SEPARATOR || !function_exists('posix_isatty')) {
$this->markTestSkipped('POSIX is not supported'); $this->markTestSkipped('POSIX is not supported');
} }
} }

View File

@ -28,7 +28,7 @@ class PathFilterIterator extends MultiplePcreFilterIterator
{ {
$filename = $this->current()->getRelativePathname(); $filename = $this->current()->getRelativePathname();
if (defined('PHP_WINDOWS_VERSION_MAJOR')) { if ('\\' === DIRECTORY_SEPARATOR) {
$filename = strtr($filename, '\\', '/'); $filename = strtr($filename, '\\', '/');
} }

View File

@ -734,7 +734,7 @@ class FinderTest extends Iterator\RealIteratorTestCase
*/ */
public function testAccessDeniedException(Adapter\AdapterInterface $adapter) public function testAccessDeniedException(Adapter\AdapterInterface $adapter)
{ {
if (defined('PHP_WINDOWS_VERSION_MAJOR')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('chmod is not supported on Windows'); $this->markTestSkipped('chmod is not supported on Windows');
} }
@ -773,7 +773,7 @@ class FinderTest extends Iterator\RealIteratorTestCase
*/ */
public function testIgnoredAccessDeniedException(Adapter\AdapterInterface $adapter) public function testIgnoredAccessDeniedException(Adapter\AdapterInterface $adapter)
{ {
if (defined('PHP_WINDOWS_VERSION_MAJOR')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('chmod is not supported on Windows'); $this->markTestSkipped('chmod is not supported on Windows');
} }

View File

@ -45,7 +45,7 @@ class FileBinaryMimeTypeGuesser implements MimeTypeGuesserInterface
*/ */
public static function isSupported() public static function isSupported()
{ {
return !defined('PHP_WINDOWS_VERSION_BUILD') && function_exists('passthru') && function_exists('escapeshellarg'); return '\\' !== DIRECTORY_SEPARATOR && function_exists('passthru') && function_exists('escapeshellarg');
} }
/** /**

View File

@ -74,7 +74,7 @@ class MimeTypeTest extends \PHPUnit_Framework_TestCase
public function testGuessWithNonReadablePath() public function testGuessWithNonReadablePath()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Can not verify chmod operations on Windows'); $this->markTestSkipped('Can not verify chmod operations on Windows');
} }

View File

@ -341,7 +341,7 @@ EOF;
// Heredocs are preserved, making the output mixing Unix and Windows line // Heredocs are preserved, making the output mixing Unix and Windows line
// endings, switching to "\n" everywhere on Windows to avoid failure. // endings, switching to "\n" everywhere on Windows to avoid failure.
if (defined('PHP_WINDOWS_VERSION_MAJOR')) { if ('\\' === DIRECTORY_SEPARATOR) {
$expected = str_replace("\r\n", "\n", $expected); $expected = str_replace("\r\n", "\n", $expected);
$output = str_replace("\r\n", "\n", $output); $output = str_replace("\r\n", "\n", $output);
} }

View File

@ -72,13 +72,13 @@ class ExecutableFinder
} }
$suffixes = array(''); $suffixes = array('');
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$pathExt = getenv('PATHEXT'); $pathExt = getenv('PATHEXT');
$suffixes = $pathExt ? explode(PATH_SEPARATOR, $pathExt) : $this->suffixes; $suffixes = $pathExt ? explode(PATH_SEPARATOR, $pathExt) : $this->suffixes;
} }
foreach ($suffixes as $suffix) { foreach ($suffixes as $suffix) {
foreach ($dirs as $dir) { foreach ($dirs as $dir) {
if (is_file($file = $dir.DIRECTORY_SEPARATOR.$name.$suffix) && (defined('PHP_WINDOWS_VERSION_BUILD') || is_executable($file))) { if (is_file($file = $dir.DIRECTORY_SEPARATOR.$name.$suffix) && ('\\' === DIRECTORY_SEPARATOR || is_executable($file))) {
return $file; return $file;
} }
} }

View File

@ -60,7 +60,7 @@ class PhpExecutableFinder
} }
$dirs = array(PHP_BINDIR); $dirs = array(PHP_BINDIR);
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$dirs[] = 'C:\xampp\php\\'; $dirs[] = 'C:\xampp\php\\';
} }

View File

@ -145,7 +145,7 @@ class Process
// on Gnu/Linux, PHP builds with --enable-maintainer-zts are also affected // on Gnu/Linux, PHP builds with --enable-maintainer-zts are also affected
// @see : https://bugs.php.net/bug.php?id=51800 // @see : https://bugs.php.net/bug.php?id=51800
// @see : https://bugs.php.net/bug.php?id=50524 // @see : https://bugs.php.net/bug.php?id=50524
if (null === $this->cwd && (defined('ZEND_THREAD_SAFE') || defined('PHP_WINDOWS_VERSION_BUILD'))) { if (null === $this->cwd && (defined('ZEND_THREAD_SAFE') || '\\' === DIRECTORY_SEPARATOR)) {
$this->cwd = getcwd(); $this->cwd = getcwd();
} }
if (null !== $env) { if (null !== $env) {
@ -154,8 +154,8 @@ class Process
$this->stdin = $stdin; $this->stdin = $stdin;
$this->setTimeout($timeout); $this->setTimeout($timeout);
$this->useFileHandles = defined('PHP_WINDOWS_VERSION_BUILD'); $this->useFileHandles = '\\' === DIRECTORY_SEPARATOR;
$this->enhanceSigchildCompatibility = !defined('PHP_WINDOWS_VERSION_BUILD') && $this->isSigchildEnabled(); $this->enhanceSigchildCompatibility = '\\' !== DIRECTORY_SEPARATOR && $this->isSigchildEnabled();
$this->options = array_replace(array('suppress_errors' => true, 'binary_pipes' => true), $options); $this->options = array_replace(array('suppress_errors' => true, 'binary_pipes' => true), $options);
} }
@ -231,7 +231,7 @@ class Process
$commandline = $this->commandline; $commandline = $this->commandline;
if (defined('PHP_WINDOWS_VERSION_BUILD') && $this->enhanceWindowsCompatibility) { if ('\\' === DIRECTORY_SEPARATOR && $this->enhanceWindowsCompatibility) {
$commandline = 'cmd /V:ON /E:ON /C "('.$commandline.')'; $commandline = 'cmd /V:ON /E:ON /C "('.$commandline.')';
foreach ($this->processPipes->getFiles() as $offset => $filename) { foreach ($this->processPipes->getFiles() as $offset => $filename) {
$commandline .= ' '.$offset.'>'.ProcessUtils::escapeArgument($filename); $commandline .= ' '.$offset.'>'.ProcessUtils::escapeArgument($filename);
@ -314,8 +314,8 @@ class Process
do { do {
$this->checkTimeout(); $this->checkTimeout();
$running = defined('PHP_WINDOWS_VERSION_BUILD') ? $this->isRunning() : $this->processPipes->hasOpenHandles(); $running = '\\' === DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->hasOpenHandles();
$close = !defined('PHP_WINDOWS_VERSION_BUILD') || !$running; $close = '\\' !== DIRECTORY_SEPARATOR || !$running;
$this->readPipes(true, $close); $this->readPipes(true, $close);
} while ($running); } while ($running);
@ -379,7 +379,7 @@ class Process
{ {
$this->requireProcessIsStarted(__FUNCTION__); $this->requireProcessIsStarted(__FUNCTION__);
$this->readPipes(false, defined('PHP_WINDOWS_VERSION_BUILD') ? !$this->processInformation['running'] : true); $this->readPipes(false, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true);
return $this->stdout; return $this->stdout;
} }
@ -419,7 +419,7 @@ class Process
{ {
$this->requireProcessIsStarted(__FUNCTION__); $this->requireProcessIsStarted(__FUNCTION__);
$this->readPipes(false, defined('PHP_WINDOWS_VERSION_BUILD') ? !$this->processInformation['running'] : true); $this->readPipes(false, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true);
return $this->stderr; return $this->stderr;
} }
@ -657,7 +657,7 @@ class Process
{ {
$timeoutMicro = microtime(true) + $timeout; $timeoutMicro = microtime(true) + $timeout;
if ($this->isRunning()) { if ($this->isRunning()) {
if (defined('PHP_WINDOWS_VERSION_BUILD') && !$this->isSigchildEnabled()) { if ('\\' === DIRECTORY_SEPARATOR && !$this->isSigchildEnabled()) {
exec(sprintf("taskkill /F /T /PID %d 2>&1", $this->getPid()), $output, $exitCode); exec(sprintf("taskkill /F /T /PID %d 2>&1", $this->getPid()), $output, $exitCode);
if ($exitCode > 0) { if ($exitCode > 0) {
throw new RuntimeException('Unable to kill the process'); throw new RuntimeException('Unable to kill the process');
@ -779,7 +779,7 @@ class Process
*/ */
public function setTty($tty) public function setTty($tty)
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD') && $tty) { if ('\\' === DIRECTORY_SEPARATOR && $tty) {
throw new RuntimeException('TTY mode is not supported on Windows platform.'); throw new RuntimeException('TTY mode is not supported on Windows platform.');
} }
@ -1060,7 +1060,7 @@ class Process
$this->processInformation = proc_get_status($this->process); $this->processInformation = proc_get_status($this->process);
$this->captureExitCode(); $this->captureExitCode();
$this->readPipes($blocking, defined('PHP_WINDOWS_VERSION_BUILD') ? !$this->processInformation['running'] : true); $this->readPipes($blocking, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true);
if (!$this->processInformation['running']) { if (!$this->processInformation['running']) {
$this->close(); $this->close();

View File

@ -42,7 +42,7 @@ class ProcessUtils
//Fix for PHP bug #49446 escapeshellarg doesn't work on Windows //Fix for PHP bug #49446 escapeshellarg doesn't work on Windows
//@see https://bugs.php.net/bug.php?id=43784 //@see https://bugs.php.net/bug.php?id=43784
//@see https://bugs.php.net/bug.php?id=49446 //@see https://bugs.php.net/bug.php?id=49446
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
if ('' === $argument) { if ('' === $argument) {
return escapeshellarg($argument); return escapeshellarg($argument);
} }

View File

@ -213,7 +213,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function chainedCommandsOutputProvider() public function chainedCommandsOutputProvider()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
return array( return array(
array("2 \r\n2\r\n", '&&', '2'), array("2 \r\n2\r\n", '&&', '2'),
); );
@ -307,7 +307,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testZeroAsOutput() public function testZeroAsOutput()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
// see http://stackoverflow.com/questions/7105433/windows-batch-echo-without-new-line // see http://stackoverflow.com/questions/7105433/windows-batch-echo-without-new-line
$p = $this->getProcess('echo | set /p dummyName=0'); $p = $this->getProcess('echo | set /p dummyName=0');
} else { } else {
@ -320,7 +320,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testExitCodeCommandFailed() public function testExitCodeCommandFailed()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Windows does not support POSIX exit code'); $this->markTestSkipped('Windows does not support POSIX exit code');
} }
@ -333,7 +333,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testTTYCommand() public function testTTYCommand()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Windows does have /dev/tty support'); $this->markTestSkipped('Windows does have /dev/tty support');
} }
@ -348,7 +348,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testTTYCommandExitCode() public function testTTYCommandExitCode()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Windows does have /dev/tty support'); $this->markTestSkipped('Windows does have /dev/tty support');
} }
@ -361,7 +361,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testTTYInWindowsEnvironment() public function testTTYInWindowsEnvironment()
{ {
if (!defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' !== DIRECTORY_SEPARATOR) {
$this->markTestSkipped('This test is for Windows platform only'); $this->markTestSkipped('This test is for Windows platform only');
} }
@ -491,7 +491,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testProcessIsNotSignaled() public function testProcessIsNotSignaled()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Windows does not support POSIX signals'); $this->markTestSkipped('Windows does not support POSIX signals');
} }
@ -502,7 +502,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testProcessWithoutTermSignalIsNotSignaled() public function testProcessWithoutTermSignalIsNotSignaled()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Windows does not support POSIX signals'); $this->markTestSkipped('Windows does not support POSIX signals');
} }
@ -513,7 +513,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testProcessWithoutTermSignal() public function testProcessWithoutTermSignal()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Windows does not support POSIX signals'); $this->markTestSkipped('Windows does not support POSIX signals');
} }
@ -524,7 +524,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testProcessIsSignaledIfStopped() public function testProcessIsSignaledIfStopped()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Windows does not support POSIX signals'); $this->markTestSkipped('Windows does not support POSIX signals');
} }
@ -536,7 +536,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testProcessWithTermSignal() public function testProcessWithTermSignal()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Windows does not support POSIX signals'); $this->markTestSkipped('Windows does not support POSIX signals');
} }
@ -552,7 +552,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
public function testProcessThrowsExceptionWhenExternallySignaled() public function testProcessThrowsExceptionWhenExternallySignaled()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Windows does not support POSIX signals'); $this->markTestSkipped('Windows does not support POSIX signals');
} }
@ -613,7 +613,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
} }
$duration = microtime(true) - $start; $duration = microtime(true) - $start;
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
// Windows is a bit slower as it read file handles, then allow twice the precision // Windows is a bit slower as it read file handles, then allow twice the precision
$maxDuration = $timeout + 2 * Process::TIMEOUT_PRECISION; $maxDuration = $timeout + 2 * Process::TIMEOUT_PRECISION;
} else { } else {
@ -790,7 +790,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
private function verifyPosixIsEnabled() private function verifyPosixIsEnabled()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('POSIX signals do not work on Windows'); $this->markTestSkipped('POSIX signals do not work on Windows');
} }
if (!defined('SIGUSR1')) { if (!defined('SIGUSR1')) {
@ -803,7 +803,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
*/ */
public function testSignalWithWrongIntSignal() public function testSignalWithWrongIntSignal()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('POSIX signals do not work on Windows'); $this->markTestSkipped('POSIX signals do not work on Windows');
} }
@ -817,7 +817,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
*/ */
public function testSignalWithWrongNonIntSignal() public function testSignalWithWrongNonIntSignal()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('POSIX signals do not work on Windows'); $this->markTestSkipped('POSIX signals do not work on Windows');
} }
@ -843,7 +843,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
'include \''.__DIR__.'/PipeStdinInStdoutStdErrStreamSelect.php\';', 'include \''.__DIR__.'/PipeStdinInStdoutStdErrStreamSelect.php\';',
); );
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
// Avoid XL buffers on Windows because of https://bugs.php.net/bug.php?id=65650 // Avoid XL buffers on Windows because of https://bugs.php.net/bug.php?id=65650
$sizes = array(1, 2, 4, 8); $sizes = array(1, 2, 4, 8);
} else { } else {

View File

@ -94,7 +94,7 @@ class ExecutableFinderTest extends \PHPUnit_Framework_TestCase
$this->markTestSkipped('Requires the PHP_BINARY constant'); $this->markTestSkipped('Requires the PHP_BINARY constant');
} }
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Cannot run test on windows'); $this->markTestSkipped('Cannot run test on windows');
} }
@ -133,7 +133,7 @@ class ExecutableFinderTest extends \PHPUnit_Framework_TestCase
private function assertSamePath($expected, $tested) private function assertSamePath($expected, $tested)
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->assertEquals(strtolower($expected), strtolower($tested)); $this->assertEquals(strtolower($expected), strtolower($tested));
} else { } else {
$this->assertEquals($expected, $tested); $this->assertEquals($expected, $tested);
@ -142,6 +142,6 @@ class ExecutableFinderTest extends \PHPUnit_Framework_TestCase
private function getPhpBinaryName() private function getPhpBinaryName()
{ {
return basename(PHP_BINARY, defined('PHP_WINDOWS_VERSION_BUILD') ? '.exe' : ''); return basename(PHP_BINARY, '\\' === DIRECTORY_SEPARATOR ? '.exe' : '');
} }
} }

View File

@ -89,7 +89,7 @@ class PhpExecutableFinderTest extends \PHPUnit_Framework_TestCase
$current = $f->find(); $current = $f->find();
//TODO maybe php executable is custom or even Windows //TODO maybe php executable is custom or even Windows
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->assertTrue(is_executable($current)); $this->assertTrue(is_executable($current));
$this->assertTrue((bool) preg_match('/'.addSlashes(DIRECTORY_SEPARATOR).'php\.(exe|bat|cmd|com)$/i', $current), '::find() returns the executable PHP with suffixes'); $this->assertTrue((bool) preg_match('/'.addSlashes(DIRECTORY_SEPARATOR).'php\.(exe|bat|cmd|com)$/i', $current), '::find() returns the executable PHP with suffixes');
} }

View File

@ -126,14 +126,14 @@ 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();
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->assertEquals('"/usr/bin/php" "-v"', $proc->getCommandLine()); $this->assertEquals('"/usr/bin/php" "-v"', $proc->getCommandLine());
} else { } else {
$this->assertEquals("'/usr/bin/php' '-v'", $proc->getCommandLine()); $this->assertEquals("'/usr/bin/php' '-v'", $proc->getCommandLine());
} }
$proc = $pb->setArguments(array('-i'))->getProcess(); $proc = $pb->setArguments(array('-i'))->getProcess();
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->assertEquals('"/usr/bin/php" "-i"', $proc->getCommandLine()); $this->assertEquals('"/usr/bin/php" "-i"', $proc->getCommandLine());
} else { } else {
$this->assertEquals("'/usr/bin/php' '-i'", $proc->getCommandLine()); $this->assertEquals("'/usr/bin/php' '-i'", $proc->getCommandLine());
@ -145,7 +145,7 @@ class ProcessBuilderTest extends \PHPUnit_Framework_TestCase
$pb = new ProcessBuilder(array('%path%', 'foo " bar', '%baz%baz')); $pb = new ProcessBuilder(array('%path%', 'foo " bar', '%baz%baz'));
$proc = $pb->getProcess(); $proc = $pb->getProcess();
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->assertSame('^%"path"^% "foo \\" bar" "%baz%baz"', $proc->getCommandLine()); $this->assertSame('^%"path"^% "foo \\" bar" "%baz%baz"', $proc->getCommandLine());
} else { } else {
$this->assertSame("'%path%' 'foo \" bar' '%baz%baz'", $proc->getCommandLine()); $this->assertSame("'%path%' 'foo \" bar' '%baz%baz'", $proc->getCommandLine());
@ -158,7 +158,7 @@ class ProcessBuilderTest extends \PHPUnit_Framework_TestCase
$pb->setPrefix('%prefix%'); $pb->setPrefix('%prefix%');
$proc = $pb->getProcess(); $proc = $pb->getProcess();
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->assertSame('^%"prefix"^% "arg"', $proc->getCommandLine()); $this->assertSame('^%"prefix"^% "arg"', $proc->getCommandLine());
} else { } else {
$this->assertSame("'%prefix%' 'arg'", $proc->getCommandLine()); $this->assertSame("'%prefix%' 'arg'", $proc->getCommandLine());
@ -179,7 +179,7 @@ class ProcessBuilderTest extends \PHPUnit_Framework_TestCase
->setPrefix('/usr/bin/php') ->setPrefix('/usr/bin/php')
->getProcess(); ->getProcess();
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->assertEquals('"/usr/bin/php"', $process->getCommandLine()); $this->assertEquals('"/usr/bin/php"', $process->getCommandLine());
} else { } else {
$this->assertEquals("'/usr/bin/php'", $process->getCommandLine()); $this->assertEquals("'/usr/bin/php'", $process->getCommandLine());
@ -191,7 +191,7 @@ class ProcessBuilderTest extends \PHPUnit_Framework_TestCase
$process = ProcessBuilder::create(array('/usr/bin/php')) $process = ProcessBuilder::create(array('/usr/bin/php'))
->getProcess(); ->getProcess();
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->assertEquals('"/usr/bin/php"', $process->getCommandLine()); $this->assertEquals('"/usr/bin/php"', $process->getCommandLine());
} else { } else {
$this->assertEquals("'/usr/bin/php'", $process->getCommandLine()); $this->assertEquals("'/usr/bin/php'", $process->getCommandLine());

View File

@ -25,7 +25,7 @@ class ProcessUtilsTest extends \PHPUnit_Framework_TestCase
public function dataArguments() public function dataArguments()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
return array( return array(
array('"\"php\" \"-v\""', '"php" "-v"'), array('"\"php\" \"-v\""', '"php" "-v"'),
array('"foo bar"', 'foo bar'), array('"foo bar"', 'foo bar'),

View File

@ -114,7 +114,7 @@ class SigchildEnabledProcessTest extends AbstractProcessTest
public function testStartAfterATimeout() public function testStartAfterATimeout()
{ {
if (defined('PHP_WINDOWS_VERSION_BUILD')) { if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('Restarting a timed-out process on Windows is not supported in sigchild environment'); $this->markTestSkipped('Restarting a timed-out process on Windows is not supported in sigchild environment');
} }
parent::testStartAfterATimeout(); parent::testStartAfterATimeout();

View File

@ -43,7 +43,7 @@ final class SecureRandom implements SecureRandomInterface
$this->logger = $logger; $this->logger = $logger;
// determine whether to use OpenSSL // determine whether to use OpenSSL
if (defined('PHP_WINDOWS_VERSION_BUILD') && PHP_VERSION_ID < 50304) { if ('\\' === DIRECTORY_SEPARATOR && PHP_VERSION_ID < 50304) {
$this->useOpenSsl = false; $this->useOpenSsl = false;
} elseif (!function_exists('openssl_random_pseudo_bytes')) { } elseif (!function_exists('openssl_random_pseudo_bytes')) {
if (null !== $this->logger) { if (null !== $this->logger) {