From 9e1ea4aa4b21db1040d6e92a2b6dfa0bf5ad672a Mon Sep 17 00:00:00 2001 From: Manatsawin Hanmongkolchai Date: Tue, 1 Jul 2014 20:28:47 +0700 Subject: [PATCH 1/2] [Process] Use correct test for empty string in UnixPipes --- src/Symfony/Component/Process/ProcessPipes.php | 4 ++-- src/Symfony/Component/Process/Tests/AbstractProcessTest.php | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Process/ProcessPipes.php b/src/Symfony/Component/Process/ProcessPipes.php index f35d1c1287..850741e6a8 100644 --- a/src/Symfony/Component/Process/ProcessPipes.php +++ b/src/Symfony/Component/Process/ProcessPipes.php @@ -313,11 +313,11 @@ class ProcessPipes $type = array_search($pipe, $this->pipes); $data = ''; - while ($dataread = fread($pipe, self::CHUNK_SIZE)) { + while ('' !== $dataread = (string) fread($pipe, self::CHUNK_SIZE)) { $data .= $dataread; } - if ($data) { + if ('' !== $data) { $read[$type] = $data; } diff --git a/src/Symfony/Component/Process/Tests/AbstractProcessTest.php b/src/Symfony/Component/Process/Tests/AbstractProcessTest.php index 91b8aca20d..3074874743 100644 --- a/src/Symfony/Component/Process/Tests/AbstractProcessTest.php +++ b/src/Symfony/Component/Process/Tests/AbstractProcessTest.php @@ -287,6 +287,12 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase } } + public function testZeroAsOutput(){ + $p = $this->getProcess('printf 0'); + $p->run(); + $this->assertSame('0', $p->getOutput()); + } + public function testExitCodeCommandFailed() { if (defined('PHP_WINDOWS_VERSION_BUILD')) { From cec0a45ff5951403965d79e085e43538988f2625 Mon Sep 17 00:00:00 2001 From: Romain Neutron Date: Sat, 12 Jul 2014 16:27:05 +0200 Subject: [PATCH 2/2] [Process] Adjust PR #11264, make it Windows compatible and fix CS --- .../Component/Process/Tests/AbstractProcessTest.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Process/Tests/AbstractProcessTest.php b/src/Symfony/Component/Process/Tests/AbstractProcessTest.php index 3074874743..fb34351169 100644 --- a/src/Symfony/Component/Process/Tests/AbstractProcessTest.php +++ b/src/Symfony/Component/Process/Tests/AbstractProcessTest.php @@ -287,8 +287,15 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase } } - public function testZeroAsOutput(){ - $p = $this->getProcess('printf 0'); + public function testZeroAsOutput() + { + if (defined('PHP_WINDOWS_VERSION_BUILD')) { + // see http://stackoverflow.com/questions/7105433/windows-batch-echo-without-new-line + $p = $this->getProcess('echo | set /p dummyName=0'); + } else { + $p = $this->getProcess('printf 0'); + } + $p->run(); $this->assertSame('0', $p->getOutput()); }