diff --git a/src/Restarters/PcovRestarter.php b/src/Restarters/PcovRestarter.php index 1337397a7..3d34ff2fd 100644 --- a/src/Restarters/PcovRestarter.php +++ b/src/Restarters/PcovRestarter.php @@ -52,13 +52,8 @@ private function restart(string $projectRoot, array $arguments): void $env = $this->inheritEnv(); $env[self::ENV_RESTARTED] = '1'; - $command = array_merge( - [PHP_BINARY, '-d', 'pcov.directory='.$projectRoot], - array_values($arguments), - ); - $proc = @proc_open( - $command, + $this->command($projectRoot, $arguments), [STDIN, STDOUT, STDERR], $pipes, null, @@ -74,6 +69,24 @@ private function restart(string $projectRoot, array $arguments): void exit($exitCode === -1 ? 1 : $exitCode); } + /** + * @param array $arguments + * @return list + */ + private function command(string $projectRoot, array $arguments): array + { + return array_merge( + [ + PHP_BINARY, + '-d', + 'memory_limit='.ini_get('memory_limit'), + '-d', + 'pcov.directory='.$projectRoot, + ], + array_values($arguments), + ); + } + /** * @return array */ diff --git a/tests/.snapshots/success.txt b/tests/.snapshots/success.txt index eae8cd581..f36ab5722 100644 --- a/tests/.snapshots/success.txt +++ b/tests/.snapshots/success.txt @@ -2051,6 +2051,9 @@ ✓ preset invalid name ✓ preset → myFramework + PASS Tests\Unit\Restarters\PcovRestarter + ✓ it preserves the active memory limit in the restarted process + PASS Tests\Unit\Support\Arr ✓ last → it should return false for an empty arary ✓ last → it should return the last element for an array with a single element @@ -2234,4 +2237,4 @@ ✓ pass with dataset with ('my-datas-set-value') ✓ within describe → pass with dataset with ('my-datas-set-value') - Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 40 todos, 35 skipped, 1581 passed (3434 assertions) + Tests: 2 deprecated, 4 warnings, 5 incomplete, 2 notices, 40 todos, 35 skipped, 1582 passed (3435 assertions) \ No newline at end of file diff --git a/tests/Features/Tia.php b/tests/Features/Tia.php index 388941098..edba5911b 100644 --- a/tests/Features/Tia.php +++ b/tests/Features/Tia.php @@ -56,6 +56,7 @@ 'PARATEST' => 0, 'PAO_DISABLE' => '1', 'HOME' => $home, + 'CI_DEFAULT_BRANCH' => $branch, ], ); diff --git a/tests/Unit/Restarters/PcovRestarter.php b/tests/Unit/Restarters/PcovRestarter.php new file mode 100644 index 000000000..84f900468 --- /dev/null +++ b/tests/Unit/Restarters/PcovRestarter.php @@ -0,0 +1,26 @@ +invoke(new PcovRestarter, __DIR__, ['-r', 'fwrite(STDOUT, (string) ini_get("memory_limit"));']); + + assert(is_array($command)); + + $process = new Process($command); + $process->mustRun(); + + expect($process->getOutput())->toBe('1234M'); + } finally { + ini_set('memory_limit', (string) $originalMemoryLimit); + } +}); diff --git a/tests/Visual/Parallel.php b/tests/Visual/Parallel.php index 914b215fe..8d9069ee9 100644 --- a/tests/Visual/Parallel.php +++ b/tests/Visual/Parallel.php @@ -26,13 +26,13 @@ $file = file_get_contents(__FILE__); $file = preg_replace( '/\$expected = \'.*?\';/', - "\$expected = '2 deprecated, 4 warnings, 5 incomplete, 3 notices, 40 todos, 27 skipped, 1563 passed (3379 assertions)';", + "\$expected = '2 deprecated, 4 warnings, 5 incomplete, 3 notices, 40 todos, 27 skipped, 1564 passed (3380 assertions)';", $file, ); file_put_contents(__FILE__, $file); } - $expected = '2 deprecated, 4 warnings, 5 incomplete, 3 notices, 40 todos, 27 skipped, 1563 passed (3379 assertions)'; + $expected = '2 deprecated, 4 warnings, 5 incomplete, 3 notices, 40 todos, 27 skipped, 1564 passed (3380 assertions)'; expect($output) ->toContain("Tests: {$expected}")