[Process] fixed fatal errors in getOutput and getErrorOutput when process was not started
This commit is contained in:
parent
02088bc62f
commit
0ae685878c
@ -296,9 +296,14 @@ class Process
|
|||||||
*
|
*
|
||||||
* @throws RuntimeException When process timed out
|
* @throws RuntimeException When process timed out
|
||||||
* @throws RuntimeException When process stopped after receiving signal
|
* @throws RuntimeException When process stopped after receiving signal
|
||||||
|
* @throws LogicException When process is not started
|
||||||
*/
|
*/
|
||||||
public function wait($callback = null)
|
public function wait($callback = null)
|
||||||
{
|
{
|
||||||
|
if (!$this->isStarted()) {
|
||||||
|
throw new LogicException(sprintf('Process must be started before calling %s', __FUNCTION__));
|
||||||
|
}
|
||||||
|
|
||||||
$this->updateStatus(false);
|
$this->updateStatus(false);
|
||||||
if (null !== $callback) {
|
if (null !== $callback) {
|
||||||
$this->callback = $this->buildCallback($callback);
|
$this->callback = $this->buildCallback($callback);
|
||||||
@ -366,10 +371,16 @@ class Process
|
|||||||
*
|
*
|
||||||
* @return string The process output
|
* @return string The process output
|
||||||
*
|
*
|
||||||
|
* @throws LogicException In case the process is not started
|
||||||
|
*
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
public function getOutput()
|
public function getOutput()
|
||||||
{
|
{
|
||||||
|
if (!$this->isStarted()) {
|
||||||
|
throw new LogicException(sprintf('Process must be started before calling %s', __FUNCTION__));
|
||||||
|
}
|
||||||
|
|
||||||
$this->readPipes(false, defined('PHP_WINDOWS_VERSION_BUILD') ? !$this->processInformation['running'] : true);
|
$this->readPipes(false, defined('PHP_WINDOWS_VERSION_BUILD') ? !$this->processInformation['running'] : true);
|
||||||
|
|
||||||
return $this->stdout;
|
return $this->stdout;
|
||||||
@ -398,10 +409,16 @@ class Process
|
|||||||
*
|
*
|
||||||
* @return string The process error output
|
* @return string The process error output
|
||||||
*
|
*
|
||||||
|
* @throws LogicException In case the process is not started
|
||||||
|
*
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
public function getErrorOutput()
|
public function getErrorOutput()
|
||||||
{
|
{
|
||||||
|
if (!$this->isStarted()) {
|
||||||
|
throw new LogicException(sprintf('Process must be started before calling %s', __FUNCTION__));
|
||||||
|
}
|
||||||
|
|
||||||
$this->readPipes(false, defined('PHP_WINDOWS_VERSION_BUILD') ? !$this->processInformation['running'] : true);
|
$this->readPipes(false, defined('PHP_WINDOWS_VERSION_BUILD') ? !$this->processInformation['running'] : true);
|
||||||
|
|
||||||
return $this->stderr;
|
return $this->stderr;
|
||||||
|
@ -617,6 +617,36 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
|
|||||||
$process->signal(SIGHUP);
|
$process->signal(SIGHUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \Symfony\Component\Process\Exception\LogicException
|
||||||
|
* @expectedExceptionMessage Process must be started before calling getOutput
|
||||||
|
*/
|
||||||
|
public function testGetOutputProcessNotStarted()
|
||||||
|
{
|
||||||
|
$process = $this->getProcess('php -m');
|
||||||
|
$process->getOutput();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \Symfony\Component\Process\Exception\LogicException
|
||||||
|
* @expectedExceptionMessage Process must be started before calling getErrorOutput
|
||||||
|
*/
|
||||||
|
public function testGetErrorOutputProcessNotStarted()
|
||||||
|
{
|
||||||
|
$process = $this->getProcess('php -m');
|
||||||
|
$process->getErrorOutput();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \Symfony\Component\Process\Exception\LogicException
|
||||||
|
* @expectedExceptionMessage Process must be started before calling wait
|
||||||
|
*/
|
||||||
|
public function testWaitProcessWithoutTimeoutNotStarted()
|
||||||
|
{
|
||||||
|
$process = $this->getProcess('php -m')->setTimeout(null);
|
||||||
|
$process->wait();
|
||||||
|
}
|
||||||
|
|
||||||
private function verifyPosixIsEnabled()
|
private function verifyPosixIsEnabled()
|
||||||
{
|
{
|
||||||
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
|
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
|
||||||
|
Reference in New Issue
Block a user