|null $argv */ $argv = $_SERVER['argv'] ?? null; if (! is_array($argv) || $argv === []) { return; } if (isset($_SERVER['PAO_DISABLE'])) { return; } $agent = AgentDetector::detect(); if (! $agent->isAgent) { return; } if (array_intersect($argv, ['--version', '--help', '-h', 'worker'])) { return; } unset($_SERVER['COLLISION_PRINTER']); $_SERVER['PEST_PARALLEL_NO_OUTPUT'] = '1'; register_shutdown_function(function (): void { if (! Execution::running()) { return; } $execution = Execution::current(); $result = $execution->driver->parse() ?: []; $captured = trim(UserFilters\CaptureFilter::output()); $execution->restoreStdout(); if ($captured !== '') { $captured = OutputCleaner::clean($captured); $lines = array_values(array_filter( array_map(trim(...), explode("\n", $captured)), fn (string $line): bool => $line !== '' && ! preg_match('/^[.st!]+$/', $line) && ! preg_match('/^(Tests:|Duration:|Parallel:|Time:|Generating code coverage)\s/', $line) && ! str_ends_with($line, 'by Sebastian Bergmann and contributors.'), )); if ($lines !== []) { $result['raw'] = $lines; } } if ($result !== []) { $result = ['tool' => $execution->driver->name()] + $result; fwrite(STDOUT, json_encode($result, JSON_UNESCAPED_SLASHES | JSON_INVALID_UTF8_SUBSTITUTE | JSON_THROW_ON_ERROR).PHP_EOL); } }); Execution::start($agent, $argv);