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

Breadcrumb

  1. Drupal Core 11.1.x

PcovDriver.php

Namespace

SebastianBergmann\CodeCoverage\Driver

File

vendor/phpunit/php-code-coverage/src/Driver/PcovDriver.php

View source
<?php

declare (strict_types=1);

/*
 * This file is part of phpunit/php-code-coverage.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace SebastianBergmann\CodeCoverage\Driver;

use const pcov\inclusive;
use function array_intersect;
use function extension_loaded;
use function pcov\clear;
use function pcov\collect;
use function pcov\start;
use function pcov\stop;
use function pcov\waiting;
use function phpversion;
use SebastianBergmann\CodeCoverage\Data\RawCodeCoverageData;
use SebastianBergmann\CodeCoverage\Filter;

/**
 * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage
 */
final class PcovDriver extends Driver {
    private readonly Filter $filter;
    
    /**
     * @throws PcovNotAvailableException
     */
    public function __construct(Filter $filter) {
        $this->ensurePcovIsAvailable();
        $this->filter = $filter;
    }
    public function start() : void {
        start();
    }
    public function stop() : RawCodeCoverageData {
        stop();
        $filesToCollectCoverageFor = waiting();
        $collected = [];
        if ($filesToCollectCoverageFor) {
            if (!$this->filter
                ->isEmpty()) {
                $filesToCollectCoverageFor = array_intersect($filesToCollectCoverageFor, $this->filter
                    ->files());
            }
            $collected = collect(inclusive, $filesToCollectCoverageFor);
            clear();
        }
        return RawCodeCoverageData::fromXdebugWithoutPathCoverage($collected);
    }
    public function nameAndVersion() : string {
        return 'PCOV ' . phpversion('pcov');
    }
    
    /**
     * @throws PcovNotAvailableException
     */
    private function ensurePcovIsAvailable() : void {
        if (!extension_loaded('pcov')) {
            throw new PcovNotAvailableException();
        }
    }

}

Classes

Title Deprecated Summary
PcovDriver @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal