🤩 File Manager - Mr.X
PHP:
8.3.33
Server:
Apache
OS:
Linux 5.14.0-611.49.1.el9_7.x86_64
User:
websparkit
Navigate
Upload:
Upload
New File
New Folder
Editing:WrapperRunner.php
<?php declare(strict_types=1); namespace Laravel\Pao\Drivers\Paratest; use Laravel\Pao\Drivers\Concerns\ProfileCollector; use Laravel\Pao\Execution; use ParaTest\Options; use ParaTest\RunnerInterface; use ParaTest\WrapperRunner\ResultPrinter; use ParaTest\WrapperRunner\SuiteLoader; use ParaTest\WrapperRunner\WrapperRunner as ParatestWrapperRunner; use PHPUnit\TestRunner\TestResult\Facade as TestResultFacade; use PHPUnit\TestRunner\TestResult\TestResult; use PHPUnit\TextUI\Configuration\CodeCoverageFilterRegistry; use PHPUnit\Util\ExcludeList; use ReflectionObject; use SplFileInfo; use Symfony\Component\Console\Output\NullOutput; use Symfony\Component\Console\Output\OutputInterface; /** * @internal * * @codeCoverageIgnore */ final readonly class WrapperRunner implements RunnerInterface { private ParatestWrapperRunner $runner; public function __construct( Options $options, ) { $this->runner = new ParatestWrapperRunner($options, new NullOutput); } public function run(): int { $runner = $this->runner; $r = new ReflectionObject($runner); /** @var non-empty-string $directory */ $directory = dirname((string) $r->getFileName(), 2); ExcludeList::addDirectory($directory); /** @var Options $options */ $options = $r->getProperty('options')->getValue($runner); /** @var OutputInterface $output */ $output = $r->getProperty('output')->getValue($runner); /** @var CodeCoverageFilterRegistry $filterRegistry */ $filterRegistry = $r->getProperty('codeCoverageFilterRegistry')->getValue($runner); $suiteLoader = new SuiteLoader($options, $output, $filterRegistry); $result = TestResultFacade::result(); $r->getProperty('pending')->setValue($runner, $suiteLoader->tests); /** @var ResultPrinter $printer */ $printer = $r->getProperty('printer')->getValue($runner); $printer->setTestCount($suiteLoader->testCount); $printer->start(); $startTime = hrtime(true); $r->getMethod('startWorkers')->invoke($runner); $r->getMethod('assignAllPendingTests')->invoke($runner); $r->getMethod('waitForAllToFinish')->invoke($runner); ProfileCollector::startTimerFromNanoseconds($startTime); ProfileCollector::executionStarted(); /** @var list<SplFileInfo> $testResultFiles */ $testResultFiles = $r->getProperty('testResultFiles')->getValue($runner); $mergedResult = $this->mergeTestResults($result, $testResultFiles); if (Execution::running()) { $driver = Execution::current()->driver; if ($driver instanceof Starter) { $driver->testResult = $mergedResult; } } /** @var int $exitCode */ $exitCode = $r->getMethod('complete')->invoke($runner, $result); return $exitCode; } /** * @param list<SplFileInfo> $testResultFiles */ private function mergeTestResults(TestResult $sum, array $testResultFiles): TestResult { foreach ($testResultFiles as $testResultFile) { if (! $testResultFile->isFile()) { continue; } $contents = file_get_contents($testResultFile->getPathname()); if ($contents === false) { continue; } $testResult = unserialize($contents); if (! $testResult instanceof TestResult) { continue; } $sum = new TestResult( (int) $sum->hasTests() + (int) $testResult->hasTests(), $sum->numberOfTestsRun() + $testResult->numberOfTestsRun(), $sum->numberOfAssertions() + $testResult->numberOfAssertions(), [...$sum->testErroredEvents(), ...$testResult->testErroredEvents()], [...$sum->testFailedEvents(), ...$testResult->testFailedEvents()], array_merge_recursive($sum->testConsideredRiskyEvents(), $testResult->testConsideredRiskyEvents()), // @phpstan-ignore argument.type [...$sum->testSuiteSkippedEvents(), ...$testResult->testSuiteSkippedEvents()], [...$sum->testSkippedEvents(), ...$testResult->testSkippedEvents()], [...$sum->testMarkedIncompleteEvents(), ...$testResult->testMarkedIncompleteEvents()], array_merge_recursive($sum->testTriggeredPhpunitDeprecationEvents(), $testResult->testTriggeredPhpunitDeprecationEvents()), // @phpstan-ignore argument.type array_merge_recursive($sum->testTriggeredPhpunitErrorEvents(), $testResult->testTriggeredPhpunitErrorEvents()), // @phpstan-ignore argument.type array_merge_recursive($sum->testTriggeredPhpunitNoticeEvents(), $testResult->testTriggeredPhpunitNoticeEvents()), // @phpstan-ignore argument.type array_merge_recursive($sum->testTriggeredPhpunitWarningEvents(), $testResult->testTriggeredPhpunitWarningEvents()), // @phpstan-ignore argument.type [...$sum->testRunnerTriggeredDeprecationEvents(), ...$testResult->testRunnerTriggeredDeprecationEvents()], [...$sum->testRunnerTriggeredNoticeEvents(), ...$testResult->testRunnerTriggeredNoticeEvents()], [...$sum->testRunnerTriggeredWarningEvents(), ...$testResult->testRunnerTriggeredWarningEvents()], [...$sum->errors(), ...$testResult->errors()], [...$sum->deprecations(), ...$testResult->deprecations()], [...$sum->notices(), ...$testResult->notices()], [...$sum->warnings(), ...$testResult->warnings()], [...$sum->phpDeprecations(), ...$testResult->phpDeprecations()], [...$sum->phpNotices(), ...$testResult->phpNotices()], [...$sum->phpWarnings(), ...$testResult->phpWarnings()], $sum->numberOfIssuesIgnoredByBaseline() + $testResult->numberOfIssuesIgnoredByBaseline(), ); } return $sum; } }
Save Changes
Cancel
Create New File
Create New Folder