Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ProcessedCodeCoverageData.php

function ProcessedCodeCoverageData::merge

File

vendor/phpunit/php-code-coverage/src/Data/ProcessedCodeCoverageData.php, line 154

Class

ProcessedCodeCoverageData
@internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage

Namespace

SebastianBergmann\CodeCoverage\Data

Code

public function merge(self $newData) : void {
    foreach ($newData->lineCoverage as $file => $lines) {
        if (!isset($this->lineCoverage[$file])) {
            $this->lineCoverage[$file] = $lines;
            continue;
        }
        // we should compare the lines if any of two contains data
        $compareLineNumbers = array_unique(array_merge(array_keys($this->lineCoverage[$file]), array_keys($newData->lineCoverage[$file])));
        foreach ($compareLineNumbers as $line) {
            $thatPriority = $this->priorityForLine($newData->lineCoverage[$file], $line);
            $thisPriority = $this->priorityForLine($this->lineCoverage[$file], $line);
            if ($thatPriority > $thisPriority) {
                $this->lineCoverage[$file][$line] = $newData->lineCoverage[$file][$line];
            }
            elseif ($thatPriority === $thisPriority && is_array($this->lineCoverage[$file][$line])) {
                $this->lineCoverage[$file][$line] = array_unique(array_merge($this->lineCoverage[$file][$line], $newData->lineCoverage[$file][$line]));
            }
        }
    }
    foreach ($newData->functionCoverage as $file => $functions) {
        if (!isset($this->functionCoverage[$file])) {
            $this->functionCoverage[$file] = $functions;
            continue;
        }
        foreach ($functions as $functionName => $functionData) {
            if (isset($this->functionCoverage[$file][$functionName])) {
                $this->initPreviouslySeenFunction($file, $functionName, $functionData);
            }
            else {
                $this->initPreviouslyUnseenFunction($file, $functionName, $functionData);
            }
            foreach ($functionData['branches'] as $branchId => $branchData) {
                $this->functionCoverage[$file][$functionName]['branches'][$branchId]['hit'] = array_unique(array_merge($this->functionCoverage[$file][$functionName]['branches'][$branchId]['hit'], $branchData['hit']));
            }
            foreach ($functionData['paths'] as $pathId => $pathData) {
                $this->functionCoverage[$file][$functionName]['paths'][$pathId]['hit'] = array_unique(array_merge($this->functionCoverage[$file][$functionName]['paths'][$pathId]['hit'], $pathData['hit']));
            }
        }
    }
}
RSS feed
Powered by Drupal