public function PHPUnit_Util_PHP_Default::runJob in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/phpunit/phpunit/src/Util/PHP/Default.php \PHPUnit_Util_PHP_Default::runJob()
Runs a single job (PHP code) using a separate PHP process.
Parameters
string $job:
array $settings:
Return value
array
Throws
Overrides PHPUnit_Util_PHP::runJob
1 method overrides PHPUnit_Util_PHP_Default::runJob()
- PHPUnit_Util_PHP_Windows::runJob in vendor/
phpunit/ phpunit/ src/ Util/ PHP/ Windows.php - Reading from STDOUT or STDERR hangs forever on Windows if the output is too large.
File
- vendor/
phpunit/ phpunit/ src/ Util/ PHP/ Default.php, line 28
Class
- PHPUnit_Util_PHP_Default
- Default utility for PHP sub-processes.
Code
public function runJob($job, array $settings = array()) {
$runtime = new Runtime();
$process = proc_open($runtime
->getBinary() . $this
->settingsToParameters($settings), array(
0 => array(
'pipe',
'r',
),
1 => array(
'pipe',
'w',
),
2 => array(
'pipe',
'w',
),
), $pipes);
if (!is_resource($process)) {
throw new PHPUnit_Framework_Exception('Unable to spawn worker process');
}
$this
->process($pipes[0], $job);
fclose($pipes[0]);
$stdout = stream_get_contents($pipes[1]);
fclose($pipes[1]);
$stderr = stream_get_contents($pipes[2]);
fclose($pipes[2]);
proc_close($process);
$this
->cleanup();
return array(
'stdout' => $stdout,
'stderr' => $stderr,
);
}