bug #23498 [Process] Fixed issue between process builder and exec (lyrixx)

This PR was merged into the 3.3 branch.

Discussion
----------

[Process] Fixed issue between process builder and exec

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes/
| Fixed tickets | #23495
| License       | MIT
| Doc PR        | -

Commits
-------

8cd1a2d [Process] Fixed issue between process builder and exec
This commit is contained in:
Nicolas Grekas 2017-07-13 15:17:20 +02:00
commit 54435997ee
2 changed files with 16 additions and 0 deletions

View File

@ -272,6 +272,9 @@ class ProcessBuilder
$arguments = array_merge($this->prefix, $this->arguments);
$process = new Process($arguments, $this->cwd, $this->env, $this->input, $this->timeout, $this->options);
// to preserve the BC with symfony <3.3, we convert the array structure
// to a string structure to avoid the prefixing with the exec command
$process->setCommandLine($process->getCommandLine());
if ($this->inheritEnv) {
$process->inheritEnvironmentVariables();

View File

@ -210,4 +210,17 @@ class ProcessBuilderTest extends TestCase
$builder = ProcessBuilder::create();
$builder->setInput(array());
}
public function testDoesNotPrefixExec()
{
if ('\\' === DIRECTORY_SEPARATOR) {
$this->markTestSkipped('This test cannot run on Windows.');
}
$builder = ProcessBuilder::create(array('command', '-v', 'ls'));
$process = $builder->getProcess();
$process->run();
$this->assertTrue($process->isSuccessful());
}
}