From 09898ccbc87b5e297bcfab4527a3705bd3b4d5a4 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 2 Dec 2023 17:45:25 +0300 Subject: add phpunit code coverage driver --- .../src/StaticAnalysis/CachingFileAnalyser.php | 31 +++++++++++----------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php') diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php index cdaad5613..f53da078a 100644 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php @@ -9,15 +9,15 @@ */ namespace SebastianBergmann\CodeCoverage\StaticAnalysis; -use function assert; -use function crc32; use function file_get_contents; use function file_put_contents; +use function implode; use function is_file; +use function md5; use function serialize; -use GlobIterator; +use function unserialize; use SebastianBergmann\CodeCoverage\Util\Filesystem; -use SplFileInfo; +use SebastianBergmann\FileIterator\Facade as FileIteratorFacade; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage @@ -50,10 +50,6 @@ final class CachingFileAnalyser implements FileAnalyser $this->analyser = $analyser; $this->directory = $directory; - - if (self::$cacheVersion === null) { - $this->calculateCacheVersion(); - } } public function classesIn(string $filename): array @@ -165,19 +161,24 @@ final class CachingFileAnalyser implements FileAnalyser private function cacheFile(string $filename): string { - return $this->directory . DIRECTORY_SEPARATOR . hash('sha256', $filename . crc32(file_get_contents($filename)) . self::$cacheVersion); + return $this->directory . DIRECTORY_SEPARATOR . md5($filename . "\0" . file_get_contents($filename) . "\0" . self::cacheVersion()); } - private function calculateCacheVersion(): void + private static function cacheVersion(): string { - $buffer = ''; + if (self::$cacheVersion !== null) { + return self::$cacheVersion; + } - foreach (new GlobIterator(__DIR__ . '/*.php') as $file) { - assert($file instanceof SplFileInfo); + $buffer = []; - $buffer .= file_get_contents($file->getPathname()); + foreach ((new FileIteratorFacade)->getFilesAsArray(__DIR__, '.php') as $file) { + $buffer[] = $file; + $buffer[] = file_get_contents($file); } - self::$cacheVersion = (string) crc32($buffer); + self::$cacheVersion = md5(implode("\0", $buffer)); + + return self::$cacheVersion; } } -- cgit v1.2.3