composer update
This commit is contained in:
36
vendor/symfony/process/Tests/ErrorProcessInitiator.php
vendored
Executable file
36
vendor/symfony/process/Tests/ErrorProcessInitiator.php
vendored
Executable file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\Process\Tests;
|
||||
|
||||
use Symfony\Component\Process\Exception\ProcessTimedOutException;
|
||||
use Symfony\Component\Process\Process;
|
||||
|
||||
require \dirname(__DIR__).'/vendor/autoload.php';
|
||||
|
||||
list('e' => $php) = getopt('e:') + ['e' => 'php'];
|
||||
|
||||
try {
|
||||
$process = new Process("exec $php -r \"echo 'ready'; trigger_error('error', E_USER_ERROR);\"");
|
||||
$process->start();
|
||||
$process->setTimeout(0.5);
|
||||
while (false === strpos($process->getOutput(), 'ready')) {
|
||||
usleep(1000);
|
||||
}
|
||||
$process->signal(SIGSTOP);
|
||||
$process->wait();
|
||||
|
||||
return $process->getExitCode();
|
||||
} catch (ProcessTimedOutException $t) {
|
||||
echo $t->getMessage().PHP_EOL;
|
||||
|
||||
return 1;
|
||||
}
|
||||
22
vendor/symfony/process/Tests/ProcessTest.php
vendored
22
vendor/symfony/process/Tests/ProcessTest.php
vendored
@@ -49,7 +49,8 @@ class ProcessTest extends TestCase
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Process\Exception\RuntimeException
|
||||
* @expectedExceptionMessage The provided cwd does not exist.
|
||||
* @expectedExceptionMessage The provided cwd "
|
||||
* @expectedExceptionMessage "does not exist.
|
||||
*/
|
||||
public function testInvalidCwd()
|
||||
{
|
||||
@@ -1510,6 +1511,25 @@ EOTXT;
|
||||
$this->assertSame($env, $p->getEnv());
|
||||
}
|
||||
|
||||
public function testWaitStoppedDeadProcess()
|
||||
{
|
||||
$process = $this->getProcess(self::$phpBin.' '.__DIR__.'/ErrorProcessInitiator.php -e '.self::$phpBin);
|
||||
$process->start();
|
||||
$process->setTimeout(2);
|
||||
$process->wait();
|
||||
$this->assertFalse($process->isRunning());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $commandline
|
||||
* @param string|null $cwd
|
||||
* @param array|null $env
|
||||
* @param string|null $input
|
||||
* @param int $timeout
|
||||
* @param array $options
|
||||
*
|
||||
* @return Process
|
||||
*/
|
||||
private function getProcess($commandline, string $cwd = null, array $env = null, $input = null, ?int $timeout = 60): Process
|
||||
{
|
||||
if (\is_string($commandline)) {
|
||||
|
||||
Reference in New Issue
Block a user