From 52a18ea163f30f6b2468bf254ec27e1e6e013e03 Mon Sep 17 00:00:00 2001 From: Jonathan Poston Date: Wed, 23 Oct 2013 22:56:37 -0400 Subject: [PATCH] Check if the pipe array is empty before calling stream_select() --- src/Symfony/Component/Process/ProcessPipes.php | 4 ++++ .../Component/Process/Tests/AbstractProcessTest.php | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/Symfony/Component/Process/ProcessPipes.php b/src/Symfony/Component/Process/ProcessPipes.php index 43e1501029b0..6f0bd7dbb67d 100644 --- a/src/Symfony/Component/Process/ProcessPipes.php +++ b/src/Symfony/Component/Process/ProcessPipes.php @@ -247,6 +247,10 @@ private function readFileHandles($close = false) */ private function readStreams($blocking, $close = false) { + if (empty($this->pipes)) { + return array(); + } + $read = array(); $r = $this->pipes; diff --git a/src/Symfony/Component/Process/Tests/AbstractProcessTest.php b/src/Symfony/Component/Process/Tests/AbstractProcessTest.php index 0fe78b28e56d..0558d074dd35 100644 --- a/src/Symfony/Component/Process/Tests/AbstractProcessTest.php +++ b/src/Symfony/Component/Process/Tests/AbstractProcessTest.php @@ -19,6 +19,16 @@ */ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase { + public function testThatProcessDoesNotThrowWarningDuringRun() + { + @trigger_error('Test Error', E_USER_NOTICE); + $process = $this->getProcess("php -r 'sleep(3)'"); + $process->run(); + $actualError = error_get_last(); + $this->assertEquals('Test Error', $actualError['message']); + $this->assertEquals(E_USER_NOTICE, $actualError['type']); + } + /** * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException */