From a9a676fabab690874e189d1c115581fc503bc7be Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 27 Aug 2025 15:09:36 +0200 Subject: [PATCH 001/106] Improve performance by skipping empty lines after filter has been applied --- src/CodeCoverage.php | 1 + src/Data/RawCodeCoverageData.php | 4 +--- tests/tests/Data/RawCodeCoverageDataTest.php | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 9c8853025..819a17fb7 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -403,6 +403,7 @@ private function applyCoversAndUsesFilter(RawCodeCoverageData $rawData, array|fa foreach (array_keys($filesWithNoCoverage) as $fileWithNoCoverage) { $rawData->removeCoverageDataForFile($fileWithNoCoverage); } + $rawData->skipEmptyLines(); if (is_array($linesToBeCovered)) { foreach ($linesToBeCovered as $fileToBeCovered => $includedLines) { diff --git a/src/Data/RawCodeCoverageData.php b/src/Data/RawCodeCoverageData.php index 444f410a7..9b4304648 100644 --- a/src/Data/RawCodeCoverageData.php +++ b/src/Data/RawCodeCoverageData.php @@ -103,8 +103,6 @@ private function __construct(array $lineCoverage, array $functionCoverage) { $this->lineCoverage = $lineCoverage; $this->functionCoverage = $functionCoverage; - - $this->skipEmptyLines(); } public function clear(): void @@ -251,7 +249,7 @@ public function removeCoverageDataForLines(string $filename, array $lines): void * * @see https://github.com/sebastianbergmann/php-code-coverage/issues/799 */ - private function skipEmptyLines(): void + public function skipEmptyLines(): void { foreach ($this->lineCoverage as $filename => $coverage) { foreach ($this->getEmptyLinesForFile($filename) as $emptyLine) { diff --git a/tests/tests/Data/RawCodeCoverageDataTest.php b/tests/tests/Data/RawCodeCoverageDataTest.php index 98c4f45cb..0d2470dd5 100644 --- a/tests/tests/Data/RawCodeCoverageDataTest.php +++ b/tests/tests/Data/RawCodeCoverageDataTest.php @@ -326,6 +326,7 @@ public function testCoverageForFileWithInlineAnnotations(): void 33, ], ); + $coverage->skipEmptyLines(); $this->assertEquals( [ From 493476e364dcbb70fd324c3666348adac0376726 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 27 Aug 2025 15:26:02 +0200 Subject: [PATCH 002/106] invoke skipEmptyLines() even earlier --- src/CodeCoverage.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 819a17fb7..154e97213 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -403,7 +403,6 @@ private function applyCoversAndUsesFilter(RawCodeCoverageData $rawData, array|fa foreach (array_keys($filesWithNoCoverage) as $fileWithNoCoverage) { $rawData->removeCoverageDataForFile($fileWithNoCoverage); } - $rawData->skipEmptyLines(); if (is_array($linesToBeCovered)) { foreach ($linesToBeCovered as $fileToBeCovered => $includedLines) { @@ -416,6 +415,8 @@ private function applyCoversAndUsesFilter(RawCodeCoverageData $rawData, array|fa private function applyFilter(RawCodeCoverageData $data): void { if ($this->filter->isEmpty()) { + $data->skipEmptyLines(); + return; } @@ -424,6 +425,7 @@ private function applyFilter(RawCodeCoverageData $data): void $data->removeCoverageDataForFile($filename); } } + $data->skipEmptyLines(); } private function applyExecutableLinesFilter(RawCodeCoverageData $data): void From fb05f1e4df082d8386198a09c33310828fd332eb Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 27 Aug 2025 16:28:38 +0200 Subject: [PATCH 003/106] Simplify applyFilter() --- src/CodeCoverage.php | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 154e97213..d96f5ab2a 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -414,17 +414,14 @@ private function applyCoversAndUsesFilter(RawCodeCoverageData $rawData, array|fa private function applyFilter(RawCodeCoverageData $data): void { - if ($this->filter->isEmpty()) { - $data->skipEmptyLines(); - - return; - } - - foreach (array_keys($data->lineCoverage()) as $filename) { - if ($this->filter->isExcluded($filename)) { - $data->removeCoverageDataForFile($filename); + if (!$this->filter->isEmpty()) { + foreach (array_keys($data->lineCoverage()) as $filename) { + if ($this->filter->isExcluded($filename)) { + $data->removeCoverageDataForFile($filename); + } } } + $data->skipEmptyLines(); } From d1a2b99239383058800205f67c999ad202a1830a Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 27 Aug 2025 16:34:17 +0200 Subject: [PATCH 004/106] Update tools --- .phive/phars.xml | 6 +++--- tools/composer | Bin 3116618 -> 3124368 bytes tools/php-cs-fixer | Bin 3306098 -> 3316523 bytes tools/phpstan | Bin 25137465 -> 25138329 bytes 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.phive/phars.xml b/.phive/phars.xml index 20163d0be..cb28db140 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -1,6 +1,6 @@ - - - + + + diff --git a/tools/composer b/tools/composer index 4f53d5aa0c80775176eb85345d3827548cdf1ec2..ee830d113df2a40cd7fcbd49966711d4aa4276bb 100755 GIT binary patch delta 17663 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 az#{yLr#UVAji)1H^TBVfND8q|{C@%EAA~9Z delta 11850 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 diff --git a/tools/php-cs-fixer b/tools/php-cs-fixer index c1ebe8cd56b2868c02d15ac927338c2cf83dab50..9c31190b5403506b727f211172b902ffc4fc61a1 100755 GIT binary patch delta 25859 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 z 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

9fc5sI|+Jm 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 delta 155523 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 From 2d6b39bcaba49dbc3c7de3181554bdbb017079c7 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 27 Aug 2025 16:35:04 +0200 Subject: [PATCH 005/106] Configure separate result cache path per branch --- phpstan.neon | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/phpstan.neon b/phpstan.neon index 69b65ad80..820e62297 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,9 +1,13 @@ parameters: level: 3 + paths: - src - tests/tests - tests/bootstrap.php + + resultCachePath: %tmpDir%/php-code-coverage-11.0.php + ignoreErrors: - message: "#^Return type \\(void\\) of method SebastianBergmann\\\\CodeCoverage\\\\StaticAnalysis\\\\CodeUnitFindingVisitor\\:\\:enterNode\\(\\) should be compatible with return type \\(array\\\\|int\\|PhpParser\\\\Node\\|null\\) of method PhpParser\\\\NodeVisitor\\:\\:enterNode\\(\\)$#" From 0b77284bbce354cfdd377d25bfe8c1ba4c23bbc2 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 27 Aug 2025 16:37:32 +0200 Subject: [PATCH 006/106] Fix CS/WS issue --- tests/tests/Data/RawCodeCoverageDataTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/tests/Data/RawCodeCoverageDataTest.php b/tests/tests/Data/RawCodeCoverageDataTest.php index 0d2470dd5..7ec012acc 100644 --- a/tests/tests/Data/RawCodeCoverageDataTest.php +++ b/tests/tests/Data/RawCodeCoverageDataTest.php @@ -326,6 +326,7 @@ public function testCoverageForFileWithInlineAnnotations(): void 33, ], ); + $coverage->skipEmptyLines(); $this->assertEquals( From 4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 27 Aug 2025 16:37:49 +0200 Subject: [PATCH 007/106] Prepare release --- ChangeLog-11.0.md | 7 +++++++ src/Version.php | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog-11.0.md b/ChangeLog-11.0.md index 1c056b12a..b32148616 100644 --- a/ChangeLog-11.0.md +++ b/ChangeLog-11.0.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [11.0.11] - 2025-08-27 + +### Changed + +* [#1085](https://github.com/sebastianbergmann/php-code-coverage/pull/1085): Improve performance by skipping empty lines after filter has been applied + ## [11.0.10] - 2025-06-18 ### Changed @@ -81,6 +87,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * This component now requires PHP-Parser 5 * This component is no longer supported on PHP 8.1 +[11.0.11]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.10...11.0.11 [11.0.10]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.9...11.0.10 [11.0.9]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.8...11.0.9 [11.0.8]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.7...11.0.8 diff --git a/src/Version.php b/src/Version.php index 8df0d4587..ff646e7a1 100644 --- a/src/Version.php +++ b/src/Version.php @@ -19,7 +19,7 @@ final class Version public static function id(): string { if (self::$version === '') { - self::$version = (new VersionId('11.0.10', dirname(__DIR__)))->asString(); + self::$version = (new VersionId('11.0.11', dirname(__DIR__)))->asString(); } return self::$version; From 733025d94635a001f67db71a2ed1bab4e7e4a9dc Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 27 Aug 2025 16:43:48 +0200 Subject: [PATCH 008/106] Prepare release --- ChangeLog-12.3.md | 7 +++++++ src/Version.php | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md index f076381c5..b0ad5d111 100644 --- a/ChangeLog-12.3.md +++ b/ChangeLog-12.3.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [12.3.3] - 2025-08-27 + +### Changed + +* [#1085](https://github.com/sebastianbergmann/php-code-coverage/pull/1085): Improve performance by skipping empty lines after filter has been applied + ## [12.3.2] - 2025-07-29 ### Changed @@ -26,6 +32,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1080](https://github.com/sebastianbergmann/php-code-coverage/pull/1080): Support for reporting code coverage information in OpenClover XML format; unlike the existing Clover XML reporter, which remains unchanged, the XML documents generated by this new reporter validate against the OpenClover project's XML schema definition, with one exception: we do not generate the `` element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility. +[12.3.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.2...12.3.3 [12.3.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.1...12.3.2 [12.3.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.0...12.3.1 [12.3.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.2.1...12.3.0 diff --git a/src/Version.php b/src/Version.php index fe7c20d6c..b8fa56e7a 100644 --- a/src/Version.php +++ b/src/Version.php @@ -19,7 +19,7 @@ final class Version public static function id(): string { if (self::$version === '') { - self::$version = (new VersionId('12.3.2', dirname(__DIR__)))->asString(); + self::$version = (new VersionId('12.3.3', dirname(__DIR__)))->asString(); } return self::$version; From 73bcdd5c6919e39a9ea712c7a7b57af595340b00 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 28 Aug 2025 11:30:02 +0200 Subject: [PATCH 009/106] Simplify MapBuilder --- src/Target/MapBuilder.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Target/MapBuilder.php b/src/Target/MapBuilder.php index be859e2eb..87b560ef6 100644 --- a/src/Target/MapBuilder.php +++ b/src/Target/MapBuilder.php @@ -144,8 +144,8 @@ public function build(Filter $filter, FileAnalyser $analyser): array } } - foreach (array_keys($namespaces) as $namespace) { - foreach (array_keys($namespaces[$namespace]) as $file) { + foreach ($namespaces as $namespace => $files) { + foreach (array_keys($files) as $file) { $namespaces[$namespace][$file] = array_unique($namespaces[$namespace][$file]); } } @@ -190,8 +190,8 @@ public function build(Filter $filter, FileAnalyser $analyser): array /** * @todo Avoid duplication and remove this loop */ - foreach (array_keys($classes) as $className) { - foreach (array_keys($classes[$className]) as $file) { + foreach ($classes as $className => $files) { + foreach (array_keys($files) as $file) { $classes[$className][$file] = array_unique($classes[$className][$file]); } } From 6afb0dbc802d936d26dae816262cb90b295a971b Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Thu, 28 Aug 2025 13:45:26 +0200 Subject: [PATCH 010/106] Avoid extra loop --- src/Target/MapBuilder.php | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/Target/MapBuilder.php b/src/Target/MapBuilder.php index 87b560ef6..73395524f 100644 --- a/src/Target/MapBuilder.php +++ b/src/Target/MapBuilder.php @@ -160,11 +160,17 @@ public function build(Filter $filter, FileAnalyser $analyser): array } foreach ($this->parentClasses($classDetails, $class) as $parentClass) { - $classes[$class->namespacedName()] = array_merge_recursive( + $merged = array_merge_recursive( $classes[$class->namespacedName()], $classes[$parentClass->namespacedName()], ); + foreach ($merged as $mergedFile => $lines) { + $merged[$mergedFile] = array_unique($lines); + } + + $classes[$class->namespacedName()] = $merged; + if (isset($classesThatExtendClass[$parentClass->namespacedName()])) { $this->process($classesThatExtendClass, $parentClass->namespacedName(), $class->file(), $class->startLine(), $class->endLine()); } @@ -187,15 +193,6 @@ public function build(Filter $filter, FileAnalyser $analyser): array unset($classesThatExtendClass[$className]); } - /** - * @todo Avoid duplication and remove this loop - */ - foreach ($classes as $className => $files) { - foreach (array_keys($files) as $file) { - $classes[$className][$file] = array_unique($classes[$className][$file]); - } - } - return [ 'namespaces' => $namespaces, 'traits' => $traits, From 60c24d219871362663561034d53a6e759d2113f4 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Sat, 9 Aug 2025 12:24:57 +0200 Subject: [PATCH 011/106] Move issue template MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For unphanthomable reasons, GitHub, in their wisdom, have decided to remove support for single (default) issue templates. In practice, this means that the issue template for this repo was no longer used. To mitigate this, the template file needs to be moved to the `.github/ISSUE_TEMPLATE` subdirectory and YAML frontmatter must be added to the template for the template. This will also reinstate the issue template ✔ checkmark in the community profile checklist (Insights -> Community Standards). However, doing this will now create an even more annoying problem: the "New Issue" button will now open the issue template chooser instead of just defaulting to the single issue template for the repo. Unfortunately, this cannot be mitigated for repos which also have a security policy as the "Report a security vulnerability" item in the template chooser cannot be disabled. The only thing which can be done to at least prevent end-users from bypassing the issue template, is to add a `config.yml` file to disable blank issues. What can I say... :woman_shrugging: _sigh_ Refs: * https://github.blog/changelog/2025-02-18-github-issues-projects-february-18th-update/#%f0%9f%8c%85-single-issue-templates-issue_template-md-will-be-retired * https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/manually-creating-a-single-issue-template-for-your-repository --- .github/{ => ISSUE_TEMPLATE}/ISSUE_TEMPLATE.md | 5 +++++ .github/ISSUE_TEMPLATE/config.yml | 1 + 2 files changed, 6 insertions(+) rename .github/{ => ISSUE_TEMPLATE}/ISSUE_TEMPLATE.md (92%) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md similarity index 92% rename from .github/ISSUE_TEMPLATE.md rename to .github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md index 5ca75c07d..128d7d3f3 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md @@ -1,3 +1,8 @@ +--- +name: Generic issue +about: Use this template for all issues. +--- + | Q | A | --------------------------| --------------- | php-code-coverage version | x.y.z diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..3ba13e0ce --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false From 5c6f2c1e4224bf754905d98e8f40197062fdb923 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Fri, 29 Aug 2025 08:50:31 +0200 Subject: [PATCH 012/106] Faster MapBuilder->build() --- src/Target/MapBuilder.php | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/Target/MapBuilder.php b/src/Target/MapBuilder.php index 73395524f..eea151015 100644 --- a/src/Target/MapBuilder.php +++ b/src/Target/MapBuilder.php @@ -11,7 +11,6 @@ use function array_keys; use function array_merge; -use function array_merge_recursive; use function array_slice; use function array_unique; use function count; @@ -160,16 +159,28 @@ public function build(Filter $filter, FileAnalyser $analyser): array } foreach ($this->parentClasses($classDetails, $class) as $parentClass) { - $merged = array_merge_recursive( - $classes[$class->namespacedName()], - $classes[$parentClass->namespacedName()], - ); + // in big inheritance trees we might handle a lot of data. + // this inner loop needs to prevent unnecessary work whenever possible + foreach ($classes[$parentClass->namespacedName()] as $file => $lines) { + if (!isset($classes[$class->namespacedName()][$file])) { + $classes[$class->namespacedName()][$file] = $lines; - foreach ($merged as $mergedFile => $lines) { - $merged[$mergedFile] = array_unique($lines); - } + continue; + } + + if ( + $classes[$class->namespacedName()][$file] === $lines + ) { + continue; + } - $classes[$class->namespacedName()] = $merged; + $classes[$class->namespacedName()][$file] = array_unique( + array_merge( + $classes[$class->namespacedName()][$file], + $lines, + ), + ); + } if (isset($classesThatExtendClass[$parentClass->namespacedName()])) { $this->process($classesThatExtendClass, $parentClass->namespacedName(), $class->file(), $class->startLine(), $class->endLine()); From 52e5f81e0a8aa723a3325928217694b81bfae896 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Fri, 29 Aug 2025 09:24:03 +0200 Subject: [PATCH 013/106] Refactor de-duplicate logic and re-use fast path in more places --- src/Target/MapBuilder.php | 80 +++++++++++++++------------------------ 1 file changed, 30 insertions(+), 50 deletions(-) diff --git a/src/Target/MapBuilder.php b/src/Target/MapBuilder.php index eea151015..ab4ed03c8 100644 --- a/src/Target/MapBuilder.php +++ b/src/Target/MapBuilder.php @@ -71,20 +71,7 @@ public function build(Filter $filter, FileAnalyser $analyser): array continue; } - $file = array_keys($traits[$traitName])[0]; - - if (!isset($traits[$trait->namespacedName()][$file])) { - $traits[$trait->namespacedName()][$file] = $traits[$traitName][$file]; - - continue; - } - - $traits[$trait->namespacedName()][$file] = array_unique( - array_merge( - $traits[$trait->namespacedName()][$file], - $traits[$traitName][$file], - ), - ); + $this->mergeLines($trait->namespacedName(), $traits[$traitName], $traits); } } } @@ -108,20 +95,7 @@ public function build(Filter $filter, FileAnalyser $analyser): array continue; } - foreach ($traits[$traitName] as $traitFile => $lines) { - if (!isset($classes[$class->namespacedName()][$traitFile])) { - $classes[$class->namespacedName()][$traitFile] = $lines; - - continue; - } - - $classes[$class->namespacedName()][$traitFile] = array_unique( - array_merge( - $classes[$class->namespacedName()][$traitFile], - $lines, - ), - ); - } + $this->mergeLines($class->namespacedName(), $traits[$traitName], $classes); } $this->processMethods($class, $file, $methods, $reverseLookup); @@ -159,28 +133,7 @@ public function build(Filter $filter, FileAnalyser $analyser): array } foreach ($this->parentClasses($classDetails, $class) as $parentClass) { - // in big inheritance trees we might handle a lot of data. - // this inner loop needs to prevent unnecessary work whenever possible - foreach ($classes[$parentClass->namespacedName()] as $file => $lines) { - if (!isset($classes[$class->namespacedName()][$file])) { - $classes[$class->namespacedName()][$file] = $lines; - - continue; - } - - if ( - $classes[$class->namespacedName()][$file] === $lines - ) { - continue; - } - - $classes[$class->namespacedName()][$file] = array_unique( - array_merge( - $classes[$class->namespacedName()][$file], - $lines, - ), - ); - } + $this->mergeLines($class->namespacedName(), $classes[$parentClass->namespacedName()], $classes); if (isset($classesThatExtendClass[$parentClass->namespacedName()])) { $this->process($classesThatExtendClass, $parentClass->namespacedName(), $class->file(), $class->startLine(), $class->endLine()); @@ -216,6 +169,33 @@ public function build(Filter $filter, FileAnalyser $analyser): array ]; } + private function mergeLines(string $targetClass, array $sourceData, array &$data): void + { + // in big inheritance trees we might handle a lot of data. + // this loop needs to prevent unnecessary work whenever possible. + + foreach ($sourceData as $file => $lines) { + if (!isset($data[$targetClass][$file])) { + $data[$targetClass][$file] = $lines; + + continue; + } + + if ( + $data[$targetClass][$file] === $lines + ) { + continue; + } + + $data[$targetClass][$file] = array_unique( + array_merge( + $data[$targetClass][$file], + $lines, + ), + ); + } + } + private function processMethods(Class_|Trait_ $classOrTrait, string $file, array &$methods, array &$reverseLookup): void { foreach ($classOrTrait->methods() as $method) { From 3b8fd31dd913f544d05b4b5acfd159dae049b473 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 29 Aug 2025 12:29:03 +0200 Subject: [PATCH 014/106] Fix CS/WS issues --- src/Target/MapBuilder.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Target/MapBuilder.php b/src/Target/MapBuilder.php index ab4ed03c8..8e8d93fbb 100644 --- a/src/Target/MapBuilder.php +++ b/src/Target/MapBuilder.php @@ -171,9 +171,10 @@ public function build(Filter $filter, FileAnalyser $analyser): array private function mergeLines(string $targetClass, array $sourceData, array &$data): void { - // in big inheritance trees we might handle a lot of data. - // this loop needs to prevent unnecessary work whenever possible. - + /** + * In large inheritance trees we might handle a lot of data. + * This loop needs to prevent unnecessary work whenever possible. + */ foreach ($sourceData as $file => $lines) { if (!isset($data[$targetClass][$file])) { $data[$targetClass][$file] = $lines; @@ -181,9 +182,7 @@ private function mergeLines(string $targetClass, array $sourceData, array &$data continue; } - if ( - $data[$targetClass][$file] === $lines - ) { + if ($data[$targetClass][$file] === $lines) { continue; } From 7ad0e9bdc72b147600badccd694a2e57ffc9297a Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 29 Aug 2025 13:32:44 +0200 Subject: [PATCH 015/106] Prepare release --- ChangeLog-12.3.md | 7 +++++++ src/Version.php | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md index b0ad5d111..500ac16ca 100644 --- a/ChangeLog-12.3.md +++ b/ChangeLog-12.3.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [12.3.4] - 2025-08-29 + +### Changed + +* Improved performance of `MapBuilder::build()` + ## [12.3.3] - 2025-08-27 ### Changed @@ -32,6 +38,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1080](https://github.com/sebastianbergmann/php-code-coverage/pull/1080): Support for reporting code coverage information in OpenClover XML format; unlike the existing Clover XML reporter, which remains unchanged, the XML documents generated by this new reporter validate against the OpenClover project's XML schema definition, with one exception: we do not generate the `` element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility. +[12.3.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.3...12.3.4 [12.3.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.2...12.3.3 [12.3.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.1...12.3.2 [12.3.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.0...12.3.1 diff --git a/src/Version.php b/src/Version.php index b8fa56e7a..3666e06c9 100644 --- a/src/Version.php +++ b/src/Version.php @@ -19,7 +19,7 @@ final class Version public static function id(): string { if (self::$version === '') { - self::$version = (new VersionId('12.3.3', dirname(__DIR__)))->asString(); + self::$version = (new VersionId('12.3.4', dirname(__DIR__)))->asString(); } return self::$version; From 194f273255a44d9da6e8f2b7877baba15f5896d9 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Mon, 1 Sep 2025 07:22:41 +0200 Subject: [PATCH 016/106] Update dependencies --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 9dc28d17d..03302f224 100644 --- a/composer.json +++ b/composer.json @@ -33,18 +33,18 @@ "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.4.0", + "nikic/php-parser": "^5.6.1", "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-text-template": "^4.0.1", "sebastian/code-unit-reverse-lookup": "^4.0.1", "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.0", + "sebastian/environment": "^7.2.1", "sebastian/lines-of-code": "^3.0.1", "sebastian/version": "^5.0.2", "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^11.5.2" + "phpunit/phpunit": "^11.5.35" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", From ff7895b7348df0d4fefa87f102832b9797e15877 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Mon, 1 Sep 2025 07:59:01 +0200 Subject: [PATCH 017/106] Remove superfluous parent call --- tests/tests/Report/PhpTest.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/tests/Report/PhpTest.php b/tests/tests/Report/PhpTest.php index 358e588a7..b6ea6bbf8 100644 --- a/tests/tests/Report/PhpTest.php +++ b/tests/tests/Report/PhpTest.php @@ -16,8 +16,6 @@ final class PhpTest extends TestCase { protected function tearDown(): void { - parent::tearDown(); - $this->removeTemporaryFiles(); } From 305ebf539e4688eb072a78a2467ee3ad4cdc0776 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Mon, 1 Sep 2025 08:01:36 +0200 Subject: [PATCH 018/106] Only export properties for configuration, code coverage data, and test results when serializing CodeCoverage for #1090 --- ChangeLog-12.3.md | 7 +++++++ src/CodeCoverage.php | 21 +++++++++++++++++++++ tests/tests/Report/PhpTest.php | 9 +++++++-- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md index 500ac16ca..39272e87c 100644 --- a/ChangeLog-12.3.md +++ b/ChangeLog-12.3.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [12.3.5] - 2025-MM-DD + +### Changed + +* [#1090](https://github.com/sebastianbergmann/php-code-coverage/issues/1090): Only export properties for configuration, code coverage data, and test results when serializing `CodeCoverage` + ## [12.3.4] - 2025-08-29 ### Changed @@ -38,6 +44,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1080](https://github.com/sebastianbergmann/php-code-coverage/pull/1080): Support for reporting code coverage information in OpenClover XML format; unlike the existing Clover XML reporter, which remains unchanged, the XML documents generated by this new reporter validate against the OpenClover project's XML schema definition, with one exception: we do not generate the `` element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility. +[12.3.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.4...main [12.3.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.3...12.3.4 [12.3.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.2...12.3.3 [12.3.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.1...12.3.2 diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 3b362a9aa..0409b8ad2 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -76,6 +76,27 @@ public function __construct(Driver $driver, Filter $filter) $this->data = new ProcessedCodeCoverageData; } + /** + * @return non-empty-list + */ + public function __sleep(): array + { + return [ + // Configuration + 'cacheDirectory', + 'checkForUnintentionallyCoveredCode', + 'includeUncoveredFiles', + 'ignoreDeprecatedCode', + 'parentClassesExcludedFromUnintentionallyCoveredCodeCheck', + 'useAnnotationsForIgnoringCode', + 'filter', + + // Data + 'data', + 'tests', + ]; + } + /** * Returns the code coverage information as a graph of node objects. */ diff --git a/tests/tests/Report/PhpTest.php b/tests/tests/Report/PhpTest.php index b6ea6bbf8..ad67df576 100644 --- a/tests/tests/Report/PhpTest.php +++ b/tests/tests/Report/PhpTest.php @@ -10,6 +10,7 @@ namespace SebastianBergmann\CodeCoverage\Report; use ReflectionProperty; +use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\TestCase; final class PhpTest extends TestCase @@ -28,7 +29,9 @@ public function testPHPSerialisationProducesValidCode(): void $unserialized = require TEST_FILES_PATH . 'tmp/serialized.php'; - $this->assertEquals($coverage, $unserialized); + $this->assertInstanceOf(CodeCoverage::class, $unserialized); + $this->assertEquals($coverage->getData(), $unserialized->getData()); + $this->assertEquals($coverage->getTests(), $unserialized->getTests()); } public function testPHPSerialisationProducesValidCodeWhenOutputIncludesSingleQuote(): void @@ -40,7 +43,9 @@ public function testPHPSerialisationProducesValidCodeWhenOutputIncludesSingleQuo $unserialized = require TEST_FILES_PATH . 'tmp/serialized.php'; - $this->assertEquals($coverage, $unserialized); + $this->assertInstanceOf(CodeCoverage::class, $unserialized); + $this->assertEquals($coverage->getData(), $unserialized->getData()); + $this->assertEquals($coverage->getTests(), $unserialized->getTests()); } public function testCacheDataNeverGetSaved(): void From 96dc0466673e215bf5536301039017f03cd45c6b Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Mon, 1 Sep 2025 10:07:42 +0200 Subject: [PATCH 019/106] Prepare release --- ChangeLog-12.3.md | 4 ++-- src/Version.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md index 39272e87c..3635f6a10 100644 --- a/ChangeLog-12.3.md +++ b/ChangeLog-12.3.md @@ -2,7 +2,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. -## [12.3.5] - 2025-MM-DD +## [12.3.5] - 2025-09-01 ### Changed @@ -44,7 +44,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1080](https://github.com/sebastianbergmann/php-code-coverage/pull/1080): Support for reporting code coverage information in OpenClover XML format; unlike the existing Clover XML reporter, which remains unchanged, the XML documents generated by this new reporter validate against the OpenClover project's XML schema definition, with one exception: we do not generate the `` element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility. -[12.3.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.4...main +[12.3.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.4...12.3.5 [12.3.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.3...12.3.4 [12.3.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.2...12.3.3 [12.3.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.1...12.3.2 diff --git a/src/Version.php b/src/Version.php index 3666e06c9..a9517bc84 100644 --- a/src/Version.php +++ b/src/Version.php @@ -19,7 +19,7 @@ final class Version public static function id(): string { if (self::$version === '') { - self::$version = (new VersionId('12.3.4', dirname(__DIR__)))->asString(); + self::$version = (new VersionId('12.3.5', dirname(__DIR__)))->asString(); } return self::$version; From 26ceab6e57df7e7b71891bbd890a15388371bdbb Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Tue, 2 Sep 2025 07:12:51 +0200 Subject: [PATCH 020/106] Closes #1091 --- ChangeLog-12.3.md | 7 +++++++ src/CodeCoverage.php | 7 ++++++- tests/src/TestCase.php | 12 ++++++++---- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md index 3635f6a10..770e15efa 100644 --- a/ChangeLog-12.3.md +++ b/ChangeLog-12.3.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [12.3.6] - 2025-MM-DD + +### Fixed + +* [#1091](https://github.com/sebastianbergmann/php-code-coverage/issues/1091): HTML report renderer uses code coverage driver + ## [12.3.5] - 2025-09-01 ### Changed @@ -44,6 +50,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1080](https://github.com/sebastianbergmann/php-code-coverage/pull/1080): Support for reporting code coverage information in OpenClover XML format; unlike the existing Clover XML reporter, which remains unchanged, the XML documents generated by this new reporter validate against the OpenClover project's XML schema definition, with one exception: we do not generate the `` element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility. +[12.3.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.5...main [12.3.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.4...12.3.5 [12.3.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.3...12.3.4 [12.3.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.2...12.3.3 diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 0409b8ad2..350a31898 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -68,6 +68,7 @@ final class CodeCoverage private ?FileAnalyser $analyser = null; private ?string $cacheDirectory = null; private ?Directory $cachedReport = null; + private bool $collectBranchAndPathCoverage = false; public function __construct(Driver $driver, Filter $filter) { @@ -384,16 +385,20 @@ public function excludeSubclassesOfThisClassFromUnintentionallyCoveredCodeCheck( public function enableBranchAndPathCoverage(): void { $this->driver->enableBranchAndPathCoverage(); + + $this->collectBranchAndPathCoverage = true; } public function disableBranchAndPathCoverage(): void { $this->driver->disableBranchAndPathCoverage(); + + $this->collectBranchAndPathCoverage = false; } public function collectsBranchAndPathCoverage(): bool { - return $this->driver->collectsBranchAndPathCoverage(); + return $this->collectBranchAndPathCoverage; } public function validate(TargetCollection $targets): ValidationResult diff --git a/tests/src/TestCase.php b/tests/src/TestCase.php index aff94901c..ba87455db 100644 --- a/tests/src/TestCase.php +++ b/tests/src/TestCase.php @@ -1083,8 +1083,6 @@ protected function getPathCoverageForBankAccount(): CodeCoverage $stub = $this->createStub(Driver::class); - $stub->method('collectsBranchAndPathCoverage')->willReturn(true); - $stub->method('stop') ->willReturn(...$data); @@ -1093,6 +1091,8 @@ protected function getPathCoverageForBankAccount(): CodeCoverage $coverage = new CodeCoverage($stub, $filter); + $coverage->enableBranchAndPathCoverage(); + $coverage->start( 'BankAccountTest::testBalanceIsInitiallyZero', null, @@ -1162,8 +1162,6 @@ protected function getPathCoverageForSourceWithoutNamespace(): CodeCoverage $stub = $this->createStub(Driver::class); - $stub->method('collectsBranchAndPathCoverage')->willReturn(true); - $stub->method('stop') ->willReturn(...$data); @@ -1172,6 +1170,8 @@ protected function getPathCoverageForSourceWithoutNamespace(): CodeCoverage $coverage = new CodeCoverage($stub, $filter); + $coverage->enableBranchAndPathCoverage(); + $coverage->start( 'faketest', null, @@ -1472,6 +1472,8 @@ protected function getPathCoverageForBankAccountForFirstTwoTests(): CodeCoverage $coverage = new CodeCoverage($stub, $filter); + $coverage->enableBranchAndPathCoverage(); + $coverage->start( 'BankAccountTest::testBalanceIsInitiallyZero', null, @@ -1519,6 +1521,8 @@ protected function getPathCoverageForBankAccountForLastTwoTests(): CodeCoverage $coverage = new CodeCoverage($stub, $filter); + $coverage->enableBranchAndPathCoverage(); + $coverage->start( 'BankAccountTest::testBalanceCannotBecomeNegative2', ); From 48b3e6103bfb76b934a937631ba33d309a1e2ecd Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Tue, 2 Sep 2025 07:17:09 +0200 Subject: [PATCH 021/106] Reorder (dependencies first, followed by configuration and collected data) --- src/CodeCoverage.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 350a31898..6976d7b80 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -47,28 +47,28 @@ final class CodeCoverage private const string UNCOVERED_FILES = 'UNCOVERED_FILES'; private readonly Driver $driver; private readonly Filter $filter; + private ?FileAnalyser $analyser = null; private ?Mapper $targetMapper = null; + private ?string $cacheDirectory = null; private bool $checkForUnintentionallyCoveredCode = false; + private bool $collectBranchAndPathCoverage = false; private bool $includeUncoveredFiles = true; private bool $ignoreDeprecatedCode = false; - private ?string $currentId = null; - private ?TestSize $currentSize = null; - private ProcessedCodeCoverageData $data; - private bool $useAnnotationsForIgnoringCode = true; + private bool $useAnnotationsForIgnoringCode = true; /** - * @var array + * @var list */ - private array $tests = []; + private array $parentClassesExcludedFromUnintentionallyCoveredCodeCheck = []; + private ?string $currentId = null; + private ?TestSize $currentSize = null; + private ProcessedCodeCoverageData $data; /** - * @var list + * @var array */ - private array $parentClassesExcludedFromUnintentionallyCoveredCodeCheck = []; - private ?FileAnalyser $analyser = null; - private ?string $cacheDirectory = null; - private ?Directory $cachedReport = null; - private bool $collectBranchAndPathCoverage = false; + private array $tests = []; + private ?Directory $cachedReport = null; public function __construct(Driver $driver, Filter $filter) { From da2cdaff87220fa641e7652364281b736e4347e0 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Tue, 2 Sep 2025 07:23:14 +0200 Subject: [PATCH 022/106] Prepare release --- ChangeLog-12.3.md | 4 ++-- src/Version.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md index 770e15efa..b24c5de55 100644 --- a/ChangeLog-12.3.md +++ b/ChangeLog-12.3.md @@ -2,7 +2,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. -## [12.3.6] - 2025-MM-DD +## [12.3.6] - 2025-09-02 ### Fixed @@ -50,7 +50,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1080](https://github.com/sebastianbergmann/php-code-coverage/pull/1080): Support for reporting code coverage information in OpenClover XML format; unlike the existing Clover XML reporter, which remains unchanged, the XML documents generated by this new reporter validate against the OpenClover project's XML schema definition, with one exception: we do not generate the `` element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility. -[12.3.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.5...main +[12.3.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.5...12.3.6 [12.3.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.4...12.3.5 [12.3.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.3...12.3.4 [12.3.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.2...12.3.3 diff --git a/src/Version.php b/src/Version.php index a9517bc84..df26baa9e 100644 --- a/src/Version.php +++ b/src/Version.php @@ -19,7 +19,7 @@ final class Version public static function id(): string { if (self::$version === '') { - self::$version = (new VersionId('12.3.5', dirname(__DIR__)))->asString(); + self::$version = (new VersionId('12.3.6', dirname(__DIR__)))->asString(); } return self::$version; From 8765f646653360625aa8a39bb2cf37f4b28174a3 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 10 Sep 2025 11:24:24 +0200 Subject: [PATCH 023/106] Use __serialize() instead of __sleep() --- ChangeLog-12.3.md | 7 +++++++ src/CodeCoverage.php | 33 ++++++++++++++++++++++----------- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md index b24c5de55..91db1856a 100644 --- a/ChangeLog-12.3.md +++ b/ChangeLog-12.3.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [12.3.7] - 2025-MM-DD + +### Changed + +* Do not use `__sleep()` method (which will be deprecated in PHP 8.5) + ## [12.3.6] - 2025-09-02 ### Fixed @@ -50,6 +56,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1080](https://github.com/sebastianbergmann/php-code-coverage/pull/1080): Support for reporting code coverage information in OpenClover XML format; unlike the existing Clover XML reporter, which remains unchanged, the XML documents generated by this new reporter validate against the OpenClover project's XML schema definition, with one exception: we do not generate the `` element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility. +[12.3.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.6...main [12.3.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.5...12.3.6 [12.3.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.4...12.3.5 [12.3.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.3...12.3.4 diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 6976d7b80..2feb0e5a6 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -78,23 +78,34 @@ public function __construct(Driver $driver, Filter $filter) } /** - * @return non-empty-list + * @return array{ + * cacheDirectory: ?string, + * checkForUnintentionallyCoveredCode: bool, + * includeUncoveredFiles: bool, + * ignoreDeprecatedCode: bool, + * parentClassesExcludedFromUnintentionallyCoveredCodeCheck: list, + * filter: Filter, + * data: ProcessedCodeCoverageData, + * tests: array + * } */ - public function __sleep(): array + public function __serialize(): array { + $prefix = "\x00" . self::class . "\x00"; + return [ // Configuration - 'cacheDirectory', - 'checkForUnintentionallyCoveredCode', - 'includeUncoveredFiles', - 'ignoreDeprecatedCode', - 'parentClassesExcludedFromUnintentionallyCoveredCodeCheck', - 'useAnnotationsForIgnoringCode', - 'filter', + $prefix . 'cacheDirectory' => $this->cacheDirectory, + $prefix . 'checkForUnintentionallyCoveredCode' => $this->checkForUnintentionallyCoveredCode, + $prefix . 'includeUncoveredFiles' => $this->includeUncoveredFiles, + $prefix . 'ignoreDeprecatedCode' => $this->ignoreDeprecatedCode, + $prefix . 'parentClassesExcludedFromUnintentionallyCoveredCodeCheck' => $this->parentClassesExcludedFromUnintentionallyCoveredCodeCheck, + $prefix . 'useAnnotationsForIgnoringCode' => $this->useAnnotationsForIgnoringCode, + $prefix . 'filter' => $this->filter, // Data - 'data', - 'tests', + $prefix . 'data' => $this->data, + $prefix . 'tests' => $this->tests, ]; } From bbede0f5593dad37af3be6a6f8e6ae1885e8a0a9 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 10 Sep 2025 11:59:06 +0200 Subject: [PATCH 024/106] Prepare release --- ChangeLog-12.3.md | 4 ++-- src/Version.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md index 91db1856a..8a7423e69 100644 --- a/ChangeLog-12.3.md +++ b/ChangeLog-12.3.md @@ -2,7 +2,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. -## [12.3.7] - 2025-MM-DD +## [12.3.7] - 2025-09-10 ### Changed @@ -56,7 +56,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1080](https://github.com/sebastianbergmann/php-code-coverage/pull/1080): Support for reporting code coverage information in OpenClover XML format; unlike the existing Clover XML reporter, which remains unchanged, the XML documents generated by this new reporter validate against the OpenClover project's XML schema definition, with one exception: we do not generate the `` element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility. -[12.3.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.6...main +[12.3.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.6...12.3.7 [12.3.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.5...12.3.6 [12.3.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.4...12.3.5 [12.3.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.3...12.3.4 diff --git a/src/Version.php b/src/Version.php index df26baa9e..8562c54cf 100644 --- a/src/Version.php +++ b/src/Version.php @@ -19,7 +19,7 @@ final class Version public static function id(): string { if (self::$version === '') { - self::$version = (new VersionId('12.3.6', dirname(__DIR__)))->asString(); + self::$version = (new VersionId('12.3.7', dirname(__DIR__)))->asString(); } return self::$version; From 073b2ff39411343988a9ad2931626dd1a0af3910 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 10 Sep 2025 13:09:13 +0200 Subject: [PATCH 025/106] Do not define array shape as we cannot express the prefix for the array keys --- src/CodeCoverage.php | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 2feb0e5a6..ab9936ce7 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -77,18 +77,6 @@ public function __construct(Driver $driver, Filter $filter) $this->data = new ProcessedCodeCoverageData; } - /** - * @return array{ - * cacheDirectory: ?string, - * checkForUnintentionallyCoveredCode: bool, - * includeUncoveredFiles: bool, - * ignoreDeprecatedCode: bool, - * parentClassesExcludedFromUnintentionallyCoveredCodeCheck: list, - * filter: Filter, - * data: ProcessedCodeCoverageData, - * tests: array - * } - */ public function __serialize(): array { $prefix = "\x00" . self::class . "\x00"; From fefc2a841e45c01ffe40b31c529a46efc4c119d1 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Thu, 11 Sep 2025 07:30:49 +0200 Subject: [PATCH 026/106] Extract methods to reduce code duplication and handle error in DOMDocument::saveXML() for #1092 --- ChangeLog-11.0.md | 7 ++++++ src/Report/Clover.php | 20 ++++++--------- src/Report/Cobertura.php | 23 ++++++----------- src/Report/Crap4j.php | 20 ++++++--------- src/Report/PHP.php | 16 +++++------- src/Report/Xml/Facade.php | 37 +++------------------------ src/Util/Filesystem.php | 20 +++++++++++++++ src/Util/Xml.php | 53 +++++++++++++++++++++++++++++++++++++++ 8 files changed, 111 insertions(+), 85 deletions(-) create mode 100644 src/Util/Xml.php diff --git a/ChangeLog-11.0.md b/ChangeLog-11.0.md index b32148616..ff7d4538e 100644 --- a/ChangeLog-11.0.md +++ b/ChangeLog-11.0.md @@ -2,6 +2,12 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [11.0.11] - 2025-MM-DD + +### Fixed + +* [#1092](https://github.com/sebastianbergmann/php-code-coverage/issues/1092): Error in `DOMDocument::saveXML()` is not handled + ## [11.0.11] - 2025-08-27 ### Changed @@ -87,6 +93,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * This component now requires PHP-Parser 5 * This component is no longer supported on PHP 8.1 +[11.0.11]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.11...11.0 [11.0.11]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.10...11.0.11 [11.0.10]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.9...11.0.10 [11.0.9]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.8...11.0.9 diff --git a/src/Report/Clover.php b/src/Report/Clover.php index 4a0bd409c..14d3a15b5 100644 --- a/src/Report/Clover.php +++ b/src/Report/Clover.php @@ -10,31 +10,31 @@ namespace SebastianBergmann\CodeCoverage\Report; use function count; -use function dirname; -use function file_put_contents; use function is_string; use function ksort; use function max; use function range; -use function str_contains; use function time; use DOMDocument; use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; use SebastianBergmann\CodeCoverage\Node\File; use SebastianBergmann\CodeCoverage\Util\Filesystem; +use SebastianBergmann\CodeCoverage\Util\Xml; final class Clover { /** + * @param null|non-empty-string $target + * @param null|non-empty-string $name + * * @throws WriteOperationFailedException */ public function process(CodeCoverage $coverage, ?string $target = null, ?string $name = null): string { $time = (string) time(); - $xmlDocument = new DOMDocument('1.0', 'UTF-8'); - $xmlDocument->formatOutput = true; + $xmlDocument = new DOMDocument('1.0', 'UTF-8'); $xmlCoverage = $xmlDocument->createElement('coverage'); $xmlCoverage->setAttribute('generated', $time); @@ -214,16 +214,10 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string $xmlMetrics->setAttribute('coveredelements', (string) ($report->numberOfTestedMethods() + $report->numberOfExecutedLines() + $report->numberOfExecutedBranches())); $xmlProject->appendChild($xmlMetrics); - $buffer = $xmlDocument->saveXML(); + $buffer = Xml::asString($xmlDocument); if ($target !== null) { - if (!str_contains($target, '://')) { - Filesystem::createDirectory(dirname($target)); - } - - if (@file_put_contents($target, $buffer) === false) { - throw new WriteOperationFailedException($target); - } + Filesystem::write($target, $buffer); } return $buffer; diff --git a/src/Report/Cobertura.php b/src/Report/Cobertura.php index 215fc0c54..136070bda 100644 --- a/src/Report/Cobertura.php +++ b/src/Report/Cobertura.php @@ -12,11 +12,8 @@ use const DIRECTORY_SEPARATOR; use function basename; use function count; -use function dirname; -use function file_put_contents; use function preg_match; use function range; -use function str_contains; use function str_replace; use function time; use DOMImplementation; @@ -24,10 +21,13 @@ use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; use SebastianBergmann\CodeCoverage\Node\File; use SebastianBergmann\CodeCoverage\Util\Filesystem; +use SebastianBergmann\CodeCoverage\Util\Xml; final class Cobertura { /** + * @param null|non-empty-string $target + * * @throws WriteOperationFailedException */ public function process(CodeCoverage $coverage, ?string $target = null): string @@ -44,10 +44,9 @@ public function process(CodeCoverage $coverage, ?string $target = null): string 'http://cobertura.sourceforge.net/xml/coverage-04.dtd', ); - $document = $implementation->createDocument('', '', $documentType); - $document->xmlVersion = '1.0'; - $document->encoding = 'UTF-8'; - $document->formatOutput = true; + $document = $implementation->createDocument('', '', $documentType); + $document->xmlVersion = '1.0'; + $document->encoding = 'UTF-8'; $coverageElement = $document->createElement('coverage'); @@ -289,16 +288,10 @@ public function process(CodeCoverage $coverage, ?string $target = null): string $coverageElement->setAttribute('complexity', (string) $complexity); - $buffer = $document->saveXML(); + $buffer = Xml::asString($document); if ($target !== null) { - if (!str_contains($target, '://')) { - Filesystem::createDirectory(dirname($target)); - } - - if (@file_put_contents($target, $buffer) === false) { - throw new WriteOperationFailedException($target); - } + Filesystem::write($target, $buffer); } return $buffer; diff --git a/src/Report/Crap4j.php b/src/Report/Crap4j.php index cb1bde605..f7381c1eb 100644 --- a/src/Report/Crap4j.php +++ b/src/Report/Crap4j.php @@ -10,17 +10,15 @@ namespace SebastianBergmann\CodeCoverage\Report; use function date; -use function dirname; -use function file_put_contents; use function htmlspecialchars; use function is_string; use function round; -use function str_contains; use DOMDocument; use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; use SebastianBergmann\CodeCoverage\Node\File; use SebastianBergmann\CodeCoverage\Util\Filesystem; +use SebastianBergmann\CodeCoverage\Util\Xml; final class Crap4j { @@ -32,12 +30,14 @@ public function __construct(int $threshold = 30) } /** + * @param null|non-empty-string $target + * @param null|non-empty-string $name + * * @throws WriteOperationFailedException */ public function process(CodeCoverage $coverage, ?string $target = null, ?string $name = null): string { - $document = new DOMDocument('1.0', 'UTF-8'); - $document->formatOutput = true; + $document = new DOMDocument('1.0', 'UTF-8'); $root = $document->createElement('crap_result'); $document->appendChild($root); @@ -119,16 +119,10 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string $root->appendChild($stats); $root->appendChild($methodsNode); - $buffer = $document->saveXML(); + $buffer = Xml::asString($document); if ($target !== null) { - if (!str_contains($target, '://')) { - Filesystem::createDirectory(dirname($target)); - } - - if (@file_put_contents($target, $buffer) === false) { - throw new WriteOperationFailedException($target); - } + Filesystem::write($target, $buffer); } return $buffer; diff --git a/src/Report/PHP.php b/src/Report/PHP.php index f4f874a30..e02bd25cb 100644 --- a/src/Report/PHP.php +++ b/src/Report/PHP.php @@ -10,16 +10,18 @@ namespace SebastianBergmann\CodeCoverage\Report; use const PHP_EOL; -use function dirname; -use function file_put_contents; use function serialize; -use function str_contains; use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; use SebastianBergmann\CodeCoverage\Util\Filesystem; final class PHP { + /** + * @param null|non-empty-string $target + * + * @throws WriteOperationFailedException + */ public function process(CodeCoverage $coverage, ?string $target = null): string { $coverage->clearCache(); @@ -28,13 +30,7 @@ public function process(CodeCoverage $coverage, ?string $target = null): string return \unserialize(<<<'END_OF_COVERAGE_SERIALIZATION'" . PHP_EOL . serialize($coverage) . PHP_EOL . 'END_OF_COVERAGE_SERIALIZATION' . PHP_EOL . ');'; if ($target !== null) { - if (!str_contains($target, '://')) { - Filesystem::createDirectory(dirname($target)); - } - - if (@file_put_contents($target, $buffer) === false) { - throw new WriteOperationFailedException($target); - } + Filesystem::write($target, $buffer); } return $buffer; diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index 3264718cf..5c78dcebc 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -10,18 +10,13 @@ namespace SebastianBergmann\CodeCoverage\Report\Xml; use const DIRECTORY_SEPARATOR; -use const PHP_EOL; use function count; use function dirname; use function file_get_contents; -use function file_put_contents; use function is_array; use function is_dir; use function is_file; use function is_writable; -use function libxml_clear_errors; -use function libxml_get_errors; -use function libxml_use_internal_errors; use function sprintf; use function strlen; use function substr; @@ -33,7 +28,9 @@ use SebastianBergmann\CodeCoverage\Node\AbstractNode; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; use SebastianBergmann\CodeCoverage\Node\File as FileNode; +use SebastianBergmann\CodeCoverage\Util\Filesystem; use SebastianBergmann\CodeCoverage\Util\Filesystem as DirectoryUtil; +use SebastianBergmann\CodeCoverage\Util\Xml; use SebastianBergmann\CodeCoverage\Version; use SebastianBergmann\CodeCoverage\XmlException; use SebastianBergmann\Environment\Runtime; @@ -269,36 +266,8 @@ private function saveDocument(DOMDocument $document, string $name): void { $filename = sprintf('%s/%s.xml', $this->targetDirectory(), $name); - $document->formatOutput = true; - $document->preserveWhiteSpace = false; $this->initTargetDirectory(dirname($filename)); - file_put_contents($filename, $this->documentAsString($document)); - } - - /** - * @throws XmlException - * - * @see https://bugs.php.net/bug.php?id=79191 - */ - private function documentAsString(DOMDocument $document): string - { - $xmlErrorHandling = libxml_use_internal_errors(true); - $xml = $document->saveXML(); - - if ($xml === false) { - $message = 'Unable to generate the XML'; - - foreach (libxml_get_errors() as $error) { - $message .= PHP_EOL . $error->message; - } - - throw new XmlException($message); - } - - libxml_clear_errors(); - libxml_use_internal_errors($xmlErrorHandling); - - return $xml; + Filesystem::write($filename, Xml::asString($document)); } } diff --git a/src/Util/Filesystem.php b/src/Util/Filesystem.php index 0e99b1593..1c4aa3802 100644 --- a/src/Util/Filesystem.php +++ b/src/Util/Filesystem.php @@ -9,9 +9,13 @@ */ namespace SebastianBergmann\CodeCoverage\Util; +use function dirname; +use function file_put_contents; use function is_dir; use function mkdir; use function sprintf; +use function str_contains; +use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage @@ -34,4 +38,20 @@ public static function createDirectory(string $directory): void ); } } + + /** + * @param non-empty-string $target + * + * @throws WriteOperationFailedException + */ + public static function write(string $target, string $buffer): void + { + if (!str_contains($target, '://')) { + self::createDirectory(dirname($target)); + } + + if (@file_put_contents($target, $buffer) === false) { + throw new WriteOperationFailedException($target); + } + } } diff --git a/src/Util/Xml.php b/src/Util/Xml.php new file mode 100644 index 000000000..de958a4b2 --- /dev/null +++ b/src/Util/Xml.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Util; + +use const PHP_EOL; +use function libxml_clear_errors; +use function libxml_get_errors; +use function libxml_use_internal_errors; +use DOMDocument; +use SebastianBergmann\CodeCoverage\XmlException; + +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ +final readonly class Xml +{ + /** + * @throws XmlException + * + * @see https://bugs.php.net/bug.php?id=79191 + */ + public static function asString(DOMDocument $document): string + { + $xmlErrorHandling = libxml_use_internal_errors(true); + + $document->formatOutput = true; + $document->preserveWhiteSpace = false; + + $buffer = $document->saveXML(); + + if ($buffer === false) { + $message = 'Unable to generate the XML'; + + foreach (libxml_get_errors() as $error) { + $message .= PHP_EOL . $error->message; + } + + throw new XmlException($message); + } + + libxml_clear_errors(); + libxml_use_internal_errors($xmlErrorHandling); + + return $buffer; + } +} From da3b6149d7370499e24d5e1d3fc517515cb31223 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Thu, 11 Sep 2025 07:57:08 +0200 Subject: [PATCH 027/106] Use Xml::asString() and Filesystem::write() --- src/Report/OpenClover.php | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/Report/OpenClover.php b/src/Report/OpenClover.php index 042132b33..65d409b1c 100644 --- a/src/Report/OpenClover.php +++ b/src/Report/OpenClover.php @@ -12,13 +12,10 @@ use function assert; use function basename; use function count; -use function dirname; -use function file_put_contents; use function is_string; use function ksort; use function max; use function range; -use function str_contains; use function str_replace; use function time; use DOMDocument; @@ -26,6 +23,7 @@ use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Node\File; use SebastianBergmann\CodeCoverage\Util\Filesystem; +use SebastianBergmann\CodeCoverage\Util\Xml; use SebastianBergmann\CodeCoverage\Version; use SebastianBergmann\CodeCoverage\WriteOperationFailedException; @@ -240,16 +238,10 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string $xmlMetrics->setAttribute('coveredmethods', (string) $report->numberOfTestedMethods()); $xmlProject->insertBefore($xmlMetrics, $xmlProject->firstChild); - $buffer = $xmlDocument->saveXML(); + $buffer = Xml::asString($xmlDocument); if ($target !== null) { - if (!str_contains($target, '://')) { - Filesystem::createDirectory(dirname($target)); - } - - if (@file_put_contents($target, $buffer) === false) { - throw new WriteOperationFailedException($target); - } + Filesystem::write($target, $buffer); } return $buffer; From cd268c6055667e5efbf7df18e0553657858551a4 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Thu, 11 Sep 2025 08:09:46 +0200 Subject: [PATCH 028/106] Narrow types --- tests/tests/Target/MapBuilderTest.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/tests/Target/MapBuilderTest.php b/tests/tests/Target/MapBuilderTest.php index 0c03682b4..49c1c0ed6 100644 --- a/tests/tests/Target/MapBuilderTest.php +++ b/tests/tests/Target/MapBuilderTest.php @@ -418,6 +418,10 @@ public static function provider(): array ]; } + /** + * @param TargetMap $expected, + * @param non-empty-list $files + */ #[DataProvider('provider')] public function testBuildsMap(array $expected, array $files): void { From f57a7778c5b9ecb6dd5bad694d08a4eb3ecacf5a Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 17 Sep 2025 13:30:00 +0200 Subject: [PATCH 029/106] Closes #1094 --- ChangeLog-12.3.md | 3 +++ src/Report/Html/Facade.php | 13 +++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md index 55c140d85..cead127ea 100644 --- a/ChangeLog-12.3.md +++ b/ChangeLog-12.3.md @@ -4,7 +4,10 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt ## [12.3.8] - 2025-MM-DD +### Fixed + * [#1092](https://github.com/sebastianbergmann/php-code-coverage/issues/1092): Error in `DOMDocument::saveXML()` is not handled +* [#1094](https://github.com/sebastianbergmann/php-code-coverage/issues/1094): No branch and path coverage in HTML report ## [12.3.7] - 2025-09-10 diff --git a/src/Report/Html/Facade.php b/src/Report/Html/Facade.php index 0e8b230aa..44c63c923 100644 --- a/src/Report/Html/Facade.php +++ b/src/Report/Html/Facade.php @@ -41,16 +41,17 @@ public function __construct(string $generator = '', ?Colors $colors = null, ?Thr public function process(CodeCoverage $coverage, string $target): void { - $target = $this->directory($target); - $report = $coverage->getReport(); - $date = date('D M j G:i:s T Y'); + $target = $this->directory($target); + $report = $coverage->getReport(); + $date = date('D M j G:i:s T Y'); + $hasBranchCoverage = $coverage->getData(true)->functionCoverage() !== []; $dashboard = new Dashboard( $this->templatePath, $this->generator, $date, $this->thresholds, - $coverage->collectsBranchAndPathCoverage(), + $hasBranchCoverage, ); $directory = new Directory( @@ -58,7 +59,7 @@ public function process(CodeCoverage $coverage, string $target): void $this->generator, $date, $this->thresholds, - $coverage->collectsBranchAndPathCoverage(), + $hasBranchCoverage, ); $file = new File( @@ -66,7 +67,7 @@ public function process(CodeCoverage $coverage, string $target): void $this->generator, $date, $this->thresholds, - $coverage->collectsBranchAndPathCoverage(), + $hasBranchCoverage, ); $directory->render($report, $target . 'index.html'); From 99e692c6a84708211f7536ba322bbbaef57ac7fc Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 17 Sep 2025 13:31:43 +0200 Subject: [PATCH 030/106] Prepare release --- ChangeLog-12.3.md | 4 ++-- src/Version.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md index cead127ea..9375e8b23 100644 --- a/ChangeLog-12.3.md +++ b/ChangeLog-12.3.md @@ -2,7 +2,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. -## [12.3.8] - 2025-MM-DD +## [12.3.8] - 2025-09-17 ### Fixed @@ -63,7 +63,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1080](https://github.com/sebastianbergmann/php-code-coverage/pull/1080): Support for reporting code coverage information in OpenClover XML format; unlike the existing Clover XML reporter, which remains unchanged, the XML documents generated by this new reporter validate against the OpenClover project's XML schema definition, with one exception: we do not generate the `` element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility. -[12.3.8]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.7...main +[12.3.8]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.7...12.3.8 [12.3.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.6...12.3.7 [12.3.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.5...12.3.6 [12.3.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.4...12.3.5 diff --git a/src/Version.php b/src/Version.php index 8562c54cf..8edfe98b0 100644 --- a/src/Version.php +++ b/src/Version.php @@ -19,7 +19,7 @@ final class Version public static function id(): string { if (self::$version === '') { - self::$version = (new VersionId('12.3.7', dirname(__DIR__)))->asString(); + self::$version = (new VersionId('12.3.8', dirname(__DIR__)))->asString(); } return self::$version; From b711a01b57ef32a0604d0810e0ad7fd59c67e46b Mon Sep 17 00:00:00 2001 From: Emanuele Panzeri Date: Tue, 23 Sep 2025 16:41:44 +0200 Subject: [PATCH 031/106] Implement dark/light theme color variables in CSS This is leveraging the light-dark() CSS function to implement an auto dark/light theme selection. See reference on: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/light-dark More details on: https://lyra.horse/blog/2025/08/you-dont-need-js/ --- .../Html/Renderer/Template/css/style.css | 78 ++++++++++++++++--- 1 file changed, 68 insertions(+), 10 deletions(-) diff --git a/src/Report/Html/Renderer/Template/css/style.css b/src/Report/Html/Renderer/Template/css/style.css index c0a045889..4d46b38c0 100644 --- a/src/Report/Html/Renderer/Template/css/style.css +++ b/src/Report/Html/Renderer/Template/css/style.css @@ -1,13 +1,71 @@ + :root { - --phpunit-breadcrumbs: var(--bs-gray-200); - --phpunit-success-bar: #28a745; - --phpunit-success-high: {{success-high}}; - --phpunit-success-medium: {{success-medium}}; - --phpunit-success-low: {{success-low}}; - --phpunit-warning: {{warning}}; - --phpunit-warning-bar: #ffc107; - --phpunit-danger: {{danger}}; - --phpunit-danger-bar: #dc3545; + /* Implementing an auto-selection of dark/light theme via: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/light-dark */ + color-scheme: light dark; + + /* PHPUnit ligh/dark colors */ + --phpunit-breadcrumbs: light-dark(var(--bs-gray-200), var(--bs-gray-800)); + --phpunit-success-bar: light-dark(#28a745 ,#1f8135); + --phpunit-success-high: light-dark(#99cb84, #3d5c4e); + --phpunit-success-medium: light-dark(#c3e3b5,#3c6051); + --phpunit-success-low: light-dark(#dff0d8, #2d4431); + --phpunit-warning: light-dark(#fcf8e3, #3e3408); + --phpunit-warning-bar: light-dark(#ffc107 ,#c19406); + --phpunit-danger: light-dark(#f2dede, #42221e); + --phpunit-danger-bar: light-dark(#dc3545, #a62633); + + /* Bootstrap v5.3 default colors (ligth, dark) */ + --bs-body-bg-rgb: light-dark((255, 255, 255), (33, 37, 41)); + --bs-body-bg: light-dark(#fff, #212529); + --bs-body-color-rgb: light-dark(33, 37, 41, 222, 226, 230); + --bs-body-color: light-dark(#212529, #dee2e6); + --bs-border-color-translucent: light-dark(rgba(0, 0, 0, 0.175), rgba(255, 255, 255, 0.15)); + --bs-border-color: light-dark(#dee2e6, #495057); + --bs-code-color: light-dark(#d63384, #e685b5); + --bs-danger-bg-subtle: light-dark(#f8d7da, #2c0b0e); + --bs-danger-border-subtle: light-dark(#f1aeb5, #842029); + --bs-danger-text-emphasis: light-dark(#58151c, #ea868f); + --bs-dark-bg-subtle: light-dark(#ced4da, #1a1d20); + --bs-dark-border-subtle: light-dark(#adb5bd, #343a40); + --bs-dark-text-emphasis: light-dark(#495057, #dee2e6); + --bs-emphasis-color-rgb: light-dark((0, 0, 0), (255, 255, 255)); + --bs-emphasis-color: light-dark(#000, #fff); + --bs-form-invalid-border-color: light-dark(#dc3545, #ea868f); + --bs-form-invalid-color: light-dark(#dc3545, #ea868f); + --bs-form-valid-border-color: light-dark(#198754, #75b798); + --bs-form-valid-color: light-dark(#198754, #75b798); + --bs-highlight-bg: light-dark(#fff3cd, #664d03); + --bs-highlight-color: light-dark(#212529, #dee2e6); + --bs-info-bg-subtle: light-dark(#cff4fc, #032830); + --bs-info-border-subtle: light-dark(#9eeaf9, #087990); + --bs-info-text-emphasis: light-dark(#055160, #6edff6); + --bs-light-bg-subtle: light-dark(#fcfcfd, #343a40); + --bs-light-border-subtle: light-dark(#e9ecef, #495057); + --bs-light-text-emphasis: light-dark(#495057, #f8f9fa); + --bs-link-color-rgb: light-dark((13, 110, 253), (110, 168, 254)); + --bs-link-color: light-dark(#0d6efd, #6ea8fe); + --bs-link-hover-color-rgb: light-dark((10, 88, 202), (139, 185, 254)); + --bs-link-hover-color: light-dark(#0a58ca, #8bb9fe); + --bs-primary-bg-subtle: light-dark(#cfe2ff, #031633); + --bs-primary-border-subtle: light-dark(#9ec5fe, #084298); + --bs-primary-text-emphasis: light-dark(#052c65, #6ea8fe); + --bs-secondary-bg-rgb: light-dark((233, 236, 239), (52, 58, 64)); + --bs-secondary-bg-subtle: light-dark(#e2e3e5, #161719); + --bs-secondary-bg: light-dark(#e9ecef, #343a40); + --bs-secondary-border-subtle: light-dark(#c4c8cb, #41464b); + --bs-secondary-color-rgb: light-dark((33, 37, 41), (222, 226, 230)); + --bs-secondary-color: light-dark(rgba(33, 37, 41, 0.75), rgba(222, 226, 230, 0.75)); + --bs-secondary-text-emphasis: light-dark(#2b2f32, #a7acb1); + --bs-success-bg-subtle: light-dark(#d1e7dd, #051b11); + --bs-success-border-subtle: light-dark(#a3cfbb, #0f5132); + --bs-success-text-emphasis: light-dark(#0a3622, #75b798); + --bs-tertiary-bg-rgb: light-dark(248, 249, 250, 43, 48, 53); + --bs-tertiary-bg: light-dark(#f8f9fa, #2b3035); + --bs-tertiary-color-rgb: light-dark((33, 37, 41), (222, 226, 230)); + --bs-tertiary-color: light-dark(rgba(33, 37, 41, 0.5), rgba(222, 226, 230, 0.5)); + --bs-warning-bg-subtle: light-dark(#fff3cd, #332701); + --bs-warning-border-subtle: light-dark(#ffe69c, #997404); + --bs-warning-text-emphasis: light-dark(#664d03, #ffda6a); } body { @@ -198,4 +256,4 @@ table#code td:first-of-type a { .progress-bar.bg-danger { background-color: var(--phpunit-danger-bar) !important; -} \ No newline at end of file +} From 46724dffa72720da27523b380ecd293a7aed1539 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 24 Sep 2025 08:43:40 +0200 Subject: [PATCH 032/106] Bump --- .github/workflows/ci.yml | 2 +- ChangeLog-12.3.md | 74 ---------------------------------------- ChangeLog-12.4.md | 11 ++++++ composer.json | 2 +- 4 files changed, 13 insertions(+), 76 deletions(-) delete mode 100644 ChangeLog-12.3.md create mode 100644 ChangeLog-12.4.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2f9c008d6..bdb36953a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ on: name: CI env: - COMPOSER_ROOT_VERSION: 12.3.x-dev + COMPOSER_ROOT_VERSION: 12.4.x-dev jobs: coding-guidelines: diff --git a/ChangeLog-12.3.md b/ChangeLog-12.3.md deleted file mode 100644 index 9375e8b23..000000000 --- a/ChangeLog-12.3.md +++ /dev/null @@ -1,74 +0,0 @@ -# ChangeLog - -All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [12.3.8] - 2025-09-17 - -### Fixed - -* [#1092](https://github.com/sebastianbergmann/php-code-coverage/issues/1092): Error in `DOMDocument::saveXML()` is not handled -* [#1094](https://github.com/sebastianbergmann/php-code-coverage/issues/1094): No branch and path coverage in HTML report - -## [12.3.7] - 2025-09-10 - -### Changed - -* Do not use `__sleep()` method (which will be deprecated in PHP 8.5) - -## [12.3.6] - 2025-09-02 - -### Fixed - -* [#1091](https://github.com/sebastianbergmann/php-code-coverage/issues/1091): HTML report renderer uses code coverage driver - -## [12.3.5] - 2025-09-01 - -### Changed - -* [#1090](https://github.com/sebastianbergmann/php-code-coverage/issues/1090): Only export properties for configuration, code coverage data, and test results when serializing `CodeCoverage` - -## [12.3.4] - 2025-08-29 - -### Changed - -* Improved performance of `MapBuilder::build()` - -## [12.3.3] - 2025-08-27 - -### Changed - -* [#1085](https://github.com/sebastianbergmann/php-code-coverage/pull/1085): Improve performance by skipping empty lines after filter has been applied - -## [12.3.2] - 2025-07-29 - -### Changed - -* Add coverage and complexity columns to class and method complexity tables -* Add CRAP to graph tooltip - -### Fixed - -* [#1081](https://github.com/sebastianbergmann/php-code-coverage/issues/1081): Class complexity scatter chart tooltips show incorrect class - -## [12.3.1] - 2025-06-18 - -### Changed - -* Changed CSS for HTML report to not use common ligatures as this sometimes lead to hard-to-read code -* Updated Bootstrap to version 5.3.6 for HTML report - -## [12.3.0] - 2025-05-23 - -### Changed - -* [#1080](https://github.com/sebastianbergmann/php-code-coverage/pull/1080): Support for reporting code coverage information in OpenClover XML format; unlike the existing Clover XML reporter, which remains unchanged, the XML documents generated by this new reporter validate against the OpenClover project's XML schema definition, with one exception: we do not generate the `` element. This feature is experimental and the generated XML might change in order to improve compliance with the OpenClover project's XML schema definition further. Such changes will be made in bugfix and/or minor releases even if they break backward compatibility. - -[12.3.8]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.7...12.3.8 -[12.3.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.6...12.3.7 -[12.3.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.5...12.3.6 -[12.3.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.4...12.3.5 -[12.3.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.3...12.3.4 -[12.3.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.2...12.3.3 -[12.3.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.1...12.3.2 -[12.3.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.0...12.3.1 -[12.3.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.2.1...12.3.0 diff --git a/ChangeLog-12.4.md b/ChangeLog-12.4.md new file mode 100644 index 000000000..02df9eff8 --- /dev/null +++ b/ChangeLog-12.4.md @@ -0,0 +1,11 @@ +# ChangeLog + +All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [12.4.0] - 2025-MM-DD + +### Added + +* [#1095](https://github.com/sebastianbergmann/php-code-coverage/pull/1095): Support for light/dark mode in HTML report + +[12.4.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.8...main diff --git a/composer.json b/composer.json index 7103e961d..744507de0 100644 --- a/composer.json +++ b/composer.json @@ -61,7 +61,7 @@ }, "extra": { "branch-alias": { - "dev-main": "12.3.x-dev" + "dev-main": "12.4.x-dev" } } } From 7f8d130544abad528f2df1b5a0ebfa9d9451bd8e Mon Sep 17 00:00:00 2001 From: Emanuele Panzeri Date: Wed, 24 Sep 2025 10:04:49 +0200 Subject: [PATCH 033/106] Improve icons readability on dark-mode Improve readability of icons when dark-mode is active. --- src/Report/Html/Renderer/Template/css/style.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Report/Html/Renderer/Template/css/style.css b/src/Report/Html/Renderer/Template/css/style.css index 4d46b38c0..c8a4cf7f4 100644 --- a/src/Report/Html/Renderer/Template/css/style.css +++ b/src/Report/Html/Renderer/Template/css/style.css @@ -68,6 +68,11 @@ --bs-warning-text-emphasis: light-dark(#664d03, #ffda6a); } +@media (prefers-color-scheme: dark) { + /* Invert icon's colors on dark mode to improve readability */ + img.octicon { filter: invert(1); } +} + body { font-family: sans-serif; font-size: 1em; From 67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 24 Sep 2025 15:44:41 +0200 Subject: [PATCH 034/106] Prepare release --- ChangeLog-12.4.md | 2 +- src/Version.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog-12.4.md b/ChangeLog-12.4.md index 02df9eff8..8ff3a6e1e 100644 --- a/ChangeLog-12.4.md +++ b/ChangeLog-12.4.md @@ -2,7 +2,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. -## [12.4.0] - 2025-MM-DD +## [12.4.0] - 2025-09-24 ### Added diff --git a/src/Version.php b/src/Version.php index 8edfe98b0..a52b872a3 100644 --- a/src/Version.php +++ b/src/Version.php @@ -19,7 +19,7 @@ final class Version public static function id(): string { if (self::$version === '') { - self::$version = (new VersionId('12.3.8', dirname(__DIR__)))->asString(); + self::$version = (new VersionId('12.4.0', dirname(__DIR__)))->asString(); } return self::$version; From 65e0f73a140f1dfc22519d53d5370076da091939 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Thu, 25 Sep 2025 15:29:20 +0200 Subject: [PATCH 035/106] Fix typos --- src/Report/Html/Renderer/Template/css/style.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Report/Html/Renderer/Template/css/style.css b/src/Report/Html/Renderer/Template/css/style.css index c8a4cf7f4..e2f451c4f 100644 --- a/src/Report/Html/Renderer/Template/css/style.css +++ b/src/Report/Html/Renderer/Template/css/style.css @@ -3,7 +3,7 @@ /* Implementing an auto-selection of dark/light theme via: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/light-dark */ color-scheme: light dark; - /* PHPUnit ligh/dark colors */ + /* PHPUnit light/dark colors */ --phpunit-breadcrumbs: light-dark(var(--bs-gray-200), var(--bs-gray-800)); --phpunit-success-bar: light-dark(#28a745 ,#1f8135); --phpunit-success-high: light-dark(#99cb84, #3d5c4e); @@ -14,7 +14,7 @@ --phpunit-danger: light-dark(#f2dede, #42221e); --phpunit-danger-bar: light-dark(#dc3545, #a62633); - /* Bootstrap v5.3 default colors (ligth, dark) */ + /* Bootstrap v5.3 default colors (light, dark) */ --bs-body-bg-rgb: light-dark((255, 255, 255), (33, 37, 41)); --bs-body-bg: light-dark(#fff, #212529); --bs-body-color-rgb: light-dark(33, 37, 41, 222, 226, 230); From b129b36a3fc9115e5552f546ef92ea15e6db0195 Mon Sep 17 00:00:00 2001 From: Valentin Kunz Date: Thu, 25 Sep 2025 11:42:09 +0200 Subject: [PATCH 036/106] report/html/styles: fix link colours Bootstrap uses --*-rgb style vars to construct colours via css functions, like rgba(). The light-dark() css function only handles colours, it does not work with rgb tuples as arguments. Instead of using light-dark(), define all --*-rgb vars within media queries. Signed-off-by: Valentin Kunz --- .../Html/Renderer/Template/css/style.css | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/Report/Html/Renderer/Template/css/style.css b/src/Report/Html/Renderer/Template/css/style.css index e2f451c4f..4303bf844 100644 --- a/src/Report/Html/Renderer/Template/css/style.css +++ b/src/Report/Html/Renderer/Template/css/style.css @@ -2,7 +2,7 @@ :root { /* Implementing an auto-selection of dark/light theme via: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/light-dark */ color-scheme: light dark; - + /* PHPUnit light/dark colors */ --phpunit-breadcrumbs: light-dark(var(--bs-gray-200), var(--bs-gray-800)); --phpunit-success-bar: light-dark(#28a745 ,#1f8135); @@ -15,7 +15,7 @@ --phpunit-danger-bar: light-dark(#dc3545, #a62633); /* Bootstrap v5.3 default colors (light, dark) */ - --bs-body-bg-rgb: light-dark((255, 255, 255), (33, 37, 41)); + --bs-body-bg-rgb: 255, 255, 255; --bs-body-bg: light-dark(#fff, #212529); --bs-body-color-rgb: light-dark(33, 37, 41, 222, 226, 230); --bs-body-color: light-dark(#212529, #dee2e6); @@ -28,7 +28,7 @@ --bs-dark-bg-subtle: light-dark(#ced4da, #1a1d20); --bs-dark-border-subtle: light-dark(#adb5bd, #343a40); --bs-dark-text-emphasis: light-dark(#495057, #dee2e6); - --bs-emphasis-color-rgb: light-dark((0, 0, 0), (255, 255, 255)); + --bs-emphasis-color-rgb: 0, 0, 0; --bs-emphasis-color: light-dark(#000, #fff); --bs-form-invalid-border-color: light-dark(#dc3545, #ea868f); --bs-form-invalid-color: light-dark(#dc3545, #ea868f); @@ -42,18 +42,18 @@ --bs-light-bg-subtle: light-dark(#fcfcfd, #343a40); --bs-light-border-subtle: light-dark(#e9ecef, #495057); --bs-light-text-emphasis: light-dark(#495057, #f8f9fa); - --bs-link-color-rgb: light-dark((13, 110, 253), (110, 168, 254)); + --bs-link-color-rgb: 13, 110, 253; --bs-link-color: light-dark(#0d6efd, #6ea8fe); - --bs-link-hover-color-rgb: light-dark((10, 88, 202), (139, 185, 254)); + --bs-link-hover-color-rgb: 10, 88, 202; --bs-link-hover-color: light-dark(#0a58ca, #8bb9fe); --bs-primary-bg-subtle: light-dark(#cfe2ff, #031633); --bs-primary-border-subtle: light-dark(#9ec5fe, #084298); --bs-primary-text-emphasis: light-dark(#052c65, #6ea8fe); - --bs-secondary-bg-rgb: light-dark((233, 236, 239), (52, 58, 64)); + --bs-secondary-bg-rgb: 233, 236, 239; --bs-secondary-bg-subtle: light-dark(#e2e3e5, #161719); --bs-secondary-bg: light-dark(#e9ecef, #343a40); --bs-secondary-border-subtle: light-dark(#c4c8cb, #41464b); - --bs-secondary-color-rgb: light-dark((33, 37, 41), (222, 226, 230)); + --bs-secondary-color-rgb: 33, 37, 41; --bs-secondary-color: light-dark(rgba(33, 37, 41, 0.75), rgba(222, 226, 230, 0.75)); --bs-secondary-text-emphasis: light-dark(#2b2f32, #a7acb1); --bs-success-bg-subtle: light-dark(#d1e7dd, #051b11); @@ -61,7 +61,7 @@ --bs-success-text-emphasis: light-dark(#0a3622, #75b798); --bs-tertiary-bg-rgb: light-dark(248, 249, 250, 43, 48, 53); --bs-tertiary-bg: light-dark(#f8f9fa, #2b3035); - --bs-tertiary-color-rgb: light-dark((33, 37, 41), (222, 226, 230)); + --bs-tertiary-color-rgb: 33, 37, 41; --bs-tertiary-color: light-dark(rgba(33, 37, 41, 0.5), rgba(222, 226, 230, 0.5)); --bs-warning-bg-subtle: light-dark(#fff3cd, #332701); --bs-warning-border-subtle: light-dark(#ffe69c, #997404); @@ -69,6 +69,16 @@ } @media (prefers-color-scheme: dark) { + :root { + --bs-body-bg-rgb: 33, 37, 41; + --bs-emphasis-color-rgb: 255, 255, 255; + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-secondary-bg-rgb: 52, 58, 64; + --bs-secondary-color-rgb: 222, 226, 230; + --bs-tertiary-color-rgb: 222, 226, 230; + } + /* Invert icon's colors on dark mode to improve readability */ img.octicon { filter: invert(1); } } From fb262c7d419b4749567aaadc358c2c47fa6c61a6 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 26 Sep 2025 14:45:56 +0200 Subject: [PATCH 037/106] Update tools --- .phive/phars.xml | 4 ++-- tools/composer | Bin 3060478 -> 3125332 bytes tools/php-cs-fixer | Bin 3248666 -> 3468049 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.phive/phars.xml b/.phive/phars.xml index da39c81e8..5735ca8de 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -1,6 +1,6 @@ - + - + diff --git a/tools/composer b/tools/composer index 4fa5122674b5547ffb636d45baf8677227f4eef6..7f8a37dc21291018140af80a724d879f6b598559 100755 GIT binary patch delta 80989 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�GovK%S9?1Y3EyxawkXMB9fjnNT{3{vZE!! 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 eF}>WjlF>4R+U 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

_< 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 From 16db030131b0c655e207f8fb4160463ecbec2d99 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 26 Sep 2025 14:46:58 +0200 Subject: [PATCH 038/106] Remove superfluous double-quotes --- .github/workflows/ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5db89ba35..c661729f9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ on: name: CI env: - COMPOSER_ROOT_VERSION: "10.1.x-dev" + COMPOSER_ROOT_VERSION: 10.1.x-dev jobs: coding-guidelines: @@ -70,14 +70,14 @@ jobs: - windows-latest php-version: - - "8.1" - - "8.2" - - "8.3" - - "8.4" + - 8.1 + - 8.2 + - 8.3 + - 8.4 coverage-driver: - - "pcov" - - "xdebug3" + - pcov + - xdebug3 steps: - name: Configure Git to avoid issues with line endings From e73e258d4ea058507476821fae45be2fcb7e5c45 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 26 Sep 2025 14:47:37 +0200 Subject: [PATCH 039/106] Test with PHP 8.5 --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c661729f9..071d53ce3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,6 +74,7 @@ jobs: - 8.2 - 8.3 - 8.4 + - 8.5 coverage-driver: - pcov From 5a48b9090d904b8e5942012381b34dd6a9ebc4a8 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 26 Sep 2025 14:48:51 +0200 Subject: [PATCH 040/106] Introduce PHP_VERSION variable --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 071d53ce3..04c8c1649 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,6 +8,7 @@ name: CI env: COMPOSER_ROOT_VERSION: 10.1.x-dev + PHP_VERSION: 8.4 jobs: coding-guidelines: @@ -22,7 +23,7 @@ jobs: - name: Install PHP uses: shivammathur/setup-php@v2 with: - php-version: 8.3 + php-version: ${{ env.PHP_VERSION }} extensions: none, iconv, json, phar, tokenizer coverage: none tools: none From 8394b22decbd9019517011ed77ca9af9cce4dc59 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 26 Sep 2025 14:49:46 +0200 Subject: [PATCH 041/106] Do not fetch tags --- .github/workflows/ci.yml | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 04c8c1649..f597e2c6d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,18 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 + with: + fetch-depth: 1 + ref: ${{ github.event.pull_request.head.sha || github.sha }} + + - name: Use local branch + shell: bash + run: | + BRANCH=$([ "${{ github.event_name }}" == "pull_request" ] && echo "${{ github.head_ref }}" || echo "${{ github.ref_name }}") + git branch -D $BRANCH 2>/dev/null || true + git branch $BRANCH HEAD + git checkout $BRANCH - name: Install PHP uses: shivammathur/setup-php@v2 @@ -38,7 +49,18 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 + with: + fetch-depth: 1 + ref: ${{ github.event.pull_request.head.sha || github.sha }} + + - name: Use local branch + shell: bash + run: | + BRANCH=$([ "${{ github.event_name }}" == "pull_request" ] && echo "${{ github.head_ref }}" || echo "${{ github.ref_name }}") + git branch -D $BRANCH 2>/dev/null || true + git branch $BRANCH HEAD + git checkout $BRANCH - name: Install PHP uses: shivammathur/setup-php@v2 @@ -87,7 +109,18 @@ jobs: run: git config --global core.autocrlf false - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 + with: + fetch-depth: 1 + ref: ${{ github.event.pull_request.head.sha || github.sha }} + + - name: Use local branch + shell: bash + run: | + BRANCH=$([ "${{ github.event_name }}" == "pull_request" ] && echo "${{ github.head_ref }}" || echo "${{ github.ref_name }}") + git branch -D $BRANCH 2>/dev/null || true + git branch $BRANCH HEAD + git checkout $BRANCH - name: Install PHP with extensions uses: shivammathur/setup-php@v2 From eedaa99045bd0aeb552841b3b12079a23ee5ea06 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 26 Sep 2025 14:52:23 +0200 Subject: [PATCH 042/106] Cache Composer's cache directory --- .github/workflows/ci.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f597e2c6d..1cc3fe31c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,6 +70,19 @@ jobs: coverage: none tools: none + - name: Get Composer cache directory + id: composer-cache + shell: bash + run: | + echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" + + - name: Cache Composer cache directory + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + - name: Update dependencies with composer run: ./tools/composer update --no-interaction --no-ansi --no-progress @@ -131,6 +144,19 @@ jobs: ini-values: ${{ env.PHP_INI_VALUES }} tools: none + - name: Get Composer cache directory + id: composer-cache + shell: bash + run: | + echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" + + - name: Cache Composer cache directory + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + - name: Install dependencies with Composer run: php ./tools/composer update --no-ansi --no-interaction --no-progress From 084db8a9091d709dad93a7730e9efe57ad6969d2 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 26 Sep 2025 14:53:40 +0200 Subject: [PATCH 043/106] Also upload test results to codecov.io --- .github/workflows/ci.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1cc3fe31c..165cfd133 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -161,9 +161,19 @@ jobs: run: php ./tools/composer update --no-ansi --no-interaction --no-progress - name: Run tests with PHPUnit - run: vendor/bin/phpunit --coverage-clover=coverage.xml + run: vendor/bin/phpunit --log-junit test-results.xml --coverage-clover=code-coverage.xml - - name: Send code coverage report to Codecov.io + - name: Upload test results to Codecov.io + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} + disable_search: true + files: ./test-results.xml + + - name: Upload code coverage data to Codecov.io uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} + disable_search: true + files: ./code-coverage.xml From ba70759fec4d74412f9854a5c613a5af3e4032d3 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 5 Nov 2025 12:44:20 +0100 Subject: [PATCH 044/106] Faster coverage-xml report --- src/Report/Xml/Coverage.php | 42 +++++++++++++------------------------ src/Report/Xml/Facade.php | 7 +------ 2 files changed, 15 insertions(+), 34 deletions(-) diff --git a/src/Report/Xml/Coverage.php b/src/Report/Xml/Coverage.php index afb70a069..812672081 100644 --- a/src/Report/Xml/Coverage.php +++ b/src/Report/Xml/Coverage.php @@ -10,7 +10,6 @@ namespace SebastianBergmann\CodeCoverage\Report\Xml; use DOMElement; -use SebastianBergmann\CodeCoverage\ReportAlreadyFinalizedException; use XMLWriter; /** @@ -18,48 +17,35 @@ */ final class Coverage { - private readonly XMLWriter $writer; private readonly DOMElement $contextNode; - private bool $finalized = false; + private readonly string $line; public function __construct(DOMElement $context, string $line) { $this->contextNode = $context; - - $this->writer = new XMLWriter; - $this->writer->openMemory(); - $this->writer->startElementNs(null, $context->nodeName, 'https://schema.phpunit.de/coverage/1.0'); - $this->writer->writeAttribute('nr', $line); + $this->line = $line; } - /** - * @throws ReportAlreadyFinalizedException - */ - public function addTest(string $test): void + public function finalize(array $tests): void { - if ($this->finalized) { - // @codeCoverageIgnoreStart - throw new ReportAlreadyFinalizedException; - // @codeCoverageIgnoreEnd + $writer = new XMLWriter; + $writer->openMemory(); + $writer->startElementNs(null, $this->contextNode->nodeName, 'https://schema.phpunit.de/coverage/1.0'); + $writer->writeAttribute('nr', $this->line); + + foreach ($tests as $test) { + $writer->startElement('covered'); + $writer->writeAttribute('by', $test); + $writer->endElement(); } - - $this->writer->startElement('covered'); - $this->writer->writeAttribute('by', $test); - $this->writer->endElement(); - } - - public function finalize(): void - { - $this->writer->endElement(); + $writer->endElement(); $fragment = $this->contextNode->ownerDocument->createDocumentFragment(); - $fragment->appendXML($this->writer->outputMemory()); + $fragment->appendXML($writer->outputMemory()); $this->contextNode->parentNode->replaceChild( $fragment, $this->contextNode, ); - - $this->finalized = true; } } diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index ba008f2ff..30c35e269 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -165,12 +165,7 @@ private function processFile(FileNode $file, Directory $context): void } $coverage = $fileReport->lineCoverage((string) $line); - - foreach ($tests as $test) { - $coverage->addTest($test); - } - - $coverage->finalize(); + $coverage->finalize($tests); } $fileReport->source()->setSourceCode( From 96939c7a3dbd1ae0a5c40dcc16f15289869f4b99 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Sat, 8 Nov 2025 13:23:47 +0100 Subject: [PATCH 045/106] Update tools --- .phive/phars.xml | 6 +++--- tools/composer | Bin 3125332 -> 3247733 bytes tools/php-cs-fixer | Bin 3468049 -> 3478210 bytes tools/phpstan | Bin 25370492 -> 25414301 bytes 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.phive/phars.xml b/.phive/phars.xml index 0b3478ad5..939d4b7a7 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -1,6 +1,6 @@ - - - + + + diff --git a/tools/composer b/tools/composer index 7f8a37dc21291018140af80a724d879f6b598559..f58976cb6952e153fde9252f67493e31a4ad1615 100755 GIT binary patch delta 81768 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 delta 20299 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 F{~zeT=xhK0 diff --git a/tools/php-cs-fixer b/tools/php-cs-fixer index e5b2c208643a12907c62c2c3fbdab3cacef33f08..997a14782e1522a1afbf099d257a5b02892a5972 100755 GIT binary patch delta 24270 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 delta 17888 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 diff --git a/tools/phpstan b/tools/phpstan index f0a9cc3ee7f641a72ac022c6357e52e48bd93047..7462c8537619e4a87690cb1e7e9fbb40fdec2478 100755 GIT binary patch delta 121746 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

4A#bkrZef(u2Ah-?J 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 e?^k>OlG*i@ZAX?LtT;?dT>tc^KPARbkN Date: Sat, 8 Nov 2025 13:16:53 +0100 Subject: [PATCH 046/106] Fix FunctionCoverageDataType --- src/Data/ProcessedCodeCoverageData.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Data/ProcessedCodeCoverageData.php b/src/Data/ProcessedCodeCoverageData.php index 57ccbb166..976aaab38 100644 --- a/src/Data/ProcessedCodeCoverageData.php +++ b/src/Data/ProcessedCodeCoverageData.php @@ -38,8 +38,7 @@ * paths: array, * hit: list, - * }>, - * hit: list + * }> * } * @phpstan-type FunctionCoverageType array> */ From fd180b8ec3d8377bf42b3c5a8c16337be5401a80 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 8 Nov 2025 13:56:01 +0100 Subject: [PATCH 047/106] Narrow types --- src/Data/ProcessedCodeCoverageData.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Data/ProcessedCodeCoverageData.php b/src/Data/ProcessedCodeCoverageData.php index 976aaab38..f08507ac4 100644 --- a/src/Data/ProcessedCodeCoverageData.php +++ b/src/Data/ProcessedCodeCoverageData.php @@ -123,11 +123,17 @@ public function lineCoverage(): array return $this->lineCoverage; } + /** + * @param FunctionCoverageType $functionCoverage + */ public function setFunctionCoverage(array $functionCoverage): void { $this->functionCoverage = $functionCoverage; } + /** + * @return FunctionCoverageType + */ public function functionCoverage(): array { ksort($this->functionCoverage); From 64e2dbf2803b1395dd0c0311287c4b091e3915c4 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 8 Nov 2025 13:57:18 +0100 Subject: [PATCH 048/106] Narrow line-coverage types --- src/Data/ProcessedCodeCoverageData.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Data/ProcessedCodeCoverageData.php b/src/Data/ProcessedCodeCoverageData.php index f08507ac4..a3ed7136c 100644 --- a/src/Data/ProcessedCodeCoverageData.php +++ b/src/Data/ProcessedCodeCoverageData.php @@ -41,6 +41,7 @@ * }> * } * @phpstan-type FunctionCoverageType array> + * @phpstan-type LineCoverageType array>> */ final class ProcessedCodeCoverageData { @@ -48,7 +49,7 @@ final class ProcessedCodeCoverageData * Line coverage data. * An array of filenames, each having an array of linenumbers, each executable line having an array of testcase ids. * - * @var array>> + * @var LineCoverageType */ private array $lineCoverage = []; @@ -111,11 +112,17 @@ public function markCodeAsExecutedByTestCase(string $testCaseId, RawCodeCoverage } } + /** + * @param LineCoverageType $lineCoverage + */ public function setLineCoverage(array $lineCoverage): void { $this->lineCoverage = $lineCoverage; } + /** + * @return LineCoverageType + */ public function lineCoverage(): array { ksort($this->lineCoverage); From d9f8ea4b5125df475faf8bdd5440aeb396de5f42 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 8 Nov 2025 13:58:58 +0100 Subject: [PATCH 049/106] Narrow return types --- src/Data/ProcessedCodeCoverageData.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Data/ProcessedCodeCoverageData.php b/src/Data/ProcessedCodeCoverageData.php index a3ed7136c..49a103236 100644 --- a/src/Data/ProcessedCodeCoverageData.php +++ b/src/Data/ProcessedCodeCoverageData.php @@ -148,6 +148,9 @@ public function functionCoverage(): array return $this->functionCoverage; } + /** + * @return array + */ public function coveredFiles(): array { ksort($this->lineCoverage); From 3b267aed06e5d5c69b87ea1f70f629efead64453 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 8 Nov 2025 14:02:09 +0100 Subject: [PATCH 050/106] Prevent sorting coverage-data over and over --- src/Node/Builder.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Node/Builder.php b/src/Node/Builder.php index 19fc3a24d..15dc3103c 100644 --- a/src/Node/Builder.php +++ b/src/Node/Builder.php @@ -140,6 +140,9 @@ private function buildDirectoryStructure(ProcessedCodeCoverageData $data): array { $result = []; + $lineCoverage = $data->lineCoverage(); + $functionCoverage = $data->functionCoverage(); + foreach ($data->coveredFiles() as $originalPath) { $path = explode(DIRECTORY_SEPARATOR, $originalPath); $pointer = &$result; @@ -156,8 +159,8 @@ private function buildDirectoryStructure(ProcessedCodeCoverageData $data): array } $pointer = [ - 'lineCoverage' => $data->lineCoverage()[$originalPath] ?? [], - 'functionCoverage' => $data->functionCoverage()[$originalPath] ?? [], + 'lineCoverage' => $lineCoverage[$originalPath] ?? [], + 'functionCoverage' => $functionCoverage[$originalPath] ?? [], ]; } From 37047b5f0e98b31dccb9b7e7241e4f66ebfcd358 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 8 Nov 2025 17:11:46 +0100 Subject: [PATCH 051/106] Prevent sorting covered-files over and over --- src/Node/Builder.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Node/Builder.php b/src/Node/Builder.php index 15dc3103c..9a2efe145 100644 --- a/src/Node/Builder.php +++ b/src/Node/Builder.php @@ -206,12 +206,14 @@ private function buildDirectoryStructure(ProcessedCodeCoverageData $data): array */ private function reducePaths(ProcessedCodeCoverageData $coverage): string { - if ($coverage->coveredFiles() === []) { + $coveredFiles = $coverage->coveredFiles(); + + if ($coveredFiles === []) { return '.'; } $commonPath = ''; - $paths = $coverage->coveredFiles(); + $paths = $coveredFiles; if (count($paths) === 1) { $commonPath = dirname($paths[0]) . DIRECTORY_SEPARATOR; @@ -263,7 +265,7 @@ private function reducePaths(ProcessedCodeCoverageData $coverage): string } } - $original = $coverage->coveredFiles(); + $original = $coveredFiles; $max = count($original); for ($i = 0; $i < $max; $i++) { From d96833f090bb6a17736b525be6cf4472793fa763 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Sun, 16 Nov 2025 11:15:33 +0100 Subject: [PATCH 052/106] Update tools --- .phive/phars.xml | 4 ++-- tools/composer | Bin 3247733 -> 3249738 bytes tools/phpstan | Bin 25414301 -> 25629515 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.phive/phars.xml b/.phive/phars.xml index 939d4b7a7..a9b83e89d 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -1,6 +1,6 @@ - - + + diff --git a/tools/composer b/tools/composer index f58976cb6952e153fde9252f67493e31a4ad1615..57222395314625833b1947b1c42537d33bd7a3bd 100755 GIT binary patch delta 12524 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 Z4WT+61}!y>)`P4(=p~97F(hip{{mW*x(xsT diff --git a/tools/phpstan b/tools/phpstan index 7462c8537619e4a87690cb1e7e9fbb40fdec2478..8c83a085ddc639cd3c98ebce960bedf708e23635 100755 GIT binary patch delta 397810 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

&u4!{ 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ʾTd7a3hD8EbPWhQr;A1DJ9?iH6!1p4qTP3 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

U^a&r=m(#{tOyMI(-#!{gL)G>*$2*y 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

aBz?SX*J`{E44?2b|I=?3rjsF*f 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

F4KP{-j^9-i*n= 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

' . count($methodData['paths']) . ' is too many paths to sensibly render, consider refactoring your code to bring this number down.

'; + if (count($methodData->paths) > 100) { + $pathStructure .= '

' . count($methodData->paths) . ' is too many paths to sensibly render, consider refactoring your code to bring this number down.

'; continue; } - foreach ($methodData['paths'] as $path) { - $pathStructure .= $this->renderPathLines($path, $methodData['branches'], $codeLines, $testData); + foreach ($methodData->paths as $path) { + $pathStructure .= $this->renderPathLines($path, $methodData->branches, $codeLines, $testData); } if ($pathStructure !== '') { @@ -902,9 +906,10 @@ private function renderPathStructure(FileNode $node): string } /** + * @param array $branches * @param list $codeLines */ - private function renderPathLines(array $path, array $branches, array $codeLines, array $testData): string + private function renderPathLines(ProcessedPathCoverageData $path, array $branches, array $codeLines, array $testData): string { $linesTemplate = new Template($this->templatePath . 'lines.html.dist', '{{', '}}'); $singleLineTemplate = new Template($this->templatePath . 'line.html.dist', '{{', '}}'); @@ -912,14 +917,14 @@ private function renderPathLines(array $path, array $branches, array $codeLines, $lines = ''; $first = true; - foreach ($path['path'] as $branchId) { + foreach ($path->path as $branchId) { if ($first) { $first = false; } else { $lines .= '  ' . "\n"; } - $branchLines = range($branches[$branchId]['line_start'], $branches[$branchId]['line_end']); + $branchLines = range($branches[$branchId]->line_start, $branches[$branchId]->line_end); sort($branchLines); // sometimes end_line < start_line /** @var int $line */ @@ -931,7 +936,7 @@ private function renderPathLines(array $path, array $branches, array $codeLines, $popoverContent = ''; $popoverTitle = ''; - $numTests = count($path['hit']); + $numTests = count($path->hit); if ($numTests === 0) { $trClass = 'danger'; @@ -945,7 +950,7 @@ private function renderPathLines(array $path, array $branches, array $codeLines, $popoverTitle = '1 test covers this path'; } - foreach ($path['hit'] as $test) { + foreach ($path->hit as $test) { if ($lineCss === 'covered-by-large-tests' && $testData[$test]['size'] === 'medium') { $lineCss = 'covered-by-medium-tests'; } elseif ($testData[$test]['size'] === 'small') { From 8243b5ce8870605b218690756a0b1ea704599576 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 18:10:49 +0100 Subject: [PATCH 083/106] Update TestCase.php --- tests/src/TestCase.php | 247 +++++++++++++++++++++-------------------- 1 file changed, 124 insertions(+), 123 deletions(-) diff --git a/tests/src/TestCase.php b/tests/src/TestCase.php index ba87455db..af2ed2766 100644 --- a/tests/src/TestCase.php +++ b/tests/src/TestCase.php @@ -9,6 +9,9 @@ */ namespace SebastianBergmann\CodeCoverage; +use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; use function rmdir; use function unlink; use BankAccount; @@ -1560,201 +1563,199 @@ protected function getExpectedPathCoverageDataArrayForBankAccount(): array { return [ TEST_FILES_PATH . 'BankAccount.php' => [ - 'BankAccount->depositMoney' => [ - 'branches' => [ - 0 => [ - 'op_start' => 0, - 'op_end' => 14, - 'line_start' => 20, - 'line_end' => 25, - 'hit' => [ + 'BankAccount->depositMoney' => new ProcessedFunctionCoverageData( + [ + 0 => new ProcessedBranchCoverageData( + 0, + 14, + 20, + 25, + [ 0 => 'BankAccountTest::testBalanceCannotBecomeNegative2', 1 => 'BankAccountTest::testDepositWithdrawMoney', ], - 'out' => [ - ], - 'out_hit' => [ - ], - ], + [], + [], + ), ], - 'paths' => [ - 0 => [ - 'path' => [ + [ + 0 => new ProcessedPathCoverageData( + [ 0 => 0, ], - 'hit' => [ + [ 0 => 'BankAccountTest::testBalanceCannotBecomeNegative2', 1 => 'BankAccountTest::testDepositWithdrawMoney', ], - ], + ), ], - ], - 'BankAccount->getBalance' => [ - 'branches' => [ - 0 => [ - 'op_start' => 0, - 'op_end' => 5, - 'line_start' => 6, - 'line_end' => 9, - 'hit' => [ + ), + 'BankAccount->getBalance' => new ProcessedFunctionCoverageData( + [ + 0 => new ProcessedBranchCoverageData( + 0, + 5, + 6, + 9, + [ 0 => 'BankAccountTest::testBalanceIsInitiallyZero', 1 => 'BankAccountTest::testDepositWithdrawMoney', ], - 'out' => [ + [ ], - 'out_hit' => [ + [ ], - ], + ), ], - 'paths' => [ - 0 => [ - 'path' => [ + [ + 0 => new ProcessedPathCoverageData( + [ 0 => 0, ], - 'hit' => [ + [ 0 => 'BankAccountTest::testBalanceIsInitiallyZero', 1 => 'BankAccountTest::testDepositWithdrawMoney', ], - ], + ), ], - ], - 'BankAccount->withdrawMoney' => [ - 'branches' => [ - 0 => [ - 'op_start' => 0, - 'op_end' => 14, - 'line_start' => 27, - 'line_end' => 32, - 'hit' => [ + ), + 'BankAccount->withdrawMoney' => new ProcessedFunctionCoverageData( + [ + 0 => new ProcessedBranchCoverageData( + 0, + 14, + 27, + 32, + [ 0 => 'BankAccountTest::testBalanceCannotBecomeNegative', 1 => 'BankAccountTest::testDepositWithdrawMoney', ], - 'out' => [ + [ ], - 'out_hit' => [ + [ ], - ], + ), ], - 'paths' => [ - 0 => [ - 'path' => [ + [ + 0 => new ProcessedPathCoverageData( + [ 0 => 0, ], - 'hit' => [ + [ 0 => 'BankAccountTest::testBalanceCannotBecomeNegative', 1 => 'BankAccountTest::testDepositWithdrawMoney', ], - ], + ), ], - ], - '{main}' => [ - 'branches' => [ - 0 => [ - 'op_start' => 0, - 'op_end' => 1, - 'line_start' => 34, - 'line_end' => 34, - 'hit' => [ - ], - 'out' => [ + ), + '{main}' => new ProcessedFunctionCoverageData( + [ + 0 => new ProcessedBranchCoverageData( + 0, + 1, + 34, + 34, + [ + ], + [ 0 => 2147483645, ], - 'out_hit' => [ + [ 0 => 0, ], - ], + ), ], - 'paths' => [ - 0 => [ - 'path' => [ + [ + 0 => new ProcessedPathCoverageData( + [ 0 => 0, ], - 'hit' => [ + [ ], - ], + ), ], - ], - 'BankAccount->setBalance' => [ - 'branches' => [ - 0 => [ - 'op_start' => 0, - 'op_end' => 4, - 'line_start' => 11, - 'line_end' => 13, - 'hit' => [ - ], - 'out' => [ + ), + 'BankAccount->setBalance' => new ProcessedFunctionCoverageData( + [ + 0 => new ProcessedBranchCoverageData( + 0, + 4, + 11, + 13, + [ + ], + [ 0 => 5, 1 => 9, ], - 'out_hit' => [ + [ 0 => 0, 1 => 0, ], - ], - 5 => [ - 'op_start' => 5, - 'op_end' => 8, - 'line_start' => 14, - 'line_end' => 14, - 'hit' => [ - ], - 'out' => [ + ), + 5 => new ProcessedBranchCoverageData( + 5, + 8, + 14, + 14, + [ + ], + [ 0 => 13, ], - 'out_hit' => [ + [ 0 => 0, ], - ], - 9 => [ - 'op_start' => 9, - 'op_end' => 12, - 'line_start' => 16, - 'line_end' => 16, - 'hit' => [ - ], - 'out' => [ + ), + 9 => new ProcessedBranchCoverageData( + 9, + 12, + 16, + 16, + [ + ], + [ 0 => 2147483645, ], - 'out_hit' => [ + [ 0 => 0, ], - ], - 13 => [ - 'op_start' => 13, - 'op_end' => 14, - 'line_start' => 18, - 'line_end' => 18, - 'hit' => [ - ], - 'out' => [ + ), + 13 => new ProcessedBranchCoverageData( + 13, + 14, + 18, + 18, + [ + ], + [ 0 => 2147483645, ], - 'out_hit' => [ + [ 0 => 0, ], - ], + ), ], - 'paths' => [ - 0 => [ - 'path' => [ + [ + 0 => new ProcessedPathCoverageData( + [ 0 => 0, 1 => 5, 2 => 13, ], - 'hit' => [ + [ ], - ], - 1 => [ - 'path' => [ + ), + 1 => new ProcessedPathCoverageData( + [ 0 => 0, 1 => 9, ], - 'hit' => [ + [ ], - ], + ), ], - ], + ), ], ]; } From 7957d585485219d5d186295d3e5717293a57e342 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 18:10:58 +0100 Subject: [PATCH 084/106] cs --- src/Report/Html/Renderer/File.php | 8 ++++---- tests/src/TestCase.php | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Report/Html/Renderer/File.php b/src/Report/Html/Renderer/File.php index a141d2d77..ca7808e3b 100644 --- a/src/Report/Html/Renderer/File.php +++ b/src/Report/Html/Renderer/File.php @@ -9,9 +9,6 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Html; -use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; -use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionCoverageData; -use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; use const ENT_COMPAT; use const ENT_HTML401; use const ENT_SUBSTITUTE; @@ -109,6 +106,9 @@ use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; +use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; use SebastianBergmann\CodeCoverage\FileCouldNotBeWrittenException; use SebastianBergmann\CodeCoverage\Node\File as FileNode; use SebastianBergmann\CodeCoverage\Util\Percentage; @@ -907,7 +907,7 @@ private function renderPathStructure(FileNode $node): string /** * @param array $branches - * @param list $codeLines + * @param list $codeLines */ private function renderPathLines(ProcessedPathCoverageData $path, array $branches, array $codeLines, array $testData): string { diff --git a/tests/src/TestCase.php b/tests/src/TestCase.php index af2ed2766..f8273d17c 100644 --- a/tests/src/TestCase.php +++ b/tests/src/TestCase.php @@ -9,14 +9,14 @@ */ namespace SebastianBergmann\CodeCoverage; -use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; -use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionCoverageData; -use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; use function rmdir; use function unlink; use BankAccount; use RecursiveDirectoryIterator; use RecursiveIteratorIterator; +use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; use SebastianBergmann\CodeCoverage\Data\RawCodeCoverageData; use SebastianBergmann\CodeCoverage\Driver\Driver; use SebastianBergmann\CodeCoverage\Test\Target\Target; From 277a9bfb932038585552651ce9665fdf6761b2a8 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 18:15:32 +0100 Subject: [PATCH 085/106] Update File.php --- src/Report/Html/Renderer/File.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Report/Html/Renderer/File.php b/src/Report/Html/Renderer/File.php index ca7808e3b..5b724bec3 100644 --- a/src/Report/Html/Renderer/File.php +++ b/src/Report/Html/Renderer/File.php @@ -777,14 +777,12 @@ private function renderBranchStructure(FileNode $node): string ksort($coverageData); + /** @var ProcessedFunctionCoverageData $methodData */ foreach ($coverageData as $methodName => $methodData) { - if (!$methodData['branches']) { - continue; - } - $branchStructure = ''; - foreach ($methodData['branches'] as $branch) { + /** @var ProcessedBranchCoverageData $branch */ + foreach ($methodData->branches as $branch) { $branchStructure .= $this->renderBranchLines($branch, $codeLines, $testData); } @@ -802,14 +800,14 @@ private function renderBranchStructure(FileNode $node): string /** * @param list $codeLines */ - private function renderBranchLines(array $branch, array $codeLines, array $testData): string + private function renderBranchLines(ProcessedBranchCoverageData $branch, array $codeLines, array $testData): string { $linesTemplate = new Template($this->templatePath . 'lines.html.dist', '{{', '}}'); $singleLineTemplate = new Template($this->templatePath . 'line.html.dist', '{{', '}}'); $lines = ''; - $branchLines = range($branch['line_start'], $branch['line_end']); + $branchLines = range($branch->line_start, $branch->line_end); sort($branchLines); // sometimes end_line < start_line /** @var int $line */ @@ -821,7 +819,7 @@ private function renderBranchLines(array $branch, array $codeLines, array $testD $popoverContent = ''; $popoverTitle = ''; - $numTests = count($branch['hit']); + $numTests = count($branch->hit); if ($numTests === 0) { $trClass = 'danger'; @@ -835,7 +833,7 @@ private function renderBranchLines(array $branch, array $codeLines, array $testD $popoverTitle = '1 test covers this branch'; } - foreach ($branch['hit'] as $test) { + foreach ($branch->hit as $test) { if ($lineCss === 'covered-by-large-tests' && $testData[$test]['size'] === 'medium') { $lineCss = 'covered-by-medium-tests'; } elseif ($testData[$test]['size'] === 'small') { From 83202c229f88724d47485294e2dbf51ffaac67f5 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 18:29:57 +0100 Subject: [PATCH 086/106] Update ProcessedFunctionCoverageData.php --- src/Data/ProcessedFunctionCoverageData.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Data/ProcessedFunctionCoverageData.php b/src/Data/ProcessedFunctionCoverageData.php index 39dcd9205..7a12f32d7 100644 --- a/src/Data/ProcessedFunctionCoverageData.php +++ b/src/Data/ProcessedFunctionCoverageData.php @@ -82,8 +82,8 @@ public function merge(self $data): self } return new self( - $branches, - $paths, + $branches ?? $this->branches, + $paths ?? $this->paths, ); } From 7577847540c9ae3beabe52126b758bfb99efd28a Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Nov 2025 08:37:37 +0100 Subject: [PATCH 087/106] new classes are internal --- src/Data/ProcessedBranchCoverageData.php | 2 ++ src/Data/ProcessedFunctionCoverageData.php | 2 ++ src/Data/ProcessedPathCoverageData.php | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/Data/ProcessedBranchCoverageData.php b/src/Data/ProcessedBranchCoverageData.php index 2b6076160..23687ef81 100644 --- a/src/Data/ProcessedBranchCoverageData.php +++ b/src/Data/ProcessedBranchCoverageData.php @@ -15,6 +15,8 @@ use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; /** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + * * @phpstan-import-type TestIdType from ProcessedCodeCoverageData * @phpstan-import-type XdebugBranchCoverageType from XdebugDriver */ diff --git a/src/Data/ProcessedFunctionCoverageData.php b/src/Data/ProcessedFunctionCoverageData.php index 7a12f32d7..0fa54a0b6 100644 --- a/src/Data/ProcessedFunctionCoverageData.php +++ b/src/Data/ProcessedFunctionCoverageData.php @@ -12,6 +12,8 @@ use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; /** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + * * @phpstan-import-type TestIdType from ProcessedCodeCoverageData * @phpstan-import-type XdebugFunctionCoverageType from XdebugDriver */ diff --git a/src/Data/ProcessedPathCoverageData.php b/src/Data/ProcessedPathCoverageData.php index ccb651931..81f73da77 100644 --- a/src/Data/ProcessedPathCoverageData.php +++ b/src/Data/ProcessedPathCoverageData.php @@ -15,6 +15,8 @@ use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; /** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + * * @phpstan-import-type TestIdType from ProcessedCodeCoverageData * @phpstan-import-type XdebugPathCoverageType from XdebugDriver */ From 6b62cc34907d1c90ef26cedece619355dc2f5954 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 08:53:26 +0100 Subject: [PATCH 088/106] fix cs --- src/Node/File.php | 8 ++++---- src/Report/Html/Renderer/File.php | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Node/File.php b/src/Node/File.php index 97fa8bbc6..3c27fde30 100644 --- a/src/Node/File.php +++ b/src/Node/File.php @@ -13,12 +13,12 @@ use function count; use function range; use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; -use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; -use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult; use SebastianBergmann\CodeCoverage\StaticAnalysis\Class_; use SebastianBergmann\CodeCoverage\StaticAnalysis\Function_; @@ -540,7 +540,7 @@ private function processFunctions(array $functions): void } if (isset($this->functionCoverageData[$functionName])) { - $this->functions[$functionName]['executableBranches'] = count( + $this->functions[$functionName]->executableBranches = count( $this->functionCoverageData[$functionName]->branches, ); @@ -556,7 +556,7 @@ static function (ProcessedBranchCoverageData $branch) } if (isset($this->functionCoverageData[$functionName])) { - $this->functions[$functionName]['executablePaths'] = count( + $this->functions[$functionName]->executablePaths = count( $this->functionCoverageData[$functionName]->paths, ); diff --git a/src/Report/Html/Renderer/File.php b/src/Report/Html/Renderer/File.php index 5b724bec3..b2808fbd0 100644 --- a/src/Report/Html/Renderer/File.php +++ b/src/Report/Html/Renderer/File.php @@ -102,13 +102,13 @@ use function str_replace; use function token_get_all; use function trim; +use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionCoverageData; use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; -use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; -use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; -use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionCoverageData; use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\FileCouldNotBeWrittenException; use SebastianBergmann\CodeCoverage\Node\File as FileNode; use SebastianBergmann\CodeCoverage\Util\Percentage; From d2374c97b4cb106e34f987d2279591e7ff570446 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 08:56:06 +0100 Subject: [PATCH 089/106] Update ProcessedFunctionCoverageData.php --- src/Data/ProcessedFunctionCoverageData.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Data/ProcessedFunctionCoverageData.php b/src/Data/ProcessedFunctionCoverageData.php index 0fa54a0b6..3a4edadd5 100644 --- a/src/Data/ProcessedFunctionCoverageData.php +++ b/src/Data/ProcessedFunctionCoverageData.php @@ -9,6 +9,7 @@ */ namespace SebastianBergmann\CodeCoverage\Data; +use NoDiscard; use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; /** @@ -49,6 +50,7 @@ public function __construct( ) { } + #[NoDiscard] public function merge(self $data): self { $branches = null; From d8bf935c17a7b276cb0a2f9531db9a757bab1c6c Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 09:01:14 +0100 Subject: [PATCH 090/106] use traditional properties --- src/Data/ProcessedBranchCoverageData.php | 43 +++++++++++++++++----- src/Data/ProcessedFunctionCoverageData.php | 18 +++++++-- src/Data/ProcessedPathCoverageData.php | 18 +++++++-- 3 files changed, 61 insertions(+), 18 deletions(-) diff --git a/src/Data/ProcessedBranchCoverageData.php b/src/Data/ProcessedBranchCoverageData.php index 23687ef81..b988a2b2a 100644 --- a/src/Data/ProcessedBranchCoverageData.php +++ b/src/Data/ProcessedBranchCoverageData.php @@ -22,6 +22,20 @@ */ final class ProcessedBranchCoverageData { + public readonly int $op_start; + public readonly int $op_end; + public readonly int $line_start; + public readonly int $line_end; + + /** @var list */ + public array $hit; + + /** @var array */ + public readonly array $out; + + /** @var array */ + public readonly array $out_hit; + /** * @param XdebugBranchCoverageType $xdebugCoverageData */ @@ -38,18 +52,27 @@ public static function fromXdebugCoverage(array $xdebugCoverageData): self ); } + /** + * @param list $hit + * @param array $out + * @param array $out_hit + */ public function __construct( - public readonly int $op_start, - public readonly int $op_end, - public readonly int $line_start, - public readonly int $line_end, - /** @var list */ - public array $hit, - /** @var array */ - public readonly array $out, - /** @var array */ - public readonly array $out_hit, + int $op_start, + int $op_end, + int $line_start, + int $line_end, + array $hit, + array $out, + array $out_hit, ) { + $this->out_hit = $out_hit; + $this->out = $out; + $this->hit = $hit; + $this->line_end = $line_end; + $this->line_start = $line_start; + $this->op_end = $op_end; + $this->op_start = $op_start; } #[NoDiscard] diff --git a/src/Data/ProcessedFunctionCoverageData.php b/src/Data/ProcessedFunctionCoverageData.php index 3a4edadd5..96baa262a 100644 --- a/src/Data/ProcessedFunctionCoverageData.php +++ b/src/Data/ProcessedFunctionCoverageData.php @@ -20,6 +20,12 @@ */ final readonly class ProcessedFunctionCoverageData { + /** @var array */ + public array $branches; + + /** @var array */ + public array $paths; + /** * @param XdebugFunctionCoverageType $xdebugCoverageData */ @@ -42,12 +48,16 @@ public static function fromXdebugCoverage(array $xdebugCoverageData): self ); } + /** + * @param array $branches + * @param array $paths + */ public function __construct( - /** @var array */ - public array $branches, - /** @var array */ - public array $paths, + array $branches, + array $paths, ) { + $this->paths = $paths; + $this->branches = $branches; } #[NoDiscard] diff --git a/src/Data/ProcessedPathCoverageData.php b/src/Data/ProcessedPathCoverageData.php index 81f73da77..e7283542d 100644 --- a/src/Data/ProcessedPathCoverageData.php +++ b/src/Data/ProcessedPathCoverageData.php @@ -22,6 +22,12 @@ */ final class ProcessedPathCoverageData { + /** @var array */ + public readonly array $path; + + /** @var list */ + public array $hit; + /** * @param XdebugPathCoverageType $xdebugCoverageData */ @@ -33,12 +39,16 @@ public static function fromXdebugCoverage(array $xdebugCoverageData): self ); } + /** + * @param array $path + * @param list $hit + */ public function __construct( - /** @var array */ - public readonly array $path, - /** @var list */ - public array $hit, + array $path, + array $hit, ) { + $this->hit = $hit; + $this->path = $path; } #[NoDiscard] From 6fa7c78dbfec65844995e1f049b1f613a30b23da Mon Sep 17 00:00:00 2001 From: Markus Staab <47448731+clxmstaab@users.noreply.github.com> Date: Thu, 20 Nov 2025 10:31:47 +0100 Subject: [PATCH 091/106] BuildInformation: Move always available information into __construct() Reducing the api surface along the way --- src/Report/Xml/BuildInformation.php | 20 ++++++++------------ src/Report/Xml/Facade.php | 10 ++++++---- src/Report/Xml/Project.php | 18 +++++++++++++++--- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/Report/Xml/BuildInformation.php b/src/Report/Xml/BuildInformation.php index c91e5989e..19d0aa42d 100644 --- a/src/Report/Xml/BuildInformation.php +++ b/src/Report/Xml/BuildInformation.php @@ -22,13 +22,15 @@ { private DOMElement $contextNode; - public function __construct(DOMElement $contextNode) - { + public function __construct( + DOMElement $contextNode, + Runtime $runtime, + DateTimeImmutable $buildDate, + string $phpUnitVersion, + string $coverageVersion + ) { $this->contextNode = $contextNode; - } - public function setRuntimeInformation(Runtime $runtime): void - { $runtimeNode = $this->nodeByName('runtime'); $runtimeNode->setAttribute('name', $runtime->getName()); @@ -46,15 +48,9 @@ public function setRuntimeInformation(Runtime $runtime): void $driverNode->setAttribute('name', 'pcov'); $driverNode->setAttribute('version', phpversion('pcov')); } - } - public function setBuildTime(DateTimeImmutable $date): void - { - $this->contextNode->setAttribute('time', $date->format('D M j G:i:s T Y')); - } + $this->contextNode->setAttribute('time', $buildDate->format('D M j G:i:s T Y')); - public function setGeneratorVersions(string $phpUnitVersion, string $coverageVersion): void - { $this->contextNode->setAttribute('phpunit', $phpUnitVersion); $this->contextNode->setAttribute('coverage', $coverageVersion); } diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index 1bc1e009d..857423922 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -79,10 +79,12 @@ public function process(CodeCoverage $coverage, string $target): void private function setBuildInformation(): void { - $buildNode = $this->project->buildInformation(); - $buildNode->setRuntimeInformation(new Runtime); - $buildNode->setBuildTime(new DateTimeImmutable); - $buildNode->setGeneratorVersions($this->phpUnitVersion, Version::id()); + $this->project->buildInformation( + new Runtime, + new DateTimeImmutable, + $this->phpUnitVersion, + Version::id(), + ); } /** diff --git a/src/Report/Xml/Project.php b/src/Report/Xml/Project.php index 160170320..6980a943a 100644 --- a/src/Report/Xml/Project.php +++ b/src/Report/Xml/Project.php @@ -10,8 +10,10 @@ namespace SebastianBergmann\CodeCoverage\Report\Xml; use function assert; +use DateTimeImmutable; use DOMDocument; use DOMElement; +use SebastianBergmann\Environment\Runtime; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage @@ -40,8 +42,12 @@ public function projectSourceDirectory(): string return $this->directory; } - public function buildInformation(): BuildInformation - { + public function buildInformation( + Runtime $runtime, + DateTimeImmutable $buildDate, + string $phpUnitVersion, + string $coverageVersion + ): void { $buildNode = $this->dom()->getElementsByTagNameNS( Facade::XML_NAMESPACE, 'build', @@ -58,7 +64,13 @@ public function buildInformation(): BuildInformation assert($buildNode instanceof DOMElement); - return new BuildInformation($buildNode); + new BuildInformation( + $buildNode, + $runtime, + $buildDate, + $phpUnitVersion, + $coverageVersion, + ); } public function tests(): Tests From a5d3a88482b522e9e0e4ad9287a3518dbcca04d8 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 10:35:23 +0100 Subject: [PATCH 092/106] Remove unnused DOM re-attach path --- src/Report/Xml/BuildInformation.php | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/Report/Xml/BuildInformation.php b/src/Report/Xml/BuildInformation.php index 19d0aa42d..654eecb31 100644 --- a/src/Report/Xml/BuildInformation.php +++ b/src/Report/Xml/BuildInformation.php @@ -57,19 +57,12 @@ public function __construct( private function nodeByName(string $name): DOMElement { - $node = $this->contextNode->getElementsByTagNameNS( - Facade::XML_NAMESPACE, - $name, - )->item(0); - - if ($node === null) { - $node = $this->contextNode->appendChild( - $this->contextNode->ownerDocument->createElementNS( - Facade::XML_NAMESPACE, - $name, - ), - ); - } + $node = $this->contextNode->appendChild( + $this->contextNode->ownerDocument->createElementNS( + Facade::XML_NAMESPACE, + $name, + ), + ); assert($node instanceof DOMElement); From b9d130af5924c5d39f53038ba39e65aaa918e469 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 10:38:02 +0100 Subject: [PATCH 093/106] Remove getElementsByTagNameNS() for cases which can never find a element --- src/Report/Xml/Project.php | 19 ++++++------------- src/Report/Xml/Report.php | 19 ++++++------------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/src/Report/Xml/Project.php b/src/Report/Xml/Project.php index 6980a943a..5036a4785 100644 --- a/src/Report/Xml/Project.php +++ b/src/Report/Xml/Project.php @@ -75,19 +75,12 @@ public function buildInformation( public function tests(): Tests { - $testsNode = $this->contextNode()->getElementsByTagNameNS( - Facade::XML_NAMESPACE, - 'tests', - )->item(0); - - if ($testsNode === null) { - $testsNode = $this->contextNode()->appendChild( - $this->dom()->createElementNS( - Facade::XML_NAMESPACE, - 'tests', - ), - ); - } + $testsNode = $this->contextNode()->appendChild( + $this->dom()->createElementNS( + Facade::XML_NAMESPACE, + 'tests', + ), + ); assert($testsNode instanceof DOMElement); diff --git a/src/Report/Xml/Report.php b/src/Report/Xml/Report.php index 14d2d5a06..6f4400a02 100644 --- a/src/Report/Xml/Report.php +++ b/src/Report/Xml/Report.php @@ -119,19 +119,12 @@ public function traitObject( public function source(): Source { - $source = $this->contextNode()->getElementsByTagNameNS( - Facade::XML_NAMESPACE, - 'source', - )->item(0); - - if ($source === null) { - $source = $this->contextNode()->appendChild( - $this->dom()->createElementNS( - Facade::XML_NAMESPACE, - 'source', - ), - ); - } + $source = $this->contextNode()->appendChild( + $this->dom()->createElementNS( + Facade::XML_NAMESPACE, + 'source', + ), + ); assert($source instanceof DOMElement); From 480ab391a3bdfd55a721ed723a7fba45e32b8ddc Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 10:46:19 +0100 Subject: [PATCH 094/106] Don't query the line-coverage element over and over --- src/Report/Xml/File.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Report/Xml/File.php b/src/Report/Xml/File.php index 0d1e73955..329d0ef77 100644 --- a/src/Report/Xml/File.php +++ b/src/Report/Xml/File.php @@ -12,6 +12,7 @@ use function assert; use DOMDocument; use DOMElement; +use DOMNode; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage @@ -20,6 +21,7 @@ class File { private readonly DOMDocument $dom; private readonly DOMElement $contextNode; + private ?DOMNode $lineCoverage = null; public function __construct(DOMElement $context) { @@ -47,21 +49,17 @@ public function totals(): Totals public function lineCoverage(string $line): Coverage { - $coverage = $this->contextNode->getElementsByTagNameNS( - Facade::XML_NAMESPACE, - 'coverage', - )->item(0); - - if ($coverage === null) { - $coverage = $this->contextNode->appendChild( + if ($this->lineCoverage === null) { + $this->lineCoverage = $this->contextNode->appendChild( $this->dom->createElementNS( Facade::XML_NAMESPACE, 'coverage', ), ); } + assert($this->lineCoverage instanceof DOMElement); - $lineNode = $coverage->appendChild( + $lineNode = $this->lineCoverage->appendChild( $this->dom->createElementNS( Facade::XML_NAMESPACE, 'line', From f0b16b3d5bbba37d9bccb3b64cfc8860ad5a29be Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 10:48:14 +0100 Subject: [PATCH 095/106] totals-element cannot already exist at this point in time --- src/Report/Xml/File.php | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/Report/Xml/File.php b/src/Report/Xml/File.php index 329d0ef77..b7c90efa5 100644 --- a/src/Report/Xml/File.php +++ b/src/Report/Xml/File.php @@ -31,16 +31,12 @@ public function __construct(DOMElement $context) public function totals(): Totals { - $totalsContainer = $this->contextNode->firstChild; - - if ($totalsContainer === null) { - $totalsContainer = $this->contextNode->appendChild( - $this->dom->createElementNS( - Facade::XML_NAMESPACE, - 'totals', - ), - ); - } + $totalsContainer = $this->contextNode->appendChild( + $this->dom->createElementNS( + Facade::XML_NAMESPACE, + 'totals', + ), + ); assert($totalsContainer instanceof DOMElement); From 2afc03839c5ae256aa9c9f3e0c342f60ef14270b Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 11:00:45 +0100 Subject: [PATCH 096/106] Remove unnecessary indirection via dom()-method unifies the access pattern, as some places where already directly working with the property, while others accessed it via dom() --- src/Report/Xml/File.php | 7 +------ src/Report/Xml/Node.php | 11 +++-------- src/Report/Xml/Project.php | 10 +++++----- src/Report/Xml/Report.php | 10 +++++----- 4 files changed, 14 insertions(+), 24 deletions(-) diff --git a/src/Report/Xml/File.php b/src/Report/Xml/File.php index b7c90efa5..e6dd5c4ba 100644 --- a/src/Report/Xml/File.php +++ b/src/Report/Xml/File.php @@ -19,7 +19,7 @@ */ class File { - private readonly DOMDocument $dom; + protected readonly DOMDocument $dom; private readonly DOMElement $contextNode; private ?DOMNode $lineCoverage = null; @@ -71,9 +71,4 @@ protected function contextNode(): DOMElement { return $this->contextNode; } - - protected function dom(): DOMDocument - { - return $this->dom; - } } diff --git a/src/Report/Xml/Node.php b/src/Report/Xml/Node.php index 5c94a0883..86fe70df4 100644 --- a/src/Report/Xml/Node.php +++ b/src/Report/Xml/Node.php @@ -18,7 +18,7 @@ */ abstract class Node { - private readonly DOMDocument $dom; + protected readonly DOMDocument $dom; private readonly DOMElement $contextNode; public function __construct(DOMElement $context) @@ -27,11 +27,6 @@ public function __construct(DOMElement $context) $this->contextNode = $context; } - public function dom(): DOMDocument - { - return $this->dom; - } - public function totals(): Totals { $totalsContainer = $this->contextNode()->firstChild; @@ -52,7 +47,7 @@ public function totals(): Totals public function addDirectory(string $name): Directory { - $dirNode = $this->dom()->createElementNS( + $dirNode = $this->dom->createElementNS( Facade::XML_NAMESPACE, 'directory', ); @@ -65,7 +60,7 @@ public function addDirectory(string $name): Directory public function addFile(string $name, string $href): File { - $fileNode = $this->dom()->createElementNS( + $fileNode = $this->dom->createElementNS( Facade::XML_NAMESPACE, 'file', ); diff --git a/src/Report/Xml/Project.php b/src/Report/Xml/Project.php index 5036a4785..a91fb2e47 100644 --- a/src/Report/Xml/Project.php +++ b/src/Report/Xml/Project.php @@ -48,14 +48,14 @@ public function buildInformation( string $phpUnitVersion, string $coverageVersion ): void { - $buildNode = $this->dom()->getElementsByTagNameNS( + $buildNode = $this->dom->getElementsByTagNameNS( Facade::XML_NAMESPACE, 'build', )->item(0); if ($buildNode === null) { - $buildNode = $this->dom()->documentElement->appendChild( - $this->dom()->createElementNS( + $buildNode = $this->dom->documentElement->appendChild( + $this->dom->createElementNS( Facade::XML_NAMESPACE, 'build', ), @@ -76,7 +76,7 @@ public function buildInformation( public function tests(): Tests { $testsNode = $this->contextNode()->appendChild( - $this->dom()->createElementNS( + $this->dom->createElementNS( Facade::XML_NAMESPACE, 'tests', ), @@ -91,6 +91,6 @@ public function asDom(): DOMDocument { $this->contextNode()->setAttribute('source', $this->directory); - return $this->dom(); + return $this->dom; } } diff --git a/src/Report/Xml/Report.php b/src/Report/Xml/Report.php index 6f4400a02..ee9b401de 100644 --- a/src/Report/Xml/Report.php +++ b/src/Report/Xml/Report.php @@ -42,7 +42,7 @@ public function asDom(): DOMDocument $this->contextNode()->setAttribute('name', basename($this->name)); $this->contextNode()->setAttribute('path', dirname($this->name)); - return $this->dom(); + return $this->dom; } public function functionObject( @@ -56,7 +56,7 @@ public function functionObject( string $crap ): void { $node = $this->contextNode()->appendChild( - $this->dom()->createElementNS( + $this->dom->createElementNS( Facade::XML_NAMESPACE, 'function', ), @@ -86,7 +86,7 @@ public function classObject( float $crap ): Unit { $node = $this->contextNode()->appendChild( - $this->dom()->createElementNS( + $this->dom->createElementNS( Facade::XML_NAMESPACE, 'class', ), @@ -106,7 +106,7 @@ public function traitObject( float $crap ): Unit { $node = $this->contextNode()->appendChild( - $this->dom()->createElementNS( + $this->dom->createElementNS( Facade::XML_NAMESPACE, 'trait', ), @@ -120,7 +120,7 @@ public function traitObject( public function source(): Source { $source = $this->contextNode()->appendChild( - $this->dom()->createElementNS( + $this->dom->createElementNS( Facade::XML_NAMESPACE, 'source', ), From 1be4361b1c2e142e69f0258d7faee126c2a698e2 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 14:51:43 +0100 Subject: [PATCH 097/106] build-element will always exists it will be created while __construct() already --- src/Report/Xml/Project.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/Report/Xml/Project.php b/src/Report/Xml/Project.php index a91fb2e47..c81a6a933 100644 --- a/src/Report/Xml/Project.php +++ b/src/Report/Xml/Project.php @@ -53,15 +53,6 @@ public function buildInformation( 'build', )->item(0); - if ($buildNode === null) { - $buildNode = $this->dom->documentElement->appendChild( - $this->dom->createElementNS( - Facade::XML_NAMESPACE, - 'build', - ), - ); - } - assert($buildNode instanceof DOMElement); new BuildInformation( From 2649769a2de52f79cc1bafe975f7bfc14926c5ca Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Fri, 21 Nov 2025 07:58:54 +0100 Subject: [PATCH 098/106] Refactor: extract targetFilePath() method --- src/Report/Xml/Facade.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index 857423922..c3767088e 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -277,15 +277,20 @@ private function targetDirectory(): string return $this->target; } - /** - * @throws XmlException - */ - private function saveDocument(DOMDocument $document, string $name): void + private function targetFilePath(string $name): string { $filename = sprintf('%s/%s.xml', $this->targetDirectory(), $name); $this->initTargetDirectory(dirname($filename)); - Filesystem::write($filename, Xml::asString($document)); + return $filename; + } + + /** + * @throws XmlException + */ + private function saveDocument(DOMDocument $document, string $name): void + { + Filesystem::write($this->targetFilePath($name), Xml::asString($document)); } } From c1a9f74abe86a1a45f92264bf4604916045b30f9 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Fri, 21 Nov 2025 08:17:07 +0100 Subject: [PATCH 099/106] Use explicit Xml-namespace --- src/Report/Xml/Source.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Report/Xml/Source.php b/src/Report/Xml/Source.php index 448fe72d6..698a71b6d 100644 --- a/src/Report/Xml/Source.php +++ b/src/Report/Xml/Source.php @@ -31,7 +31,7 @@ public function setSourceCode(string $source): void $context = $this->context; $tokens = (new Tokenizer)->parse($source); - $srcDom = (new XMLSerializer(new NamespaceUri($context->namespaceURI)))->toDom($tokens); + $srcDom = (new XMLSerializer(new NamespaceUri(Facade::XML_NAMESPACE)))->toDom($tokens); $context->parentNode->replaceChild( $context->ownerDocument->importNode($srcDom->documentElement, true), From 00adcbb41ded982115d4c00bf5b69012671dec44 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 26 Nov 2025 13:27:16 +0100 Subject: [PATCH 100/106] Update ChangeLog --- ChangeLog-12.4.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog-12.4.md b/ChangeLog-12.4.md index 8ff3a6e1e..f4ffa216a 100644 --- a/ChangeLog-12.4.md +++ b/ChangeLog-12.4.md @@ -2,10 +2,20 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. +## [12.4.1] - 2025-MM-DD + +### Changed + +* [#1102](https://github.com/sebastianbergmann/php-code-coverage/pull/1102), [#1111](https://github.com/sebastianbergmann/php-code-coverage/pull/1111), [#1112](https://github.com/sebastianbergmann/php-code-coverage/pull/1112), [#1113](https://github.com/sebastianbergmann/php-code-coverage/pull/1113), [#1114](https://github.com/sebastianbergmann/php-code-coverage/pull/1114), [#1115](https://github.com/sebastianbergmann/php-code-coverage/pull/1115), [#1116](https://github.com/sebastianbergmann/php-code-coverage/pull/1116), [#1117](https://github.com/sebastianbergmann/php-code-coverage/pull/1117), [#1118](https://github.com/sebastianbergmann/php-code-coverage/pull/1118), [#1119](https://github.com/sebastianbergmann/php-code-coverage/pull/1119), [#1120](https://github.com/sebastianbergmann/php-code-coverage/pull/1120), [#1121](https://github.com/sebastianbergmann/php-code-coverage/pull/1121), [#1122](https://github.com/sebastianbergmann/php-code-coverage/pull/1122), [#1123](https://github.com/sebastianbergmann/php-code-coverage/pull/1123), [#1124](https://github.com/sebastianbergmann/php-code-coverage/pull/1124): Improve performance of XML report +* [#1107](https://github.com/sebastianbergmann/php-code-coverage/pull/1107): Do not sort code coverage data over and over +* [#1108](https://github.com/sebastianbergmann/php-code-coverage/pull/1108): Do not sort covered files data over and over +* [#1109](https://github.com/sebastianbergmann/php-code-coverage/pull/1109): Represent line coverage data using objects + ## [12.4.0] - 2025-09-24 ### Added * [#1095](https://github.com/sebastianbergmann/php-code-coverage/pull/1095): Support for light/dark mode in HTML report -[12.4.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.8...main +[12.4.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.4.0...main +[12.4.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.8...12.4.0 From 42e62627beea4652e6ee8a070a90e7044c57fb7a Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Wed, 26 Nov 2025 15:30:18 +0100 Subject: [PATCH 101/106] Test with PHP 8.6 --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 165cfd133..cd922f6e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,6 +111,7 @@ jobs: - 8.3 - 8.4 - 8.5 + - 8.6 coverage-driver: - pcov From c1888bb33eb41d37b99cb6fcd786931684477169 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Thu, 27 Nov 2025 10:07:16 +0100 Subject: [PATCH 102/106] Implement option for not generating the element --- .github/workflows/ci.yml | 2 +- ChangeLog-12.4.md => ChangeLog-12.5.md | 15 +++---- composer.json | 2 +- src/Report/Xml/Facade.php | 12 ++++-- .../BankAccount.php.xml | 39 +++++++++++++++++++ .../index.xml | 33 ++++++++++++++++ tests/tests/Report/XmlTest.php | 10 +++++ 7 files changed, 98 insertions(+), 15 deletions(-) rename ChangeLog-12.4.md => ChangeLog-12.5.md (84%) create mode 100644 tests/_files/Report/XML/CoverageForBankAccountWithoutSource/BankAccount.php.xml create mode 100644 tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e7356d7f5..bc728d92f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ on: name: CI env: - COMPOSER_ROOT_VERSION: 12.4.x-dev + COMPOSER_ROOT_VERSION: 12.5.x-dev PHP_VERSION: 8.4 jobs: diff --git a/ChangeLog-12.4.md b/ChangeLog-12.5.md similarity index 84% rename from ChangeLog-12.4.md rename to ChangeLog-12.5.md index f4ffa216a..51e6e37f9 100644 --- a/ChangeLog-12.4.md +++ b/ChangeLog-12.5.md @@ -2,7 +2,11 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. -## [12.4.1] - 2025-MM-DD +## [12.5.0] - 2025-MM-DD + +### Added + +* Option to not generate the `` element for the XML report ### Changed @@ -11,11 +15,4 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1108](https://github.com/sebastianbergmann/php-code-coverage/pull/1108): Do not sort covered files data over and over * [#1109](https://github.com/sebastianbergmann/php-code-coverage/pull/1109): Represent line coverage data using objects -## [12.4.0] - 2025-09-24 - -### Added - -* [#1095](https://github.com/sebastianbergmann/php-code-coverage/pull/1095): Support for light/dark mode in HTML report - -[12.4.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.4.0...main -[12.4.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.3.8...12.4.0 +[12.5.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.4.0...main diff --git a/composer.json b/composer.json index 744507de0..65f2e5c32 100644 --- a/composer.json +++ b/composer.json @@ -61,7 +61,7 @@ }, "extra": { "branch-alias": { - "dev-main": "12.4.x-dev" + "dev-main": "12.5.x-dev" } } } diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index c3767088e..43a5b16e5 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -46,10 +46,12 @@ final class Facade private string $target; private Project $project; private readonly string $phpUnitVersion; + private readonly bool $includeSource; - public function __construct(string $version) + public function __construct(string $version, bool $includeSource = true) { $this->phpUnitVersion = $version; + $this->includeSource = $includeSource; } /** @@ -170,9 +172,11 @@ private function processFile(FileNode $file, Directory $context): void $coverage->finalize($tests); } - $fileReport->source()->setSourceCode( - file_get_contents($file->pathAsString()), - ); + if ($this->includeSource) { + $fileReport->source()->setSourceCode( + file_get_contents($file->pathAsString()), + ); + } $this->saveDocument($fileReport->asDom(), $file->id()); } diff --git a/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/BankAccount.php.xml b/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/BankAccount.php.xml new file mode 100644 index 000000000..69e03c916 --- /dev/null +++ b/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/BankAccount.php.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml b/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml new file mode 100644 index 000000000..6e551a135 --- /dev/null +++ b/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/tests/Report/XmlTest.php b/tests/tests/Report/XmlTest.php index 53deb784e..5fe031f09 100644 --- a/tests/tests/Report/XmlTest.php +++ b/tests/tests/Report/XmlTest.php @@ -47,6 +47,16 @@ public function testForBankAccountTest(): void $this->assertFilesEquals($expectedFilesPath, TEST_FILES_PATH . 'tmp'); } + public function testForBankAccountTestWithoutSource(): void + { + $expectedFilesPath = self::$TEST_REPORT_PATH_SOURCE . DIRECTORY_SEPARATOR . 'CoverageForBankAccountWithoutSource'; + + $xml = new Facade('1.0.0', false); + $xml->process($this->getLineCoverageForBankAccount(), TEST_FILES_PATH . 'tmp'); + + $this->assertFilesEquals($expectedFilesPath, TEST_FILES_PATH . 'tmp'); + } + public function testForFileWithIgnoredLines(): void { $expectedFilesPath = self::$TEST_REPORT_PATH_SOURCE . DIRECTORY_SEPARATOR . 'CoverageForFileWithIgnoredLines'; From 42545dd6eaa3f4931cf7740e457f56b629bba19b Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 28 Nov 2025 09:49:57 +0100 Subject: [PATCH 103/106] Closes #1127 --- ChangeLog-12.5.md | 1 + src/Node/Builder.php | 2 ++ src/Node/File.php | 17 ++++++++++++++++- src/Report/Xml/Facade.php | 3 ++- src/Report/Xml/Node.php | 3 ++- src/Report/Xml/Report.php | 5 ++++- .../CoverageForBankAccount/BankAccount.php.xml | 2 +- .../Report/XML/CoverageForBankAccount/index.xml | 2 +- .../BankAccount.php.xml | 2 +- .../index.xml | 2 +- .../index.xml | 2 +- ...ce_with_class_and_anonymous_function.php.xml | 2 +- .../CoverageForFileWithIgnoredLines/index.xml | 2 +- .../source_with_ignore.php.xml | 2 +- 14 files changed, 35 insertions(+), 12 deletions(-) diff --git a/ChangeLog-12.5.md b/ChangeLog-12.5.md index 51e6e37f9..fcf4d69aa 100644 --- a/ChangeLog-12.5.md +++ b/ChangeLog-12.5.md @@ -14,5 +14,6 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1107](https://github.com/sebastianbergmann/php-code-coverage/pull/1107): Do not sort code coverage data over and over * [#1108](https://github.com/sebastianbergmann/php-code-coverage/pull/1108): Do not sort covered files data over and over * [#1109](https://github.com/sebastianbergmann/php-code-coverage/pull/1109): Represent line coverage data using objects +* [#1127](https://github.com/sebastianbergmann/php-code-coverage/issues/1127): Add SHA-1 hash of content of SUT source file to XML report [12.5.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.4.0...main diff --git a/src/Node/Builder.php b/src/Node/Builder.php index 9a2efe145..7a5ba7165 100644 --- a/src/Node/Builder.php +++ b/src/Node/Builder.php @@ -17,6 +17,7 @@ use function explode; use function implode; use function is_file; +use function sha1_file; use function str_ends_with; use function str_replace; use function str_starts_with; @@ -76,6 +77,7 @@ private function addItems(Directory $root, array $items, array $tests): void new File( $key, $root, + sha1_file($filename), $value['lineCoverage'], $value['functionCoverage'], $tests, diff --git a/src/Node/File.php b/src/Node/File.php index 3c27fde30..a1b22dd11 100644 --- a/src/Node/File.php +++ b/src/Node/File.php @@ -34,6 +34,11 @@ */ final class File extends AbstractNode { + /** + * @var non-empty-string + */ + private string $sha1; + /** * @var array> */ @@ -80,16 +85,18 @@ final class File extends AbstractNode private array $codeUnitsByLine = []; /** + * @param non-empty-string $sha1 * @param array> $lineCoverageData * @param array $testData * @param array $classes * @param array $traits * @param array $functions */ - public function __construct(string $name, AbstractNode $parent, array $lineCoverageData, array $functionCoverageData, array $testData, array $classes, array $traits, array $functions, LinesOfCode $linesOfCode) + public function __construct(string $name, AbstractNode $parent, string $sha1, array $lineCoverageData, array $functionCoverageData, array $testData, array $classes, array $traits, array $functions, LinesOfCode $linesOfCode) { parent::__construct($name, $parent); + $this->sha1 = $sha1; $this->lineCoverageData = $lineCoverageData; $this->functionCoverageData = $functionCoverageData; $this->testData = $testData; @@ -103,6 +110,14 @@ public function count(): int return 1; } + /** + * @return non-empty-string + */ + public function sha1(): string + { + return $this->sha1; + } + /** * @return array> */ diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index 43a5b16e5..f31a1520d 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -142,6 +142,7 @@ private function processFile(FileNode $file, Directory $context): void $fileObject = $context->addFile( $file->name(), $file->id() . '.xml', + $file->sha1(), ); $this->setTotals($file, $fileObject->totals()); @@ -151,7 +152,7 @@ private function processFile(FileNode $file, Directory $context): void strlen($this->project->projectSourceDirectory()), ); - $fileReport = new Report($path); + $fileReport = new Report($path, $file->sha1()); $this->setTotals($file, $fileReport->totals()); diff --git a/src/Report/Xml/Node.php b/src/Report/Xml/Node.php index 86fe70df4..37023b448 100644 --- a/src/Report/Xml/Node.php +++ b/src/Report/Xml/Node.php @@ -58,7 +58,7 @@ public function addDirectory(string $name): Directory return new Directory($dirNode); } - public function addFile(string $name, string $href): File + public function addFile(string $name, string $href, string $hash): File { $fileNode = $this->dom->createElementNS( Facade::XML_NAMESPACE, @@ -67,6 +67,7 @@ public function addFile(string $name, string $href): File $fileNode->setAttribute('name', $name); $fileNode->setAttribute('href', $href); + $fileNode->setAttribute('hash', $hash); $this->contextNode()->appendChild($fileNode); return new File($fileNode); diff --git a/src/Report/Xml/Report.php b/src/Report/Xml/Report.php index ee9b401de..b57189d64 100644 --- a/src/Report/Xml/Report.php +++ b/src/Report/Xml/Report.php @@ -21,8 +21,9 @@ final class Report extends File { private readonly string $name; + private readonly string $sha1; - public function __construct(string $name) + public function __construct(string $name, string $sha1) { $dom = new DOMDocument; $dom->loadXML(''); @@ -35,12 +36,14 @@ public function __construct(string $name) parent::__construct($contextNode); $this->name = $name; + $this->sha1 = $sha1; } public function asDom(): DOMDocument { $this->contextNode()->setAttribute('name', basename($this->name)); $this->contextNode()->setAttribute('path', dirname($this->name)); + $this->contextNode()->setAttribute('hash', $this->sha1); return $this->dom; } diff --git a/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml b/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml index b49cdf8ed..b3589c8dd 100644 --- a/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml +++ b/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml @@ -1,6 +1,6 @@ - + diff --git a/tests/_files/Report/XML/CoverageForBankAccount/index.xml b/tests/_files/Report/XML/CoverageForBankAccount/index.xml index 6e551a135..48dd17e32 100644 --- a/tests/_files/Report/XML/CoverageForBankAccount/index.xml +++ b/tests/_files/Report/XML/CoverageForBankAccount/index.xml @@ -19,7 +19,7 @@ - + diff --git a/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/BankAccount.php.xml b/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/BankAccount.php.xml index 69e03c916..b7f0473d5 100644 --- a/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/BankAccount.php.xml +++ b/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/BankAccount.php.xml @@ -1,6 +1,6 @@ - + diff --git a/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml b/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml index 6e551a135..48dd17e32 100644 --- a/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml +++ b/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml @@ -19,7 +19,7 @@ - + diff --git a/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml b/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml index 3bfba4dda..97083250c 100644 --- a/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml +++ b/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml @@ -16,7 +16,7 @@ - + diff --git a/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml b/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml index 95d121dc8..2423be0ae 100644 --- a/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml +++ b/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml @@ -1,6 +1,6 @@ - + diff --git a/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml b/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml index a53b12c53..a6b8b62eb 100644 --- a/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml +++ b/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml @@ -16,7 +16,7 @@ - + diff --git a/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml b/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml index b862f3d1e..69941c405 100644 --- a/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml +++ b/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml @@ -1,6 +1,6 @@ - + From 1d846f1581ae5a55e992c51ba114d0e502f3058c Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Fri, 28 Nov 2025 19:18:50 +0100 Subject: [PATCH 104/106] Closes #1126 --- ChangeLog-12.5.md | 1 + src/CodeCoverage.php | 9 ++++--- src/Report/Xml/Tests.php | 2 ++ .../XML/CoverageForBankAccount/index.xml | 8 +++--- .../index.xml | 8 +++--- .../index.xml | 2 +- .../CoverageForFileWithIgnoredLines/index.xml | 2 +- tests/src/TestCase.php | 27 +++++++++++++++++++ tests/tests/CodeCoverageTest.php | 8 +++--- 9 files changed, 49 insertions(+), 18 deletions(-) diff --git a/ChangeLog-12.5.md b/ChangeLog-12.5.md index fcf4d69aa..7d6302b18 100644 --- a/ChangeLog-12.5.md +++ b/ChangeLog-12.5.md @@ -14,6 +14,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1107](https://github.com/sebastianbergmann/php-code-coverage/pull/1107): Do not sort code coverage data over and over * [#1108](https://github.com/sebastianbergmann/php-code-coverage/pull/1108): Do not sort covered files data over and over * [#1109](https://github.com/sebastianbergmann/php-code-coverage/pull/1109): Represent line coverage data using objects +* [#1126](https://github.com/sebastianbergmann/php-code-coverage/issues/1126): Add test execution time to `` elements under `projects/tests` in the XML reports index file * [#1127](https://github.com/sebastianbergmann/php-code-coverage/issues/1127): Add SHA-1 hash of content of SUT source file to XML report [12.5.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.4.0...main diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index ab9936ce7..6bc79638d 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -39,7 +39,7 @@ /** * Provides collection functionality for PHP code coverage information. * - * @phpstan-type TestType array{size: string, status: string} + * @phpstan-type TestType array{size: string, status: string, time: float} * @phpstan-type TargetedLines array> */ final class CodeCoverage @@ -189,11 +189,11 @@ public function start(string $id, ?TestSize $size = null, bool $clear = false): $this->cachedReport = null; } - public function stop(bool $append = true, ?TestStatus $status = null, null|false|TargetCollection $covers = null, ?TargetCollection $uses = null): RawCodeCoverageData + public function stop(bool $append = true, ?TestStatus $status = null, null|false|TargetCollection $covers = null, ?TargetCollection $uses = null, float $time = 0.0): RawCodeCoverageData { $data = $this->driver->stop(); - $this->append($data, null, $append, $status, $covers, $uses); + $this->append($data, null, $append, $status, $covers, $uses, $time); $this->currentId = null; $this->currentSize = null; @@ -207,7 +207,7 @@ public function stop(bool $append = true, ?TestStatus $status = null, null|false * @throws TestIdMissingException * @throws UnintentionallyCoveredCodeException */ - public function append(RawCodeCoverageData $rawData, ?string $id = null, bool $append = true, ?TestStatus $status = null, null|false|TargetCollection $covers = null, ?TargetCollection $uses = null): void + public function append(RawCodeCoverageData $rawData, ?string $id = null, bool $append = true, ?TestStatus $status = null, null|false|TargetCollection $covers = null, ?TargetCollection $uses = null, float $time = 0.0): void { if ($id === null) { $id = $this->currentId; @@ -280,6 +280,7 @@ public function append(RawCodeCoverageData $rawData, ?string $id = null, bool $a $this->tests[$id] = [ 'size' => $size->asString(), 'status' => $status->asString(), + 'time' => $time, ]; $this->data->markCodeAsExecutedByTestCase($id, $rawData); diff --git a/src/Report/Xml/Tests.php b/src/Report/Xml/Tests.php index 1760fdfa5..652cebe36 100644 --- a/src/Report/Xml/Tests.php +++ b/src/Report/Xml/Tests.php @@ -10,6 +10,7 @@ namespace SebastianBergmann\CodeCoverage\Report\Xml; use function assert; +use function sprintf; use DOMElement; use SebastianBergmann\CodeCoverage\CodeCoverage; @@ -44,5 +45,6 @@ public function addTest(string $test, array $result): void $node->setAttribute('name', $test); $node->setAttribute('size', $result['size']); $node->setAttribute('status', $result['status']); + $node->setAttribute('time', sprintf('%F', $result['time'])); } } diff --git a/tests/_files/Report/XML/CoverageForBankAccount/index.xml b/tests/_files/Report/XML/CoverageForBankAccount/index.xml index 48dd17e32..6c70139ff 100644 --- a/tests/_files/Report/XML/CoverageForBankAccount/index.xml +++ b/tests/_files/Report/XML/CoverageForBankAccount/index.xml @@ -6,10 +6,10 @@ - - - - + + + + diff --git a/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml b/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml index 48dd17e32..6c70139ff 100644 --- a/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml +++ b/tests/_files/Report/XML/CoverageForBankAccountWithoutSource/index.xml @@ -6,10 +6,10 @@ - - - - + + + + diff --git a/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml b/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml index 97083250c..cd6610ead 100644 --- a/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml +++ b/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml @@ -6,7 +6,7 @@ - + diff --git a/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml b/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml index a6b8b62eb..ff32be810 100644 --- a/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml +++ b/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml @@ -6,7 +6,7 @@ - + diff --git a/tests/src/TestCase.php b/tests/src/TestCase.php index f8273d17c..4bd21886d 100644 --- a/tests/src/TestCase.php +++ b/tests/src/TestCase.php @@ -1031,6 +1031,7 @@ protected function getLineCoverageForBankAccount(): CodeCoverage Target::forMethod(BankAccount::class, 'getBalance'), ], ), + time: 0.1, ); $coverage->start( @@ -1045,6 +1046,7 @@ protected function getLineCoverageForBankAccount(): CodeCoverage Target::forMethod(BankAccount::class, 'withdrawMoney'), ], ), + time: 0.2, ); $coverage->start( @@ -1059,6 +1061,7 @@ protected function getLineCoverageForBankAccount(): CodeCoverage Target::forMethod(BankAccount::class, 'depositMoney'), ], ), + time: 0.3, ); $coverage->start( @@ -1075,6 +1078,7 @@ protected function getLineCoverageForBankAccount(): CodeCoverage Target::forMethod(BankAccount::class, 'withdrawMoney'), ], ), + time: 0.4, ); return $coverage; @@ -1110,6 +1114,7 @@ protected function getPathCoverageForBankAccount(): CodeCoverage Target::forMethod(BankAccount::class, 'getBalance'), ], ), + time: 0.5, ); $coverage->start( @@ -1124,6 +1129,7 @@ protected function getPathCoverageForBankAccount(): CodeCoverage Target::forMethod(BankAccount::class, 'withdrawMoney'), ], ), + time: 0.6, ); $coverage->start( @@ -1138,6 +1144,7 @@ protected function getPathCoverageForBankAccount(): CodeCoverage Target::forMethod(BankAccount::class, 'depositMoney'), ], ), + time: 0.7, ); $coverage->start( @@ -1154,6 +1161,7 @@ protected function getPathCoverageForBankAccount(): CodeCoverage Target::forMethod(BankAccount::class, 'withdrawMoney'), ], ), + time: 0.8, ); return $coverage; @@ -1276,6 +1284,7 @@ protected function getLineCoverageForNamespacedBankAccount(): CodeCoverage TargetCollection::fromArray([ Target::forMethod(BankAccountTrait::class, 'withdrawMoney'), ]), + time: 0.9, ); $coverage->start( @@ -1288,6 +1297,7 @@ protected function getLineCoverageForNamespacedBankAccount(): CodeCoverage TargetCollection::fromArray([ Target::forMethod(BankAccountTrait::class, 'depositMoney'), ]), + time: 1.0, ); $coverage->start( @@ -1302,6 +1312,7 @@ protected function getLineCoverageForNamespacedBankAccount(): CodeCoverage Target::forMethod(BankAccountTrait::class, 'depositMoney'), Target::forMethod(BankAccountTrait::class, 'withdrawMoney'), ]), + time: 1.1, ); return $coverage; @@ -1335,6 +1346,7 @@ protected function getLineCoverageForBankAccountForFirstTwoTests(): CodeCoverage Target::forMethod(BankAccount::class, 'getBalance'), ], ), + time: 1.2, ); $coverage->start( @@ -1349,6 +1361,7 @@ protected function getLineCoverageForBankAccountForFirstTwoTests(): CodeCoverage Target::forMethod(BankAccount::class, 'withdrawMoney'), ], ), + time: 1.3, ); return $coverage; @@ -1380,6 +1393,7 @@ protected function getLineCoverageForBankAccountForLastTwoTests(): CodeCoverage Target::forMethod(BankAccount::class, 'depositMoney'), ], ), + time: 1.4, ); $coverage->start( @@ -1396,6 +1410,7 @@ protected function getLineCoverageForBankAccountForLastTwoTests(): CodeCoverage Target::forMethod(BankAccount::class, 'withdrawMoney'), ], ), + time: 1.5, ); return $coverage; @@ -1491,6 +1506,7 @@ protected function getPathCoverageForBankAccountForFirstTwoTests(): CodeCoverage Target::forMethod(BankAccount::class, 'getBalance'), ], ), + time: 1.6, ); $coverage->start( @@ -1505,6 +1521,7 @@ protected function getPathCoverageForBankAccountForFirstTwoTests(): CodeCoverage Target::forMethod(BankAccount::class, 'withdrawMoney'), ], ), + time: 1.7, ); return $coverage; @@ -1538,6 +1555,7 @@ protected function getPathCoverageForBankAccountForLastTwoTests(): CodeCoverage Target::forMethod(BankAccount::class, 'depositMoney'), ], ), + time: 1.8, ); $coverage->start( @@ -1554,6 +1572,7 @@ protected function getPathCoverageForBankAccountForLastTwoTests(): CodeCoverage Target::forMethod(BankAccount::class, 'withdrawMoney'), ], ), + time: 1.9, ); return $coverage; @@ -1947,6 +1966,7 @@ protected function getCoverageForFilesWithUncoveredIncluded(): CodeCoverage TargetCollection::fromArray([ Target::forMethod(BankAccount::class, 'getBalance'), ]), + time: 2.0, ); $coverage->start( @@ -1959,6 +1979,7 @@ protected function getCoverageForFilesWithUncoveredIncluded(): CodeCoverage TargetCollection::fromArray([ Target::forMethod(BankAccount::class, 'withdrawMoney'), ]), + time: 2.1, ); $coverage->start( @@ -1971,6 +1992,7 @@ protected function getCoverageForFilesWithUncoveredIncluded(): CodeCoverage TargetCollection::fromArray([ Target::forMethod(BankAccount::class, 'depositMoney'), ]), + time: 2.2, ); $coverage->start( @@ -1985,6 +2007,7 @@ protected function getCoverageForFilesWithUncoveredIncluded(): CodeCoverage Target::forMethod(BankAccount::class, 'depositMoney'), Target::forMethod(BankAccount::class, 'withdrawMoney'), ]), + time: 2.3, ); return $coverage; @@ -2018,6 +2041,7 @@ protected function getCoverageForFilesWithUncoveredExcluded(): CodeCoverage TargetCollection::fromArray([ Target::forMethod(BankAccount::class, 'getBalance'), ]), + time: 2.4, ); $coverage->start( @@ -2030,6 +2054,7 @@ protected function getCoverageForFilesWithUncoveredExcluded(): CodeCoverage TargetCollection::fromArray([ Target::forMethod(BankAccount::class, 'withdrawMoney'), ]), + time: 2.5, ); $coverage->start( @@ -2042,6 +2067,7 @@ protected function getCoverageForFilesWithUncoveredExcluded(): CodeCoverage TargetCollection::fromArray([ Target::forMethod(BankAccount::class, 'depositMoney'), ]), + time: 2.6, ); $coverage->start( @@ -2056,6 +2082,7 @@ protected function getCoverageForFilesWithUncoveredExcluded(): CodeCoverage Target::forMethod(BankAccount::class, 'depositMoney'), Target::forMethod(BankAccount::class, 'withdrawMoney'), ]), + time: 2.7, ); return $coverage; diff --git a/tests/tests/CodeCoverageTest.php b/tests/tests/CodeCoverageTest.php index 32f2f1de0..895be4588 100644 --- a/tests/tests/CodeCoverageTest.php +++ b/tests/tests/CodeCoverageTest.php @@ -48,10 +48,10 @@ public function testCollect(): void $this->assertEquals( [ - 'BankAccountTest::testBalanceIsInitiallyZero' => ['size' => 'unknown', 'status' => 'unknown'], - 'BankAccountTest::testBalanceCannotBecomeNegative' => ['size' => 'unknown', 'status' => 'unknown'], - 'BankAccountTest::testBalanceCannotBecomeNegative2' => ['size' => 'unknown', 'status' => 'unknown'], - 'BankAccountTest::testDepositWithdrawMoney' => ['size' => 'unknown', 'status' => 'unknown'], + 'BankAccountTest::testBalanceIsInitiallyZero' => ['size' => 'unknown', 'status' => 'unknown', 'time' => 0.1], + 'BankAccountTest::testBalanceCannotBecomeNegative' => ['size' => 'unknown', 'status' => 'unknown', 'time' => 0.2], + 'BankAccountTest::testBalanceCannotBecomeNegative2' => ['size' => 'unknown', 'status' => 'unknown', 'time' => 0.3], + 'BankAccountTest::testDepositWithdrawMoney' => ['size' => 'unknown', 'status' => 'unknown', 'time' => 0.4], ], $coverage->getTests(), ); From fa7e684ec57dfdec673d2da40a52b248910744a7 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Sat, 29 Nov 2025 08:15:03 +0100 Subject: [PATCH 105/106] Update dependencies --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 65f2e5c32..578037545 100644 --- a/composer.json +++ b/composer.json @@ -33,17 +33,17 @@ "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.6.1", + "nikic/php-parser": "^5.6.2", "phpunit/php-file-iterator": "^6.0", "phpunit/php-text-template": "^5.0", "sebastian/complexity": "^5.0", "sebastian/environment": "^8.0.3", "sebastian/lines-of-code": "^4.0", "sebastian/version": "^6.0", - "theseer/tokenizer": "^1.2.3" + "theseer/tokenizer": "^1.3.1" }, "require-dev": { - "phpunit/phpunit": "^12.3.7" + "phpunit/phpunit": "^12.4.4" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", From bca180c050dd3ae15f87c26d25cabb34fe1a0a5a Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Sat, 29 Nov 2025 08:15:54 +0100 Subject: [PATCH 106/106] Prepare release --- ChangeLog-12.5.md | 4 ++-- src/Version.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ChangeLog-12.5.md b/ChangeLog-12.5.md index 7d6302b18..4d721c082 100644 --- a/ChangeLog-12.5.md +++ b/ChangeLog-12.5.md @@ -2,7 +2,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. -## [12.5.0] - 2025-MM-DD +## [12.5.0] - 2025-11-29 ### Added @@ -17,4 +17,4 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt * [#1126](https://github.com/sebastianbergmann/php-code-coverage/issues/1126): Add test execution time to `` elements under `projects/tests` in the XML reports index file * [#1127](https://github.com/sebastianbergmann/php-code-coverage/issues/1127): Add SHA-1 hash of content of SUT source file to XML report -[12.5.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.4.0...main +[12.5.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/12.4.0...12.5.0 diff --git a/src/Version.php b/src/Version.php index a52b872a3..0d5b4aee2 100644 --- a/src/Version.php +++ b/src/Version.php @@ -19,7 +19,7 @@ final class Version public static function id(): string { if (self::$version === '') { - self::$version = (new VersionId('12.4.0', dirname(__DIR__)))->asString(); + self::$version = (new VersionId('12.5.0', dirname(__DIR__)))->asString(); } return self::$version;

P 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 uAFQ1?{Plrp Date: Sun, 16 Nov 2025 11:16:47 +0100 Subject: [PATCH 053/106] Update PHP-CS-Fixer configuration --- .php-cs-fixer.dist.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 85287939c..919000d83 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -350,7 +350,7 @@ ], 'types_spaces' => true, 'unary_operator_spaces' => true, - 'visibility_required' => [ + 'modifier_keywords' => [ 'elements' => [ 'const', 'method', From 6cda094664473bc2ee54f9fe3d30e86c3206695d Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 19 Nov 2025 07:54:58 +0100 Subject: [PATCH 054/106] Extract xml namespace into global constant --- src/Report/Xml/BuildInformation.php | 4 ++-- src/Report/Xml/Coverage.php | 2 +- src/Report/Xml/Facade.php | 1 + src/Report/Xml/File.php | 8 ++++---- src/Report/Xml/Node.php | 6 +++--- src/Report/Xml/Project.php | 10 +++++----- src/Report/Xml/Report.php | 10 +++++----- src/Report/Xml/Tests.php | 2 +- src/Report/Xml/Totals.php | 10 +++++----- src/Report/Xml/Unit.php | 6 +++--- 10 files changed, 30 insertions(+), 29 deletions(-) diff --git a/src/Report/Xml/BuildInformation.php b/src/Report/Xml/BuildInformation.php index dba230123..c91e5989e 100644 --- a/src/Report/Xml/BuildInformation.php +++ b/src/Report/Xml/BuildInformation.php @@ -62,14 +62,14 @@ public function setGeneratorVersions(string $phpUnitVersion, string $coverageVer private function nodeByName(string $name): DOMElement { $node = $this->contextNode->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, $name, )->item(0); if ($node === null) { $node = $this->contextNode->appendChild( $this->contextNode->ownerDocument->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, $name, ), ); diff --git a/src/Report/Xml/Coverage.php b/src/Report/Xml/Coverage.php index 812672081..9462780be 100644 --- a/src/Report/Xml/Coverage.php +++ b/src/Report/Xml/Coverage.php @@ -30,7 +30,7 @@ public function finalize(array $tests): void { $writer = new XMLWriter; $writer->openMemory(); - $writer->startElementNs(null, $this->contextNode->nodeName, 'https://schema.phpunit.de/coverage/1.0'); + $writer->startElementNs(null, $this->contextNode->nodeName, Facade::XML_NAMESPACE); $writer->writeAttribute('nr', $this->line); foreach ($tests as $test) { diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index 30c35e269..85d5cd5cf 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -43,6 +43,7 @@ */ final class Facade { + public const string XML_NAMESPACE = 'https://schema.phpunit.de/coverage/1.0'; private string $target; private Project $project; private readonly string $phpUnitVersion; diff --git a/src/Report/Xml/File.php b/src/Report/Xml/File.php index 4a3fea008..0d1e73955 100644 --- a/src/Report/Xml/File.php +++ b/src/Report/Xml/File.php @@ -34,7 +34,7 @@ public function totals(): Totals if ($totalsContainer === null) { $totalsContainer = $this->contextNode->appendChild( $this->dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'totals', ), ); @@ -48,14 +48,14 @@ public function totals(): Totals public function lineCoverage(string $line): Coverage { $coverage = $this->contextNode->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'coverage', )->item(0); if ($coverage === null) { $coverage = $this->contextNode->appendChild( $this->dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'coverage', ), ); @@ -63,7 +63,7 @@ public function lineCoverage(string $line): Coverage $lineNode = $coverage->appendChild( $this->dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'line', ), ); diff --git a/src/Report/Xml/Node.php b/src/Report/Xml/Node.php index e41197a08..e1f62ebac 100644 --- a/src/Report/Xml/Node.php +++ b/src/Report/Xml/Node.php @@ -38,7 +38,7 @@ public function totals(): Totals if ($totalsContainer === null) { $totalsContainer = $this->contextNode()->appendChild( $this->dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'totals', ), ); @@ -52,7 +52,7 @@ public function totals(): Totals public function addDirectory(string $name): Directory { $dirNode = $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'directory', ); @@ -65,7 +65,7 @@ public function addDirectory(string $name): Directory public function addFile(string $name, string $href): File { $fileNode = $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'file', ); diff --git a/src/Report/Xml/Project.php b/src/Report/Xml/Project.php index 21b5a2ce1..4c2295c10 100644 --- a/src/Report/Xml/Project.php +++ b/src/Report/Xml/Project.php @@ -35,14 +35,14 @@ public function projectSourceDirectory(): string public function buildInformation(): BuildInformation { $buildNode = $this->dom()->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'build', )->item(0); if ($buildNode === null) { $buildNode = $this->dom()->documentElement->appendChild( $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'build', ), ); @@ -56,14 +56,14 @@ public function buildInformation(): BuildInformation public function tests(): Tests { $testsNode = $this->contextNode()->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'tests', )->item(0); if ($testsNode === null) { $testsNode = $this->contextNode()->appendChild( $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'tests', ), ); @@ -86,7 +86,7 @@ private function init(): void $this->setContextNode( $dom->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'project', )->item(0), ); diff --git a/src/Report/Xml/Report.php b/src/Report/Xml/Report.php index f39ab860c..34f882171 100644 --- a/src/Report/Xml/Report.php +++ b/src/Report/Xml/Report.php @@ -26,7 +26,7 @@ public function __construct(string $name) $dom->loadXML(''); $contextNode = $dom->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'file', )->item(0); @@ -44,7 +44,7 @@ public function functionObject(string $name): Method { $node = $this->contextNode()->appendChild( $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'function', ), ); @@ -67,14 +67,14 @@ public function traitObject(string $name): Unit public function source(): Source { $source = $this->contextNode()->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'source', )->item(0); if ($source === null) { $source = $this->contextNode()->appendChild( $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'source', ), ); @@ -95,7 +95,7 @@ private function unitObject(string $tagName, string $name): Unit { $node = $this->contextNode()->appendChild( $this->dom()->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, $tagName, ), ); diff --git a/src/Report/Xml/Tests.php b/src/Report/Xml/Tests.php index c9e9c48ef..1760fdfa5 100644 --- a/src/Report/Xml/Tests.php +++ b/src/Report/Xml/Tests.php @@ -34,7 +34,7 @@ public function addTest(string $test, array $result): void { $node = $this->contextNode->appendChild( $this->contextNode->ownerDocument->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'test', ), ); diff --git a/src/Report/Xml/Totals.php b/src/Report/Xml/Totals.php index 8e285a78e..28612f7aa 100644 --- a/src/Report/Xml/Totals.php +++ b/src/Report/Xml/Totals.php @@ -29,27 +29,27 @@ public function __construct(DOMElement $container) $dom = $container->ownerDocument; $this->linesNode = $dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'lines', ); $this->methodsNode = $dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'methods', ); $this->functionsNode = $dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'functions', ); $this->classesNode = $dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'classes', ); $this->traitsNode = $dom->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'traits', ); diff --git a/src/Report/Xml/Unit.php b/src/Report/Xml/Unit.php index a00f85d39..84e189fbf 100644 --- a/src/Report/Xml/Unit.php +++ b/src/Report/Xml/Unit.php @@ -41,14 +41,14 @@ public function setCrap(float $crap): void public function setNamespace(string $namespace): void { $node = $this->contextNode->getElementsByTagNameNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'namespace', )->item(0); if ($node === null) { $node = $this->contextNode->appendChild( $this->contextNode->ownerDocument->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'namespace', ), ); @@ -63,7 +63,7 @@ public function addMethod(string $name): Method { $node = $this->contextNode->appendChild( $this->contextNode->ownerDocument->createElementNS( - 'https://schema.phpunit.de/coverage/1.0', + Facade::XML_NAMESPACE, 'method', ), ); From a1b0ae52de3c31dcdcc6142d99c22cc39f6b687e Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 07:23:38 +0100 Subject: [PATCH 055/106] Project: Make parent::__construct() call explicit --- src/Report/Xml/Project.php | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/Report/Xml/Project.php b/src/Report/Xml/Project.php index 4c2295c10..7d62c935c 100644 --- a/src/Report/Xml/Project.php +++ b/src/Report/Xml/Project.php @@ -23,7 +23,16 @@ final class Project extends Node */ public function __construct(string $directory) { - $this->init(); + $dom = new DOMDocument; + $dom->loadXML(''); + + parent::__construct( + $dom->getElementsByTagNameNS( + Facade::XML_NAMESPACE, + 'project', + )->item(0), + ); + $this->setProjectSourceDirectory($directory); } @@ -79,19 +88,6 @@ public function asDom(): DOMDocument return $this->dom(); } - private function init(): void - { - $dom = new DOMDocument; - $dom->loadXML(''); - - $this->setContextNode( - $dom->getElementsByTagNameNS( - Facade::XML_NAMESPACE, - 'project', - )->item(0), - ); - } - private function setProjectSourceDirectory(string $name): void { $this->contextNode()->setAttribute('source', $name); From 2e645117c8ef9743e95e8e45e6ccea9be9c16f66 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 07:25:29 +0100 Subject: [PATCH 056/106] Fix build --- src/Report/Xml/Project.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Report/Xml/Project.php b/src/Report/Xml/Project.php index 7d62c935c..5f0ada7e1 100644 --- a/src/Report/Xml/Project.php +++ b/src/Report/Xml/Project.php @@ -18,9 +18,6 @@ */ final class Project extends Node { - /** - * @phpstan-ignore constructor.missingParentCall - */ public function __construct(string $directory) { $dom = new DOMDocument; From bc415069422acc95960253a460d15fdc5171dfe2 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 07:34:00 +0100 Subject: [PATCH 057/106] Project: Reduce dependency on DOM --- src/Report/Xml/Project.php | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Report/Xml/Project.php b/src/Report/Xml/Project.php index 5f0ada7e1..160170320 100644 --- a/src/Report/Xml/Project.php +++ b/src/Report/Xml/Project.php @@ -18,6 +18,8 @@ */ final class Project extends Node { + private readonly string $directory; + public function __construct(string $directory) { $dom = new DOMDocument; @@ -30,12 +32,12 @@ public function __construct(string $directory) )->item(0), ); - $this->setProjectSourceDirectory($directory); + $this->directory = $directory; } public function projectSourceDirectory(): string { - return $this->contextNode()->getAttribute('source'); + return $this->directory; } public function buildInformation(): BuildInformation @@ -82,11 +84,8 @@ public function tests(): Tests public function asDom(): DOMDocument { - return $this->dom(); - } + $this->contextNode()->setAttribute('source', $this->directory); - private function setProjectSourceDirectory(string $name): void - { - $this->contextNode()->setAttribute('source', $name); + return $this->dom(); } } From 50580411002dd01019175cbf0a548e36053b240e Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 07:44:37 +0100 Subject: [PATCH 058/106] Report: Reduce dependency on DOM --- src/Report/Xml/Report.php | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Report/Xml/Report.php b/src/Report/Xml/Report.php index 34f882171..5a9c622f0 100644 --- a/src/Report/Xml/Report.php +++ b/src/Report/Xml/Report.php @@ -20,6 +20,8 @@ */ final class Report extends File { + private readonly string $name; + public function __construct(string $name) { $dom = new DOMDocument; @@ -32,11 +34,14 @@ public function __construct(string $name) parent::__construct($contextNode); - $this->setName($name); + $this->name = $name; } public function asDom(): DOMDocument { + $this->contextNode()->setAttribute('name', basename($this->name)); + $this->contextNode()->setAttribute('path', dirname($this->name)); + return $this->dom(); } @@ -85,12 +90,6 @@ public function source(): Source return new Source($source); } - private function setName(string $name): void - { - $this->contextNode()->setAttribute('name', basename($name)); - $this->contextNode()->setAttribute('path', dirname($name)); - } - private function unitObject(string $tagName, string $name): Unit { $node = $this->contextNode()->appendChild( From c1decf1542254b69f4b920ebd59a71a0e3bbf1cd Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 08:00:35 +0100 Subject: [PATCH 059/106] Unit: Move always available information into __construct() Reducing the api surface along the way --- src/Report/Xml/Facade.php | 27 +++++++++++-------- src/Report/Xml/Report.php | 56 +++++++++++++++++++++++++-------------- src/Report/Xml/Unit.php | 49 +++++++++++----------------------- 3 files changed, 68 insertions(+), 64 deletions(-) diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index 85d5cd5cf..126b8c53d 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -182,20 +182,25 @@ private function processFile(FileNode $file, Directory $context): void private function processUnit(array $unit, Report $report): void { if (isset($unit['className'])) { - $unitObject = $report->classObject($unit['className']); + $unitObject = $report->classObject( + $unit['className'], + $unit['namespace'], + $unit['startLine'], + $unit['executableLines'], + $unit['executedLines'], + (float) $unit['crap'], + ); } else { - $unitObject = $report->traitObject($unit['traitName']); + $unitObject = $report->traitObject( + $unit['traitName'], + $unit['namespace'], + $unit['startLine'], + $unit['executableLines'], + $unit['executedLines'], + (float) $unit['crap'], + ); } - $unitObject->setLines( - $unit['startLine'], - $unit['executableLines'], - $unit['executedLines'], - ); - - $unitObject->setCrap((float) $unit['crap']); - $unitObject->setNamespace($unit['namespace']); - foreach ($unit['methods'] as $method) { $methodObject = $unitObject->addMethod($method['methodName']); $methodObject->setSignature($method['signature']); diff --git a/src/Report/Xml/Report.php b/src/Report/Xml/Report.php index 5a9c622f0..601e466c3 100644 --- a/src/Report/Xml/Report.php +++ b/src/Report/Xml/Report.php @@ -59,14 +59,44 @@ public function functionObject(string $name): Method return new Method($node, $name); } - public function classObject(string $name): Unit - { - return $this->unitObject('class', $name); + public function classObject( + string $name, + string $namespace, + int $start, + int $executable, + int $executed, + float $crap + ): Unit { + $node = $this->contextNode()->appendChild( + $this->dom()->createElementNS( + Facade::XML_NAMESPACE, + 'class', + ), + ); + + assert($node instanceof DOMElement); + + return new Unit($node, $name, $namespace, $start, $executable, $executed, $crap); } - public function traitObject(string $name): Unit - { - return $this->unitObject('trait', $name); + public function traitObject( + string $name, + string $namespace, + int $start, + int $executable, + int $executed, + float $crap + ): Unit { + $node = $this->contextNode()->appendChild( + $this->dom()->createElementNS( + Facade::XML_NAMESPACE, + 'trait', + ), + ); + + assert($node instanceof DOMElement); + + return new Unit($node, $name, $namespace, $start, $executable, $executed, $crap); } public function source(): Source @@ -89,18 +119,4 @@ public function source(): Source return new Source($source); } - - private function unitObject(string $tagName, string $name): Unit - { - $node = $this->contextNode()->appendChild( - $this->dom()->createElementNS( - Facade::XML_NAMESPACE, - $tagName, - ), - ); - - assert($node instanceof DOMElement); - - return new Unit($node, $name); - } } diff --git a/src/Report/Xml/Unit.php b/src/Report/Xml/Unit.php index 84e189fbf..35175f30b 100644 --- a/src/Report/Xml/Unit.php +++ b/src/Report/Xml/Unit.php @@ -19,41 +19,29 @@ { private DOMElement $contextNode; - public function __construct(DOMElement $context, string $name) - { + public function __construct( + DOMElement $context, + string $name, + string $namespace, + int $start, + int $executable, + int $executed, + float $crap + ) { $this->contextNode = $context; - $this->setName($name); - } - - public function setLines(int $start, int $executable, int $executed): void - { + $this->contextNode->setAttribute('name', $name); $this->contextNode->setAttribute('start', (string) $start); $this->contextNode->setAttribute('executable', (string) $executable); $this->contextNode->setAttribute('executed', (string) $executed); - } - - public function setCrap(float $crap): void - { $this->contextNode->setAttribute('crap', (string) $crap); - } - - public function setNamespace(string $namespace): void - { - $node = $this->contextNode->getElementsByTagNameNS( - Facade::XML_NAMESPACE, - 'namespace', - )->item(0); - - if ($node === null) { - $node = $this->contextNode->appendChild( - $this->contextNode->ownerDocument->createElementNS( - Facade::XML_NAMESPACE, - 'namespace', - ), - ); - } + $node = $this->contextNode->appendChild( + $this->contextNode->ownerDocument->createElementNS( + Facade::XML_NAMESPACE, + 'namespace', + ), + ); assert($node instanceof DOMElement); $node->setAttribute('name', $namespace); @@ -72,9 +60,4 @@ public function addMethod(string $name): Method return new Method($node, $name); } - - private function setName(string $name): void - { - $this->contextNode->setAttribute('name', $name); - } } From 8e8a02b1c2119f33c513e73e90c2a0817c664a24 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Nov 2025 07:05:24 +0100 Subject: [PATCH 060/106] Represent line-coverage data in objects --- src/Data/ProcessedFunctionType.php | 32 ++++ src/Data/ProcessedMethodType.php | 32 ++++ src/Node/AbstractNode.php | 4 +- src/Node/Directory.php | 2 +- src/Node/File.php | 243 +++++++++++-------------- src/Report/Clover.php | 18 +- src/Report/Cobertura.php | 38 ++-- src/Report/Crap4j.php | 16 +- src/Report/Html/Renderer/Dashboard.php | 35 ++-- src/Report/Html/Renderer/File.php | 49 +++-- src/Report/OpenClover.php | 18 +- src/Report/Text.php | 16 +- src/Report/Xml/Facade.php | 31 ++-- 13 files changed, 285 insertions(+), 249 deletions(-) create mode 100644 src/Data/ProcessedFunctionType.php create mode 100644 src/Data/ProcessedMethodType.php diff --git a/src/Data/ProcessedFunctionType.php b/src/Data/ProcessedFunctionType.php new file mode 100644 index 000000000..6ab07d714 --- /dev/null +++ b/src/Data/ProcessedFunctionType.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +final class ProcessedFunctionType +{ + public function __construct( + public string $functionName, + public string $namespace, + public string $signature, + public int $startLine, + public int $endLine, + public int $executableLines, + public int $executedLines, + public int $executableBranches, + public int $executedBranches, + public int $executablePaths, + public int $executedPaths, + public int $ccn, + public float|int $coverage, + public int|string $crap, + public string $link, + ) { + } +} diff --git a/src/Data/ProcessedMethodType.php b/src/Data/ProcessedMethodType.php new file mode 100644 index 000000000..63353aefd --- /dev/null +++ b/src/Data/ProcessedMethodType.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +final class ProcessedMethodType +{ + public function __construct( + public string $methodName, + public string $visibility, + public string $signature, + public int $startLine, + public int $endLine, + public int $executableLines, + public int $executedLines, + public int $executableBranches, + public int $executedBranches, + public int $executablePaths, + public int $executedPaths, + public int $ccn, + public float|int $coverage, + public int|string $crap, + public string $link, + ) { + } +} diff --git a/src/Node/AbstractNode.php b/src/Node/AbstractNode.php index 7e82a3daf..8cd612bf0 100644 --- a/src/Node/AbstractNode.php +++ b/src/Node/AbstractNode.php @@ -15,13 +15,13 @@ use function str_replace; use function substr; use Countable; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; use SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode; use SebastianBergmann\CodeCoverage\Util\Percentage; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage * - * @phpstan-import-type ProcessedFunctionType from File * @phpstan-import-type ProcessedClassType from File * @phpstan-import-type ProcessedTraitType from File */ @@ -190,7 +190,7 @@ public function cyclomaticComplexity(): int } foreach ($this->functions() as $function) { - $ccn += $function['ccn']; + $ccn += $function->ccn; } return $ccn; diff --git a/src/Node/Directory.php b/src/Node/Directory.php index 2802f93ab..7ad54ef5c 100644 --- a/src/Node/Directory.php +++ b/src/Node/Directory.php @@ -14,12 +14,12 @@ use function count; use IteratorAggregate; use RecursiveIteratorIterator; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; use SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode; /** * @template-implements IteratorAggregate * - * @phpstan-import-type ProcessedFunctionType from File * @phpstan-import-type ProcessedClassType from File * @phpstan-import-type ProcessedTraitType from File * diff --git a/src/Node/File.php b/src/Node/File.php index 54ee70b4a..8408fee92 100644 --- a/src/Node/File.php +++ b/src/Node/File.php @@ -13,6 +13,8 @@ use function count; use function range; use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; +use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; use SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult; use SebastianBergmann\CodeCoverage\StaticAnalysis\Class_; use SebastianBergmann\CodeCoverage\StaticAnalysis\Function_; @@ -26,40 +28,6 @@ * @phpstan-import-type TestType from CodeCoverage * @phpstan-import-type LinesType from AnalysisResult * - * @phpstan-type ProcessedFunctionType array{ - * functionName: string, - * namespace: string, - * signature: string, - * startLine: int, - * endLine: int, - * executableLines: int, - * executedLines: int, - * executableBranches: int, - * executedBranches: int, - * executablePaths: int, - * executedPaths: int, - * ccn: int, - * coverage: int|float, - * crap: int|string, - * link: string - * } - * @phpstan-type ProcessedMethodType array{ - * methodName: string, - * visibility: string, - * signature: string, - * startLine: int, - * endLine: int, - * executableLines: int, - * executedLines: int, - * executableBranches: int, - * executedBranches: int, - * executablePaths: int, - * executedPaths: int, - * ccn: int, - * coverage: float|int, - * crap: int|string, - * link: string - * } * @phpstan-type ProcessedClassType array{ * className: string, * namespace: string, @@ -136,7 +104,7 @@ final class File extends AbstractNode private ?int $numTestedFunctions = null; /** - * @var array + * @var array */ private array $codeUnitsByLine = []; @@ -251,7 +219,7 @@ public function numberOfClasses(): int foreach ($this->classes as $class) { foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0) { + if ($method->executableLines > 0) { $this->numClasses++; continue 2; @@ -275,7 +243,7 @@ public function numberOfTraits(): int foreach ($this->traits as $trait) { foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0) { + if ($method->executableLines > 0) { $this->numTraits++; continue 2; @@ -299,7 +267,7 @@ public function numberOfMethods(): int foreach ($this->classes as $class) { foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0) { + if ($method->executableLines > 0) { $this->numMethods++; } } @@ -307,7 +275,7 @@ public function numberOfMethods(): int foreach ($this->traits as $trait) { foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0) { + if ($method->executableLines > 0) { $this->numMethods++; } } @@ -324,8 +292,8 @@ public function numberOfTestedMethods(): int foreach ($this->classes as $class) { foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0 && - $method['coverage'] === 100) { + if ($method->executableLines > 0 && + $method->coverage === 100) { $this->numTestedMethods++; } } @@ -333,8 +301,8 @@ public function numberOfTestedMethods(): int foreach ($this->traits as $trait) { foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0 && - $method['coverage'] === 100) { + if ($method->executableLines > 0 && + $method->coverage === 100) { $this->numTestedMethods++; } } @@ -355,8 +323,8 @@ public function numberOfTestedFunctions(): int $this->numTestedFunctions = 0; foreach ($this->functions as $function) { - if ($function['executableLines'] > 0 && - $function['coverage'] === 100) { + if ($function->executableLines > 0 && + $function->coverage === 100) { $this->numTestedFunctions++; } } @@ -383,7 +351,11 @@ private function calculateStatistics(array $classes, array $traits, array $funct foreach (range(1, $this->linesOfCode->linesOfCode()) as $lineNumber) { if (isset($this->lineCoverageData[$lineNumber])) { foreach ($this->codeUnitsByLine[$lineNumber] as &$codeUnit) { - $codeUnit['executableLines']++; + if ($codeUnit instanceof ProcessedMethodType || $codeUnit instanceof ProcessedFunctionType) { + $codeUnit->executableLines++; + } else { + $codeUnit['executableLines']++; + } } unset($codeUnit); @@ -392,7 +364,11 @@ private function calculateStatistics(array $classes, array $traits, array $funct if (count($this->lineCoverageData[$lineNumber]) > 0) { foreach ($this->codeUnitsByLine[$lineNumber] as &$codeUnit) { - $codeUnit['executedLines']++; + if ($codeUnit instanceof ProcessedMethodType || $codeUnit instanceof ProcessedFunctionType) { + $codeUnit->executedLines++; + } else { + $codeUnit['executedLines']++; + } } unset($codeUnit); @@ -404,14 +380,14 @@ private function calculateStatistics(array $classes, array $traits, array $funct foreach ($this->traits as &$trait) { foreach ($trait['methods'] as &$method) { - $methodLineCoverage = $method['executableLines'] > 0 ? ($method['executedLines'] / $method['executableLines']) * 100 : 100; - $methodBranchCoverage = $method['executableBranches'] > 0 ? ($method['executedBranches'] / $method['executableBranches']) * 100 : 0; - $methodPathCoverage = $method['executablePaths'] > 0 ? ($method['executedPaths'] / $method['executablePaths']) * 100 : 0; + $methodLineCoverage = $method->executableLines > 0 ? ($method->executedLines / $method->executableLines) * 100 : 100; + $methodBranchCoverage = $method->executableBranches > 0 ? ($method->executedBranches / $method->executableBranches) * 100 : 0; + $methodPathCoverage = $method->executablePaths > 0 ? ($method->executedPaths / $method->executablePaths) * 100 : 0; - $method['coverage'] = $methodBranchCoverage > 0 ? $methodBranchCoverage : $methodLineCoverage; - $method['crap'] = (new CrapIndex($method['ccn'], $methodPathCoverage > 0 ? $methodPathCoverage : $methodLineCoverage))->asString(); + $method->coverage = $methodBranchCoverage > 0 ? $methodBranchCoverage : $methodLineCoverage; + $method->crap = (new CrapIndex($method->ccn, $methodPathCoverage > 0 ? $methodPathCoverage : $methodLineCoverage))->asString(); - $trait['ccn'] += $method['ccn']; + $trait['ccn'] += $method->ccn; } unset($method); @@ -432,14 +408,14 @@ private function calculateStatistics(array $classes, array $traits, array $funct foreach ($this->classes as &$class) { foreach ($class['methods'] as &$method) { - $methodLineCoverage = $method['executableLines'] > 0 ? ($method['executedLines'] / $method['executableLines']) * 100 : 100; - $methodBranchCoverage = $method['executableBranches'] > 0 ? ($method['executedBranches'] / $method['executableBranches']) * 100 : 0; - $methodPathCoverage = $method['executablePaths'] > 0 ? ($method['executedPaths'] / $method['executablePaths']) * 100 : 0; + $methodLineCoverage = $method->executableLines > 0 ? ($method->executedLines / $method->executableLines) * 100 : 100; + $methodBranchCoverage = $method->executableBranches > 0 ? ($method->executedBranches / $method->executableBranches) * 100 : 0; + $methodPathCoverage = $method->executablePaths > 0 ? ($method->executedPaths / $method->executablePaths) * 100 : 0; - $method['coverage'] = $methodBranchCoverage > 0 ? $methodBranchCoverage : $methodLineCoverage; - $method['crap'] = (new CrapIndex($method['ccn'], $methodPathCoverage > 0 ? $methodPathCoverage : $methodLineCoverage))->asString(); + $method->coverage = $methodBranchCoverage > 0 ? $methodBranchCoverage : $methodLineCoverage; + $method->crap = (new CrapIndex($method->ccn, $methodPathCoverage > 0 ? $methodPathCoverage : $methodLineCoverage))->asString(); - $class['ccn'] += $method['ccn']; + $class['ccn'] += $method->ccn; } unset($method); @@ -459,14 +435,14 @@ private function calculateStatistics(array $classes, array $traits, array $funct unset($class); foreach ($this->functions as &$function) { - $functionLineCoverage = $function['executableLines'] > 0 ? ($function['executedLines'] / $function['executableLines']) * 100 : 100; - $functionBranchCoverage = $function['executableBranches'] > 0 ? ($function['executedBranches'] / $function['executableBranches']) * 100 : 0; - $functionPathCoverage = $function['executablePaths'] > 0 ? ($function['executedPaths'] / $function['executablePaths']) * 100 : 0; + $functionLineCoverage = $function->executableLines > 0 ? ($function->executedLines / $function->executableLines) * 100 : 100; + $functionBranchCoverage = $function->executableBranches > 0 ? ($function->executedBranches / $function->executableBranches) * 100 : 0; + $functionPathCoverage = $function->executablePaths > 0 ? ($function->executedPaths / $function->executablePaths) * 100 : 0; - $function['coverage'] = $functionBranchCoverage > 0 ? $functionBranchCoverage : $functionLineCoverage; - $function['crap'] = (new CrapIndex($function['ccn'], $functionPathCoverage > 0 ? $functionPathCoverage : $functionLineCoverage))->asString(); + $function->coverage = $functionBranchCoverage > 0 ? $functionBranchCoverage : $functionLineCoverage; + $function->crap = (new CrapIndex($function->ccn, $functionPathCoverage > 0 ? $functionPathCoverage : $functionLineCoverage))->asString(); - if ($function['coverage'] === 100) { + if ($function->coverage === 100) { $this->numTestedFunctions++; } } @@ -501,15 +477,15 @@ private function processClasses(array $classes): void $methodData = $this->newMethod($className, $method, $link); $this->classes[$className]['methods'][$methodName] = $methodData; - $this->classes[$className]['executableBranches'] += $methodData['executableBranches']; - $this->classes[$className]['executedBranches'] += $methodData['executedBranches']; - $this->classes[$className]['executablePaths'] += $methodData['executablePaths']; - $this->classes[$className]['executedPaths'] += $methodData['executedPaths']; + $this->classes[$className]['executableBranches'] += $methodData->executableBranches; + $this->classes[$className]['executedBranches'] += $methodData->executedBranches; + $this->classes[$className]['executablePaths'] += $methodData->executablePaths; + $this->classes[$className]['executedPaths'] += $methodData->executedPaths; - $this->numExecutableBranches += $methodData['executableBranches']; - $this->numExecutedBranches += $methodData['executedBranches']; - $this->numExecutablePaths += $methodData['executablePaths']; - $this->numExecutedPaths += $methodData['executedPaths']; + $this->numExecutableBranches += $methodData->executableBranches; + $this->numExecutedBranches += $methodData->executedBranches; + $this->numExecutablePaths += $methodData->executablePaths; + $this->numExecutedPaths += $methodData->executedPaths; foreach (range($method->startLine(), $method->endLine()) as $lineNumber) { $this->codeUnitsByLine[$lineNumber] = [ @@ -550,15 +526,15 @@ private function processTraits(array $traits): void $methodData = $this->newMethod($traitName, $method, $link); $this->traits[$traitName]['methods'][$methodName] = $methodData; - $this->traits[$traitName]['executableBranches'] += $methodData['executableBranches']; - $this->traits[$traitName]['executedBranches'] += $methodData['executedBranches']; - $this->traits[$traitName]['executablePaths'] += $methodData['executablePaths']; - $this->traits[$traitName]['executedPaths'] += $methodData['executedPaths']; + $this->traits[$traitName]['executableBranches'] += $methodData->executableBranches; + $this->traits[$traitName]['executedBranches'] += $methodData->executedBranches; + $this->traits[$traitName]['executablePaths'] += $methodData->executablePaths; + $this->traits[$traitName]['executedPaths'] += $methodData->executedPaths; - $this->numExecutableBranches += $methodData['executableBranches']; - $this->numExecutedBranches += $methodData['executedBranches']; - $this->numExecutablePaths += $methodData['executablePaths']; - $this->numExecutedPaths += $methodData['executedPaths']; + $this->numExecutableBranches += $methodData->executableBranches; + $this->numExecutedBranches += $methodData->executedBranches; + $this->numExecutablePaths += $methodData->executablePaths; + $this->numExecutedPaths += $methodData->executedPaths; foreach (range($method->startLine(), $method->endLine()) as $lineNumber) { $this->codeUnitsByLine[$lineNumber] = [ @@ -578,34 +554,34 @@ private function processFunctions(array $functions): void $link = $this->id() . '.html#'; foreach ($functions as $functionName => $function) { - $this->functions[$functionName] = [ - 'functionName' => $functionName, - 'namespace' => $function->namespace(), - 'signature' => $function->signature(), - 'startLine' => $function->startLine(), - 'endLine' => $function->endLine(), - 'executableLines' => 0, - 'executedLines' => 0, - 'executableBranches' => 0, - 'executedBranches' => 0, - 'executablePaths' => 0, - 'executedPaths' => 0, - 'ccn' => $function->cyclomaticComplexity(), - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $function->startLine(), - ]; + $this->functions[$functionName] = new ProcessedFunctionType( + $functionName, + $function->namespace(), + $function->signature(), + $function->startLine(), + $function->endLine(), + 0, + 0, + 0, + 0, + 0, + 0, + $function->cyclomaticComplexity(), + 0, + 0, + $link . $function->startLine(), + ); foreach (range($function->startLine(), $function->endLine()) as $lineNumber) { $this->codeUnitsByLine[$lineNumber] = [&$this->functions[$functionName]]; } if (isset($this->functionCoverageData[$functionName]['branches'])) { - $this->functions[$functionName]['executableBranches'] = count( + $this->functions[$functionName]->executableBranches = count( $this->functionCoverageData[$functionName]['branches'], ); - $this->functions[$functionName]['executedBranches'] = count( + $this->functions[$functionName]->executedBranches = count( array_filter( $this->functionCoverageData[$functionName]['branches'], static function (array $branch) @@ -617,11 +593,11 @@ static function (array $branch) } if (isset($this->functionCoverageData[$functionName]['paths'])) { - $this->functions[$functionName]['executablePaths'] = count( + $this->functions[$functionName]->executablePaths = count( $this->functionCoverageData[$functionName]['paths'], ); - $this->functions[$functionName]['executedPaths'] = count( + $this->functions[$functionName]->executedPaths = count( array_filter( $this->functionCoverageData[$functionName]['paths'], static function (array $path) @@ -632,44 +608,26 @@ static function (array $path) ); } - $this->numExecutableBranches += $this->functions[$functionName]['executableBranches']; - $this->numExecutedBranches += $this->functions[$functionName]['executedBranches']; - $this->numExecutablePaths += $this->functions[$functionName]['executablePaths']; - $this->numExecutedPaths += $this->functions[$functionName]['executedPaths']; + $this->numExecutableBranches += $this->functions[$functionName]->executableBranches; + $this->numExecutedBranches += $this->functions[$functionName]->executedBranches; + $this->numExecutablePaths += $this->functions[$functionName]->executablePaths; + $this->numExecutedPaths += $this->functions[$functionName]->executedPaths; } } - /** - * @return ProcessedMethodType - */ - private function newMethod(string $className, Method $method, string $link): array + private function newMethod(string $className, Method $method, string $link): ProcessedMethodType { - $methodData = [ - 'methodName' => $method->name(), - 'visibility' => $method->visibility()->value, - 'signature' => $method->signature(), - 'startLine' => $method->startLine(), - 'endLine' => $method->endLine(), - 'executableLines' => 0, - 'executedLines' => 0, - 'executableBranches' => 0, - 'executedBranches' => 0, - 'executablePaths' => 0, - 'executedPaths' => 0, - 'ccn' => $method->cyclomaticComplexity(), - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $method->startLine(), - ]; - $key = $className . '->' . $method->name(); + $executableBranches = 0; + $executedBranches = 0; + if (isset($this->functionCoverageData[$key]['branches'])) { - $methodData['executableBranches'] = count( + $executableBranches = count( $this->functionCoverageData[$key]['branches'], ); - $methodData['executedBranches'] = count( + $executedBranches = count( array_filter( $this->functionCoverageData[$key]['branches'], static function (array $branch) @@ -680,12 +638,15 @@ static function (array $branch) ); } + $executablePaths = 0; + $executedPaths = 0; + if (isset($this->functionCoverageData[$key]['paths'])) { - $methodData['executablePaths'] = count( + $executablePaths = count( $this->functionCoverageData[$key]['paths'], ); - $methodData['executedPaths'] = count( + $executedPaths = count( array_filter( $this->functionCoverageData[$key]['paths'], static function (array $path) @@ -696,6 +657,22 @@ static function (array $path) ); } - return $methodData; + return new ProcessedMethodType( + $method->name(), + $method->visibility()->value, + $method->signature(), + $method->startLine(), + $method->endLine(), + 0, + 0, + $executableBranches, + $executedBranches, + $executablePaths, + $executedPaths, + $method->cyclomaticComplexity(), + 0, + 0, + $link . $method->startLine(), + ); } } diff --git a/src/Report/Clover.php b/src/Report/Clover.php index 641cd0bbb..b4d696fe1 100644 --- a/src/Report/Clover.php +++ b/src/Report/Clover.php @@ -80,33 +80,33 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string foreach ($class['methods'] as $methodName => $method) { /** @phpstan-ignore equal.notAllowed */ - if ($method['executableLines'] == 0) { + if ($method->executableLines == 0) { continue; } $classMethods++; - $classStatements += $method['executableLines']; - $coveredClassStatements += $method['executedLines']; + $classStatements += $method->executableLines; + $coveredClassStatements += $method->executedLines; /** @phpstan-ignore equal.notAllowed */ - if ($method['coverage'] == 100) { + if ($method->coverage == 100) { $coveredMethods++; } $methodCount = 0; - foreach (range($method['startLine'], $method['endLine']) as $line) { + foreach (range($method->startLine, $method->endLine) as $line) { if (isset($coverageData[$line])) { $methodCount = max($methodCount, count($coverageData[$line])); } } - $lines[$method['startLine']] = [ - 'ccn' => $method['ccn'], + $lines[$method->startLine] = [ + 'ccn' => $method->ccn, 'count' => $methodCount, - 'crap' => $method['crap'], + 'crap' => $method->crap, 'type' => 'method', - 'visibility' => $method['visibility'], + 'visibility' => $method->visibility, 'name' => $methodName, ]; } diff --git a/src/Report/Cobertura.php b/src/Report/Cobertura.php index 38653f754..ad37a70eb 100644 --- a/src/Report/Cobertura.php +++ b/src/Report/Cobertura.php @@ -144,18 +144,18 @@ public function process(CodeCoverage $coverage, ?string $target = null): string $classElement->appendChild($classLinesElement); foreach ($class['methods'] as $methodName => $method) { - if ($method['executableLines'] === 0) { + if ($method->executableLines === 0) { continue; } - preg_match("/\((.*?)\)/", $method['signature'], $signature); + preg_match("/\((.*?)\)/", $method->signature, $signature); - $linesValid = $method['executableLines']; - $linesCovered = $method['executedLines']; + $linesValid = $method->executableLines; + $linesCovered = $method->executedLines; $lineRate = $linesCovered / $linesValid; - $branchesValid = $method['executableBranches']; - $branchesCovered = $method['executedBranches']; + $branchesValid = $method->executableBranches; + $branchesCovered = $method->executedBranches; $branchRate = $branchesValid === 0 ? 0 : ($branchesCovered / $branchesValid); $methodElement = $document->createElement('method'); @@ -164,13 +164,13 @@ public function process(CodeCoverage $coverage, ?string $target = null): string $methodElement->setAttribute('signature', $signature[1]); $methodElement->setAttribute('line-rate', (string) $lineRate); $methodElement->setAttribute('branch-rate', (string) $branchRate); - $methodElement->setAttribute('complexity', (string) $method['ccn']); + $methodElement->setAttribute('complexity', (string) $method->ccn); $methodLinesElement = $document->createElement('lines'); $methodElement->appendChild($methodLinesElement); - foreach (range($method['startLine'], $method['endLine']) as $line) { + foreach (range($method->startLine, $method->endLine) as $line) { if (!isset($coverageData[$line])) { continue; } @@ -217,23 +217,23 @@ public function process(CodeCoverage $coverage, ?string $target = null): string $functions = $item->functions(); foreach ($functions as $functionName => $function) { - if ($function['executableLines'] === 0) { + if ($function->executableLines === 0) { continue; } - $complexity += $function['ccn']; - $packageComplexity += $function['ccn']; - $functionsComplexity += $function['ccn']; + $complexity += $function->ccn; + $packageComplexity += $function->ccn; + $functionsComplexity += $function->ccn; - $linesValid = $function['executableLines']; - $linesCovered = $function['executedLines']; + $linesValid = $function->executableLines; + $linesCovered = $function->executedLines; $lineRate = $linesCovered / $linesValid; $functionsLinesValid += $linesValid; $functionsLinesCovered += $linesCovered; - $branchesValid = $function['executableBranches']; - $branchesCovered = $function['executedBranches']; + $branchesValid = $function->executableBranches; + $branchesCovered = $function->executedBranches; $branchRate = $branchesValid === 0 ? 0 : ($branchesCovered / $branchesValid); $functionsBranchesValid += $branchesValid; @@ -242,16 +242,16 @@ public function process(CodeCoverage $coverage, ?string $target = null): string $methodElement = $document->createElement('method'); $methodElement->setAttribute('name', $functionName); - $methodElement->setAttribute('signature', $function['signature']); + $methodElement->setAttribute('signature', $function->signature); $methodElement->setAttribute('line-rate', (string) $lineRate); $methodElement->setAttribute('branch-rate', (string) $branchRate); - $methodElement->setAttribute('complexity', (string) $function['ccn']); + $methodElement->setAttribute('complexity', (string) $function->ccn); $methodLinesElement = $document->createElement('lines'); $methodElement->appendChild($methodLinesElement); - foreach (range($function['startLine'], $function['endLine']) as $line) { + foreach (range($function->startLine, $function->endLine) as $line) { if (!isset($coverageData[$line])) { continue; } diff --git a/src/Report/Crap4j.php b/src/Report/Crap4j.php index a79d0a68e..8d8e5d122 100644 --- a/src/Report/Crap4j.php +++ b/src/Report/Crap4j.php @@ -71,13 +71,13 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string foreach ($classes as $className => $class) { foreach ($class['methods'] as $methodName => $method) { - $crapLoad = $this->crapLoad((float) $method['crap'], $method['ccn'], $method['coverage']); + $crapLoad = $this->crapLoad((float) $method->crap, $method->ccn, $method->coverage); - $fullCrap += $method['crap']; + $fullCrap += $method->crap; $fullCrapLoad += $crapLoad; $fullMethodCount++; - if ($method['crap'] >= $this->threshold) { + if ($method->crap >= $this->threshold) { $fullCrapMethodCount++; } @@ -90,11 +90,11 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string $methodNode->appendChild($document->createElement('package', $namespace)); $methodNode->appendChild($document->createElement('className', $className)); $methodNode->appendChild($document->createElement('methodName', $methodName)); - $methodNode->appendChild($document->createElement('methodSignature', htmlspecialchars($method['signature']))); - $methodNode->appendChild($document->createElement('fullMethod', htmlspecialchars($method['signature']))); - $methodNode->appendChild($document->createElement('crap', (string) $this->roundValue((float) $method['crap']))); - $methodNode->appendChild($document->createElement('complexity', (string) $method['ccn'])); - $methodNode->appendChild($document->createElement('coverage', (string) $this->roundValue($method['coverage']))); + $methodNode->appendChild($document->createElement('methodSignature', htmlspecialchars($method->signature))); + $methodNode->appendChild($document->createElement('fullMethod', htmlspecialchars($method->signature))); + $methodNode->appendChild($document->createElement('crap', (string) $this->roundValue((float) $method->crap))); + $methodNode->appendChild($document->createElement('complexity', (string) $method->ccn)); + $methodNode->appendChild($document->createElement('coverage', (string) $this->roundValue($method->coverage))); $methodNode->appendChild($document->createElement('crapLoad', (string) round($crapLoad))); $methodsNode->appendChild($methodNode); diff --git a/src/Report/Html/Renderer/Dashboard.php b/src/Report/Html/Renderer/Dashboard.php index 305c7fa10..4f0fd7cfc 100644 --- a/src/Report/Html/Renderer/Dashboard.php +++ b/src/Report/Html/Renderer/Dashboard.php @@ -20,6 +20,7 @@ use function str_replace; use function uasort; use function usort; +use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; use SebastianBergmann\CodeCoverage\FileCouldNotBeWrittenException; use SebastianBergmann\CodeCoverage\Node\AbstractNode; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; @@ -102,11 +103,11 @@ private function complexity(array $classes, string $baseLink): array } $result['method'][] = [ - $method['coverage'], - $method['ccn'], - str_replace($baseLink, '', $method['link']), + $method->coverage, + $method->ccn, + str_replace($baseLink, '', $method->link), $methodName, - $method['crap'], + $method->crap, ]; } @@ -173,12 +174,12 @@ private function coverageDistribution(array $classes): array foreach ($classes as $class) { foreach ($class['methods'] as $methodName => $method) { - if ($method['coverage'] === 0) { + if ($method->coverage === 0) { $result['method']['0%']++; - } elseif ($method['coverage'] === 100) { + } elseif ($method->coverage === 100) { $result['method']['100%']++; } else { - $key = floor($method['coverage'] / 10) * 10; + $key = floor($method->coverage / 10) * 10; $key = $key . '-' . ($key + 10) . '%'; $result['method'][$key]++; } @@ -219,14 +220,14 @@ private function insufficientCoverage(array $classes, string $baseLink): array foreach ($classes as $className => $class) { foreach ($class['methods'] as $methodName => $method) { - if ($method['coverage'] < $this->thresholds->highLowerBound()) { + if ($method->coverage < $this->thresholds->highLowerBound()) { $key = $methodName; if ($className !== '*') { $key = $className . '::' . $methodName; } - $leastTestedMethods[$key] = $method['coverage']; + $leastTestedMethods[$key] = $method->coverage; } } @@ -252,7 +253,7 @@ private function insufficientCoverage(array $classes, string $baseLink): array $result['method'] .= sprintf( ' %s%d%%' . "\n", - str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), + str_replace($baseLink, '', $classes[$class]['methods'][$method]->link), $methodName, $method, $coverage, @@ -275,7 +276,7 @@ private function projectRisks(array $classes, string $baseLink): array foreach ($classes as $className => $class) { foreach ($class['methods'] as $methodName => $method) { - if ($method['coverage'] < $this->thresholds->highLowerBound() && $method['ccn'] > 1) { + if ($method->coverage < $this->thresholds->highLowerBound() && $method->ccn > 1) { $key = $methodName; if ($className !== '*') { @@ -296,9 +297,9 @@ private function projectRisks(array $classes, string $baseLink): array { return ((int) ($a['crap']) <=> (int) ($b['crap'])) * -1; }); - uasort($methodRisks, static function (array $a, array $b) + uasort($methodRisks, static function (ProcessedMethodType $a, ProcessedMethodType $b) { - return ((int) ($a['crap']) <=> (int) ($b['crap'])) * -1; + return ((int) ($a->crap) <=> (int) ($b->crap)) * -1; }); foreach ($classRisks as $className => $class) { @@ -317,12 +318,12 @@ private function projectRisks(array $classes, string $baseLink): array $result['method'] .= sprintf( ' %s%.1f%%%d%d' . "\n", - str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), + str_replace($baseLink, '', $classes[$class]['methods'][$method]->link), $methodName, $method, - $methodVals['coverage'], - $methodVals['ccn'], - $methodVals['crap'], + $methodVals->coverage, + $methodVals->ccn, + $methodVals->crap, ); } diff --git a/src/Report/Html/Renderer/File.php b/src/Report/Html/Renderer/File.php index 09dbe31fe..81b54b0ae 100644 --- a/src/Report/Html/Renderer/File.php +++ b/src/Report/Html/Renderer/File.php @@ -102,6 +102,8 @@ use function str_replace; use function token_get_all; use function trim; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; +use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; use SebastianBergmann\CodeCoverage\FileCouldNotBeWrittenException; use SebastianBergmann\CodeCoverage\Node\File as FileNode; use SebastianBergmann\CodeCoverage\Util\Percentage; @@ -111,8 +113,6 @@ /** * @phpstan-import-type ProcessedClassType from FileNode * @phpstan-import-type ProcessedTraitType from FileNode - * @phpstan-import-type ProcessedMethodType from FileNode - * @phpstan-import-type ProcessedFunctionType from FileNode * * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ @@ -341,10 +341,10 @@ private function renderTraitOrClassItems(array $items, Template $template, Templ $numTestedMethods = 0; foreach ($item['methods'] as $method) { - if ($method['executableLines'] > 0) { + if ($method->executableLines > 0) { $numMethods++; - if ($method['executedLines'] === $method['executableLines']) { + if ($method->executedLines === $method->executableLines) { $numTestedMethods++; } } @@ -453,35 +453,32 @@ private function renderFunctionItems(array $functions, Template $template): stri return $buffer; } - /** - * @param ProcessedFunctionType|ProcessedMethodType $item - */ - private function renderFunctionOrMethodItem(Template $template, array $item, string $indent = ''): string + private function renderFunctionOrMethodItem(Template $template, ProcessedFunctionType|ProcessedMethodType $item, string $indent = ''): string { $numMethods = 0; $numTestedMethods = 0; - if ($item['executableLines'] > 0) { + if ($item->executableLines > 0) { $numMethods = 1; - if ($item['executedLines'] === $item['executableLines']) { + if ($item->executedLines === $item->executableLines) { $numTestedMethods = 1; } } $executedLinesPercentage = Percentage::fromFractionAndTotal( - $item['executedLines'], - $item['executableLines'], + $item->executedLines, + $item->executableLines, ); $executedBranchesPercentage = Percentage::fromFractionAndTotal( - $item['executedBranches'], - $item['executableBranches'], + $item->executedBranches, + $item->executableBranches, ); $executedPathsPercentage = Percentage::fromFractionAndTotal( - $item['executedPaths'], - $item['executablePaths'], + $item->executedPaths, + $item->executablePaths, ); $testedMethodsPercentage = Percentage::fromFractionAndTotal( @@ -495,27 +492,27 @@ private function renderFunctionOrMethodItem(Template $template, array $item, str 'name' => sprintf( '%s%s', $indent, - $item['startLine'], - htmlspecialchars($item['signature'], self::HTML_SPECIAL_CHARS_FLAGS), - $item['functionName'] ?? $item['methodName'], + $item->startLine, + htmlspecialchars($item->signature, self::HTML_SPECIAL_CHARS_FLAGS), + $item instanceof ProcessedFunctionType ? $item->functionName : $item->methodName, ), 'numMethods' => $numMethods, 'numTestedMethods' => $numTestedMethods, 'linesExecutedPercent' => $executedLinesPercentage->asFloat(), 'linesExecutedPercentAsString' => $executedLinesPercentage->asString(), - 'numExecutedLines' => $item['executedLines'], - 'numExecutableLines' => $item['executableLines'], + 'numExecutedLines' => $item->executedLines, + 'numExecutableLines' => $item->executableLines, 'branchesExecutedPercent' => $executedBranchesPercentage->asFloat(), 'branchesExecutedPercentAsString' => $executedBranchesPercentage->asString(), - 'numExecutedBranches' => $item['executedBranches'], - 'numExecutableBranches' => $item['executableBranches'], + 'numExecutedBranches' => $item->executedBranches, + 'numExecutableBranches' => $item->executableBranches, 'pathsExecutedPercent' => $executedPathsPercentage->asFloat(), 'pathsExecutedPercentAsString' => $executedPathsPercentage->asString(), - 'numExecutedPaths' => $item['executedPaths'], - 'numExecutablePaths' => $item['executablePaths'], + 'numExecutedPaths' => $item->executedPaths, + 'numExecutablePaths' => $item->executablePaths, 'testedMethodsPercent' => $testedMethodsPercentage->asFloat(), 'testedMethodsPercentAsString' => $testedMethodsPercentage->asString(), - 'crap' => $item['crap'], + 'crap' => $item->crap, ], ); } diff --git a/src/Report/OpenClover.php b/src/Report/OpenClover.php index 65d409b1c..90897a650 100644 --- a/src/Report/OpenClover.php +++ b/src/Report/OpenClover.php @@ -84,33 +84,33 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string foreach ($class['methods'] as $methodName => $method) { /** @phpstan-ignore equal.notAllowed */ - if ($method['executableLines'] == 0) { + if ($method->executableLines == 0) { continue; } $classMethods++; - $classStatements += $method['executableLines']; - $coveredClassStatements += $method['executedLines']; + $classStatements += $method->executableLines; + $coveredClassStatements += $method->executedLines; /** @phpstan-ignore equal.notAllowed */ - if ($method['coverage'] == 100) { + if ($method->coverage == 100) { $coveredMethods++; } $methodCount = 0; - foreach (range($method['startLine'], $method['endLine']) as $line) { + foreach (range($method->startLine, $method->endLine) as $line) { if (isset($coverageData[$line])) { $methodCount = max($methodCount, count($coverageData[$line])); } } - $lines[$method['startLine']] = [ - 'ccn' => $method['ccn'], + $lines[$method->startLine] = [ + 'ccn' => $method->ccn, 'count' => $methodCount, 'type' => 'method', - 'signature' => $method['signature'], - 'visibility' => $method['visibility'], + 'signature' => $method->signature, + 'visibility' => $method->visibility, ]; } diff --git a/src/Report/Text.php b/src/Report/Text.php index f18820b70..b2ea332d6 100644 --- a/src/Report/Text.php +++ b/src/Report/Text.php @@ -192,20 +192,20 @@ public function process(CodeCoverage $coverage, bool $showColors = false): strin foreach ($class['methods'] as $method) { /** @phpstan-ignore equal.notAllowed */ - if ($method['executableLines'] == 0) { + if ($method->executableLines == 0) { continue; } $classMethods++; - $classExecutableLines += $method['executableLines']; - $classExecutedLines += $method['executedLines']; - $classExecutableBranches += $method['executableBranches']; - $classExecutedBranches += $method['executedBranches']; - $classExecutablePaths += $method['executablePaths']; - $classExecutedPaths += $method['executedPaths']; + $classExecutableLines += $method->executableLines; + $classExecutedLines += $method->executedLines; + $classExecutableBranches += $method->executableBranches; + $classExecutedBranches += $method->executedBranches; + $classExecutablePaths += $method->executablePaths; + $classExecutedPaths += $method->executedPaths; /** @phpstan-ignore equal.notAllowed */ - if ($method['coverage'] == 100) { + if ($method->coverage == 100) { $coveredMethods++; } } diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index 126b8c53d..4a6fff1b7 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -23,6 +23,7 @@ use DateTimeImmutable; use DOMDocument; use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; use SebastianBergmann\CodeCoverage\Node\AbstractNode; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; use SebastianBergmann\CodeCoverage\Node\File; @@ -38,7 +39,6 @@ /** * @phpstan-import-type ProcessedClassType from File * @phpstan-import-type ProcessedTraitType from File - * @phpstan-import-type ProcessedFunctionType from File * @phpstan-import-type TestType from CodeCoverage */ final class Facade @@ -202,29 +202,26 @@ private function processUnit(array $unit, Report $report): void } foreach ($unit['methods'] as $method) { - $methodObject = $unitObject->addMethod($method['methodName']); - $methodObject->setSignature($method['signature']); - $methodObject->setLines((string) $method['startLine'], (string) $method['endLine']); - $methodObject->setCrap($method['crap']); + $methodObject = $unitObject->addMethod($method->methodName); + $methodObject->setSignature($method->signature); + $methodObject->setLines((string) $method->startLine, (string) $method->endLine); + $methodObject->setCrap($method->crap); $methodObject->setTotals( - (string) $method['executableLines'], - (string) $method['executedLines'], - (string) $method['coverage'], + (string) $method->executableLines, + (string) $method->executedLines, + (string) $method->coverage, ); } } - /** - * @param ProcessedFunctionType $function - */ - private function processFunction(array $function, Report $report): void + private function processFunction(ProcessedFunctionType $function, Report $report): void { - $functionObject = $report->functionObject($function['functionName']); + $functionObject = $report->functionObject($function->functionName); - $functionObject->setSignature($function['signature']); - $functionObject->setLines((string) $function['startLine']); - $functionObject->setCrap($function['crap']); - $functionObject->setTotals((string) $function['executableLines'], (string) $function['executedLines'], (string) $function['coverage']); + $functionObject->setSignature($function->signature); + $functionObject->setLines((string) $function->startLine); + $functionObject->setCrap($function->crap); + $functionObject->setTotals((string) $function->executableLines, (string) $function->executedLines, (string) $function->coverage); } /** From 2f2041f512dc0e6bd1cef25481d7e7bb37865bb4 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Nov 2025 08:00:31 +0100 Subject: [PATCH 061/106] Reworked ProcessedClassType, ProcessedTraitType --- src/Data/ProcessedClassType.php | 34 +++++ src/Data/ProcessedTraitType.php | 34 +++++ src/Node/AbstractNode.php | 7 +- src/Node/Directory.php | 5 +- src/Node/File.php | 183 ++++++++++--------------- src/Report/Clover.php | 16 +-- src/Report/Cobertura.php | 16 +-- src/Report/Crap4j.php | 6 +- src/Report/Html/Renderer/Dashboard.php | 54 ++++---- src/Report/Html/Renderer/File.php | 49 ++++--- src/Report/OpenClover.php | 18 +-- src/Report/Text.php | 4 +- src/Report/Xml/Facade.php | 12 +- 13 files changed, 229 insertions(+), 209 deletions(-) create mode 100644 src/Data/ProcessedClassType.php create mode 100644 src/Data/ProcessedTraitType.php diff --git a/src/Data/ProcessedClassType.php b/src/Data/ProcessedClassType.php new file mode 100644 index 000000000..879c7f0b2 --- /dev/null +++ b/src/Data/ProcessedClassType.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +final class ProcessedClassType +{ + public function __construct( + public string $className, + public string $namespace, + /** + * @var array + */ + public array $methods, + public int $startLine, + public int $executableLines, + public int $executedLines, + public int $executableBranches, + public int $executedBranches, + public int $executablePaths, + public int $executedPaths, + public int $ccn, + public float|int $coverage, + public int|string $crap, + public string $link, + ) { + } +} diff --git a/src/Data/ProcessedTraitType.php b/src/Data/ProcessedTraitType.php new file mode 100644 index 000000000..8d133c85c --- /dev/null +++ b/src/Data/ProcessedTraitType.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +final class ProcessedTraitType +{ + public function __construct( + public string $traitName, + public string $namespace, + /** + * @var array + */ + public array $methods, + public int $startLine, + public int $executableLines, + public int $executedLines, + public int $executableBranches, + public int $executedBranches, + public int $executablePaths, + public int $executedPaths, + public int $ccn, + public float|int $coverage, + public int|string $crap, + public string $link, + ) { + } +} diff --git a/src/Node/AbstractNode.php b/src/Node/AbstractNode.php index 8cd612bf0..3b54d82b1 100644 --- a/src/Node/AbstractNode.php +++ b/src/Node/AbstractNode.php @@ -15,15 +15,14 @@ use function str_replace; use function substr; use Countable; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode; use SebastianBergmann\CodeCoverage\Util\Percentage; /** * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage - * - * @phpstan-import-type ProcessedClassType from File - * @phpstan-import-type ProcessedTraitType from File */ abstract class AbstractNode implements Countable { @@ -186,7 +185,7 @@ public function cyclomaticComplexity(): int $ccn = 0; foreach ($this->classesAndTraits() as $classLike) { - $ccn += $classLike['ccn']; + $ccn += $classLike->ccn; } foreach ($this->functions() as $function) { diff --git a/src/Node/Directory.php b/src/Node/Directory.php index 7ad54ef5c..818d665dd 100644 --- a/src/Node/Directory.php +++ b/src/Node/Directory.php @@ -14,15 +14,14 @@ use function count; use IteratorAggregate; use RecursiveIteratorIterator; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode; /** * @template-implements IteratorAggregate * - * @phpstan-import-type ProcessedClassType from File - * @phpstan-import-type ProcessedTraitType from File - * * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ final class Directory extends AbstractNode implements IteratorAggregate diff --git a/src/Node/File.php b/src/Node/File.php index 8408fee92..9c57dbd03 100644 --- a/src/Node/File.php +++ b/src/Node/File.php @@ -13,8 +13,10 @@ use function count; use function range; use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult; use SebastianBergmann\CodeCoverage\StaticAnalysis\Class_; use SebastianBergmann\CodeCoverage\StaticAnalysis\Function_; @@ -27,39 +29,6 @@ * * @phpstan-import-type TestType from CodeCoverage * @phpstan-import-type LinesType from AnalysisResult - * - * @phpstan-type ProcessedClassType array{ - * className: string, - * namespace: string, - * methods: array, - * startLine: int, - * executableLines: int, - * executedLines: int, - * executableBranches: int, - * executedBranches: int, - * executablePaths: int, - * executedPaths: int, - * ccn: int, - * coverage: int|float, - * crap: int|string, - * link: string - * } - * @phpstan-type ProcessedTraitType array{ - * traitName: string, - * namespace: string, - * methods: array, - * startLine: int, - * executableLines: int, - * executedLines: int, - * executableBranches: int, - * executedBranches: int, - * executablePaths: int, - * executedPaths: int, - * ccn: int, - * coverage: float|int, - * crap: int|string, - * link: string - * } */ final class File extends AbstractNode { @@ -218,7 +187,7 @@ public function numberOfClasses(): int $this->numClasses = 0; foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { + foreach ($class->methods as $method) { if ($method->executableLines > 0) { $this->numClasses++; @@ -242,7 +211,7 @@ public function numberOfTraits(): int $this->numTraits = 0; foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { + foreach ($trait->methods as $method) { if ($method->executableLines > 0) { $this->numTraits++; @@ -266,7 +235,7 @@ public function numberOfMethods(): int $this->numMethods = 0; foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { + foreach ($class->methods as $method) { if ($method->executableLines > 0) { $this->numMethods++; } @@ -274,7 +243,7 @@ public function numberOfMethods(): int } foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { + foreach ($trait->methods as $method) { if ($method->executableLines > 0) { $this->numMethods++; } @@ -291,7 +260,7 @@ public function numberOfTestedMethods(): int $this->numTestedMethods = 0; foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { + foreach ($class->methods as $method) { if ($method->executableLines > 0 && $method->coverage === 100) { $this->numTestedMethods++; @@ -300,7 +269,7 @@ public function numberOfTestedMethods(): int } foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { + foreach ($trait->methods as $method) { if ($method->executableLines > 0 && $method->coverage === 100) { $this->numTestedMethods++; @@ -351,11 +320,7 @@ private function calculateStatistics(array $classes, array $traits, array $funct foreach (range(1, $this->linesOfCode->linesOfCode()) as $lineNumber) { if (isset($this->lineCoverageData[$lineNumber])) { foreach ($this->codeUnitsByLine[$lineNumber] as &$codeUnit) { - if ($codeUnit instanceof ProcessedMethodType || $codeUnit instanceof ProcessedFunctionType) { - $codeUnit->executableLines++; - } else { - $codeUnit['executableLines']++; - } + $codeUnit->executableLines++; } unset($codeUnit); @@ -364,11 +329,7 @@ private function calculateStatistics(array $classes, array $traits, array $funct if (count($this->lineCoverageData[$lineNumber]) > 0) { foreach ($this->codeUnitsByLine[$lineNumber] as &$codeUnit) { - if ($codeUnit instanceof ProcessedMethodType || $codeUnit instanceof ProcessedFunctionType) { - $codeUnit->executedLines++; - } else { - $codeUnit['executedLines']++; - } + $codeUnit->executedLines++; } unset($codeUnit); @@ -379,7 +340,7 @@ private function calculateStatistics(array $classes, array $traits, array $funct } foreach ($this->traits as &$trait) { - foreach ($trait['methods'] as &$method) { + foreach ($trait->methods as &$method) { $methodLineCoverage = $method->executableLines > 0 ? ($method->executedLines / $method->executableLines) * 100 : 100; $methodBranchCoverage = $method->executableBranches > 0 ? ($method->executedBranches / $method->executableBranches) * 100 : 0; $methodPathCoverage = $method->executablePaths > 0 ? ($method->executedPaths / $method->executablePaths) * 100 : 0; @@ -387,19 +348,19 @@ private function calculateStatistics(array $classes, array $traits, array $funct $method->coverage = $methodBranchCoverage > 0 ? $methodBranchCoverage : $methodLineCoverage; $method->crap = (new CrapIndex($method->ccn, $methodPathCoverage > 0 ? $methodPathCoverage : $methodLineCoverage))->asString(); - $trait['ccn'] += $method->ccn; + $trait->ccn += $method->ccn; } unset($method); - $traitLineCoverage = $trait['executableLines'] > 0 ? ($trait['executedLines'] / $trait['executableLines']) * 100 : 100; - $traitBranchCoverage = $trait['executableBranches'] > 0 ? ($trait['executedBranches'] / $trait['executableBranches']) * 100 : 0; - $traitPathCoverage = $trait['executablePaths'] > 0 ? ($trait['executedPaths'] / $trait['executablePaths']) * 100 : 0; + $traitBranchCoverage = $trait->executableBranches > 0 ? ($trait->executedBranches / $trait->executableBranches) * 100 : 0; + $traitLineCoverage = $trait->executableLines > 0 ? ($trait->executedLines / $trait->executableLines) * 100 : 100; + $traitPathCoverage = $trait->executablePaths > 0 ? ($trait->executedPaths / $trait->executablePaths) * 100 : 0; - $trait['coverage'] = $traitBranchCoverage > 0 ? $traitBranchCoverage : $traitLineCoverage; - $trait['crap'] = (new CrapIndex($trait['ccn'], $traitPathCoverage > 0 ? $traitPathCoverage : $traitLineCoverage))->asString(); + $trait->coverage = $traitBranchCoverage > 0 ? $traitBranchCoverage : $traitLineCoverage; + $trait->crap = (new CrapIndex($trait->ccn, $traitPathCoverage > 0 ? $traitPathCoverage : $traitLineCoverage))->asString(); - if ($trait['executableLines'] > 0 && $trait['coverage'] === 100) { + if ($trait->executableLines > 0 && $trait->coverage === 100) { $this->numTestedClasses++; } } @@ -407,7 +368,7 @@ private function calculateStatistics(array $classes, array $traits, array $funct unset($trait); foreach ($this->classes as &$class) { - foreach ($class['methods'] as &$method) { + foreach ($class->methods as &$method) { $methodLineCoverage = $method->executableLines > 0 ? ($method->executedLines / $method->executableLines) * 100 : 100; $methodBranchCoverage = $method->executableBranches > 0 ? ($method->executedBranches / $method->executableBranches) * 100 : 0; $methodPathCoverage = $method->executablePaths > 0 ? ($method->executedPaths / $method->executablePaths) * 100 : 0; @@ -415,19 +376,19 @@ private function calculateStatistics(array $classes, array $traits, array $funct $method->coverage = $methodBranchCoverage > 0 ? $methodBranchCoverage : $methodLineCoverage; $method->crap = (new CrapIndex($method->ccn, $methodPathCoverage > 0 ? $methodPathCoverage : $methodLineCoverage))->asString(); - $class['ccn'] += $method->ccn; + $class->ccn += $method->ccn; } unset($method); - $classLineCoverage = $class['executableLines'] > 0 ? ($class['executedLines'] / $class['executableLines']) * 100 : 100; - $classBranchCoverage = $class['executableBranches'] > 0 ? ($class['executedBranches'] / $class['executableBranches']) * 100 : 0; - $classPathCoverage = $class['executablePaths'] > 0 ? ($class['executedPaths'] / $class['executablePaths']) * 100 : 0; + $classLineCoverage = $class->executableLines > 0 ? ($class->executedLines / $class->executableLines) * 100 : 100; + $classBranchCoverage = $class->executableBranches > 0 ? ($class->executedBranches / $class->executableBranches) * 100 : 0; + $classPathCoverage = $class->executablePaths > 0 ? ($class->executedPaths / $class->executablePaths) * 100 : 0; - $class['coverage'] = $classBranchCoverage > 0 ? $classBranchCoverage : $classLineCoverage; - $class['crap'] = (new CrapIndex($class['ccn'], $classPathCoverage > 0 ? $classPathCoverage : $classLineCoverage))->asString(); + $class->coverage = $classBranchCoverage > 0 ? $classBranchCoverage : $classLineCoverage; + $class->crap = (new CrapIndex($class->ccn, $classPathCoverage > 0 ? $classPathCoverage : $classLineCoverage))->asString(); - if ($class['executableLines'] > 0 && $class['coverage'] === 100) { + if ($class->executableLines > 0 && $class->coverage === 100) { $this->numTestedClasses++; } } @@ -456,31 +417,31 @@ private function processClasses(array $classes): void $link = $this->id() . '.html#'; foreach ($classes as $className => $class) { - $this->classes[$className] = [ - 'className' => $className, - 'namespace' => $class->namespace(), - 'methods' => [], - 'startLine' => $class->startLine(), - 'executableLines' => 0, - 'executedLines' => 0, - 'executableBranches' => 0, - 'executedBranches' => 0, - 'executablePaths' => 0, - 'executedPaths' => 0, - 'ccn' => 0, - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $class->startLine(), - ]; + $this->classes[$className] = new ProcessedClassType( + $className, + $class->namespace(), + [], + $class->startLine(), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + $link . $class->startLine(), + ); foreach ($class->methods() as $methodName => $method) { - $methodData = $this->newMethod($className, $method, $link); - $this->classes[$className]['methods'][$methodName] = $methodData; + $methodData = $this->newMethod($className, $method, $link); + $this->classes[$className]->methods[$methodName] = $methodData; - $this->classes[$className]['executableBranches'] += $methodData->executableBranches; - $this->classes[$className]['executedBranches'] += $methodData->executedBranches; - $this->classes[$className]['executablePaths'] += $methodData->executablePaths; - $this->classes[$className]['executedPaths'] += $methodData->executedPaths; + $this->classes[$className]->executableBranches += $methodData->executableBranches; + $this->classes[$className]->executedBranches += $methodData->executedBranches; + $this->classes[$className]->executablePaths += $methodData->executablePaths; + $this->classes[$className]->executedPaths += $methodData->executedPaths; $this->numExecutableBranches += $methodData->executableBranches; $this->numExecutedBranches += $methodData->executedBranches; @@ -490,7 +451,7 @@ private function processClasses(array $classes): void foreach (range($method->startLine(), $method->endLine()) as $lineNumber) { $this->codeUnitsByLine[$lineNumber] = [ &$this->classes[$className], - &$this->classes[$className]['methods'][$methodName], + &$this->classes[$className]->methods[$methodName], ]; } } @@ -505,31 +466,31 @@ private function processTraits(array $traits): void $link = $this->id() . '.html#'; foreach ($traits as $traitName => $trait) { - $this->traits[$traitName] = [ - 'traitName' => $traitName, - 'namespace' => $trait->namespace(), - 'methods' => [], - 'startLine' => $trait->startLine(), - 'executableLines' => 0, - 'executedLines' => 0, - 'executableBranches' => 0, - 'executedBranches' => 0, - 'executablePaths' => 0, - 'executedPaths' => 0, - 'ccn' => 0, - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $trait->startLine(), - ]; + $this->traits[$traitName] = new ProcessedTraitType( + $traitName, + $trait->namespace(), + [], + $trait->startLine(), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + $link . $trait->startLine(), + ); foreach ($trait->methods() as $methodName => $method) { - $methodData = $this->newMethod($traitName, $method, $link); - $this->traits[$traitName]['methods'][$methodName] = $methodData; + $methodData = $this->newMethod($traitName, $method, $link); + $this->traits[$traitName]->methods[$methodName] = $methodData; - $this->traits[$traitName]['executableBranches'] += $methodData->executableBranches; - $this->traits[$traitName]['executedBranches'] += $methodData->executedBranches; - $this->traits[$traitName]['executablePaths'] += $methodData->executablePaths; - $this->traits[$traitName]['executedPaths'] += $methodData->executedPaths; + $this->traits[$traitName]->executableBranches += $methodData->executableBranches; + $this->traits[$traitName]->executedBranches += $methodData->executedBranches; + $this->traits[$traitName]->executablePaths += $methodData->executablePaths; + $this->traits[$traitName]->executedPaths += $methodData->executedPaths; $this->numExecutableBranches += $methodData->executableBranches; $this->numExecutedBranches += $methodData->executedBranches; @@ -539,7 +500,7 @@ private function processTraits(array $traits): void foreach (range($method->startLine(), $method->endLine()) as $lineNumber) { $this->codeUnitsByLine[$lineNumber] = [ &$this->traits[$traitName], - &$this->traits[$traitName]['methods'][$methodName], + &$this->traits[$traitName]->methods[$methodName], ]; } } diff --git a/src/Report/Clover.php b/src/Report/Clover.php index b4d696fe1..8e59d4c65 100644 --- a/src/Report/Clover.php +++ b/src/Report/Clover.php @@ -74,11 +74,11 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string $classMethods = 0; // Assumption: one namespace per file - if ($class['namespace'] !== '') { - $namespace = $class['namespace']; + if ($class->namespace !== '') { + $namespace = $class->namespace; } - foreach ($class['methods'] as $methodName => $method) { + foreach ($class->methods as $methodName => $method) { /** @phpstan-ignore equal.notAllowed */ if ($method->executableLines == 0) { continue; @@ -118,15 +118,15 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string $xmlFile->appendChild($xmlClass); $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('complexity', (string) $class['ccn']); + $xmlMetrics->setAttribute('complexity', (string) $class->ccn); $xmlMetrics->setAttribute('methods', (string) $classMethods); $xmlMetrics->setAttribute('coveredmethods', (string) $coveredMethods); - $xmlMetrics->setAttribute('conditionals', (string) $class['executableBranches']); - $xmlMetrics->setAttribute('coveredconditionals', (string) $class['executedBranches']); + $xmlMetrics->setAttribute('conditionals', (string) $class->executableBranches); + $xmlMetrics->setAttribute('coveredconditionals', (string) $class->executedBranches); $xmlMetrics->setAttribute('statements', (string) $classStatements); $xmlMetrics->setAttribute('coveredstatements', (string) $coveredClassStatements); - $xmlMetrics->setAttribute('elements', (string) ($classMethods + $classStatements + $class['executableBranches'])); - $xmlMetrics->setAttribute('coveredelements', (string) ($coveredMethods + $coveredClassStatements + $class['executedBranches'])); + $xmlMetrics->setAttribute('elements', (string) ($classMethods + $classStatements + $class->executableBranches)); + $xmlMetrics->setAttribute('coveredelements', (string) ($coveredMethods + $coveredClassStatements + $class->executedBranches)); $xmlClass->appendChild($xmlMetrics); } diff --git a/src/Report/Cobertura.php b/src/Report/Cobertura.php index ad37a70eb..38f0e79ee 100644 --- a/src/Report/Cobertura.php +++ b/src/Report/Cobertura.php @@ -114,15 +114,15 @@ public function process(CodeCoverage $coverage, ?string $target = null): string $coverageData = $item->lineCoverageData(); foreach ($classes as $className => $class) { - $complexity += $class['ccn']; - $packageComplexity += $class['ccn']; + $complexity += $class->ccn; + $packageComplexity += $class->ccn; - $linesValid = $class['executableLines']; - $linesCovered = $class['executedLines']; + $linesValid = $class->executableLines; + $linesCovered = $class->executedLines; $lineRate = $linesValid === 0 ? 0 : ($linesCovered / $linesValid); - $branchesValid = $class['executableBranches']; - $branchesCovered = $class['executedBranches']; + $branchesValid = $class->executableBranches; + $branchesCovered = $class->executedBranches; $branchRate = $branchesValid === 0 ? 0 : ($branchesCovered / $branchesValid); $classElement = $document->createElement('class'); @@ -131,7 +131,7 @@ public function process(CodeCoverage $coverage, ?string $target = null): string $classElement->setAttribute('filename', str_replace($report->pathAsString() . DIRECTORY_SEPARATOR, '', $item->pathAsString())); $classElement->setAttribute('line-rate', (string) $lineRate); $classElement->setAttribute('branch-rate', (string) $branchRate); - $classElement->setAttribute('complexity', (string) $class['ccn']); + $classElement->setAttribute('complexity', (string) $class->ccn); $classesElement->appendChild($classElement); @@ -143,7 +143,7 @@ public function process(CodeCoverage $coverage, ?string $target = null): string $classElement->appendChild($classLinesElement); - foreach ($class['methods'] as $methodName => $method) { + foreach ($class->methods as $methodName => $method) { if ($method->executableLines === 0) { continue; } diff --git a/src/Report/Crap4j.php b/src/Report/Crap4j.php index 8d8e5d122..b015908b4 100644 --- a/src/Report/Crap4j.php +++ b/src/Report/Crap4j.php @@ -70,7 +70,7 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string $classes = $item->classesAndTraits(); foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { + foreach ($class->methods as $methodName => $method) { $crapLoad = $this->crapLoad((float) $method->crap, $method->ccn, $method->coverage); $fullCrap += $method->crap; @@ -83,8 +83,8 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string $methodNode = $document->createElement('method'); - if ($class['namespace'] !== '') { - $namespace = $class['namespace']; + if ($class->namespace !== '') { + $namespace = $class->namespace; } $methodNode->appendChild($document->createElement('package', $namespace)); diff --git a/src/Report/Html/Renderer/Dashboard.php b/src/Report/Html/Renderer/Dashboard.php index 4f0fd7cfc..9df28c3f4 100644 --- a/src/Report/Html/Renderer/Dashboard.php +++ b/src/Report/Html/Renderer/Dashboard.php @@ -20,18 +20,16 @@ use function str_replace; use function uasort; use function usort; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\FileCouldNotBeWrittenException; use SebastianBergmann\CodeCoverage\Node\AbstractNode; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; -use SebastianBergmann\CodeCoverage\Node\File as FileNode; use SebastianBergmann\Template\Exception; use SebastianBergmann\Template\Template; /** - * @phpstan-import-type ProcessedClassType from FileNode - * @phpstan-import-type ProcessedTraitType from FileNode - * * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ final class Dashboard extends Renderer @@ -97,7 +95,7 @@ private function complexity(array $classes, string $baseLink): array $result = ['class' => [], 'method' => []]; foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { + foreach ($class->methods as $methodName => $method) { if ($className !== '*') { $methodName = $className . '::' . $methodName; } @@ -112,11 +110,11 @@ private function complexity(array $classes, string $baseLink): array } $result['class'][] = [ - $class['coverage'], - $class['ccn'], - str_replace($baseLink, '', $class['link']), + $class->coverage, + $class->ccn, + str_replace($baseLink, '', $class->link), $className, - $class['crap'], + $class->crap, ]; } @@ -173,7 +171,7 @@ private function coverageDistribution(array $classes): array ]; foreach ($classes as $class) { - foreach ($class['methods'] as $methodName => $method) { + foreach ($class->methods as $method) { if ($method->coverage === 0) { $result['method']['0%']++; } elseif ($method->coverage === 100) { @@ -185,12 +183,12 @@ private function coverageDistribution(array $classes): array } } - if ($class['coverage'] === 0) { + if ($class->coverage === 0) { $result['class']['0%']++; - } elseif ($class['coverage'] === 100) { + } elseif ($class->coverage === 100) { $result['class']['100%']++; } else { - $key = floor($class['coverage'] / 10) * 10; + $key = floor($class->coverage / 10) * 10; $key = $key . '-' . ($key + 10) . '%'; $result['class'][$key]++; } @@ -219,7 +217,7 @@ private function insufficientCoverage(array $classes, string $baseLink): array $result = ['class' => '', 'method' => '']; foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { + foreach ($class->methods as $methodName => $method) { if ($method->coverage < $this->thresholds->highLowerBound()) { $key = $methodName; @@ -231,8 +229,8 @@ private function insufficientCoverage(array $classes, string $baseLink): array } } - if ($class['coverage'] < $this->thresholds->highLowerBound()) { - $leastTestedClasses[$className] = $class['coverage']; + if ($class->coverage < $this->thresholds->highLowerBound()) { + $leastTestedClasses[$className] = $class->coverage; } } @@ -242,7 +240,7 @@ private function insufficientCoverage(array $classes, string $baseLink): array foreach ($leastTestedClasses as $className => $coverage) { $result['class'] .= sprintf( ' %s%d%%' . "\n", - str_replace($baseLink, '', $classes[$className]['link']), + str_replace($baseLink, '', $classes[$className]->link), $className, $coverage, ); @@ -253,7 +251,7 @@ private function insufficientCoverage(array $classes, string $baseLink): array $result['method'] .= sprintf( ' %s%d%%' . "\n", - str_replace($baseLink, '', $classes[$class]['methods'][$method]->link), + str_replace($baseLink, '', $classes[$class]->methods[$method]->link), $methodName, $method, $coverage, @@ -275,7 +273,7 @@ private function projectRisks(array $classes, string $baseLink): array $result = ['class' => '', 'method' => '']; foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { + foreach ($class->methods as $methodName => $method) { if ($method->coverage < $this->thresholds->highLowerBound() && $method->ccn > 1) { $key = $methodName; @@ -287,15 +285,15 @@ private function projectRisks(array $classes, string $baseLink): array } } - if ($class['coverage'] < $this->thresholds->highLowerBound() && - $class['ccn'] > count($class['methods'])) { + if ($class->coverage < $this->thresholds->highLowerBound() && + $class->ccn > count($class->methods)) { $classRisks[$className] = $class; } } - uasort($classRisks, static function (array $a, array $b) + uasort($classRisks, static function (ProcessedClassType|ProcessedTraitType $a, ProcessedClassType|ProcessedTraitType $b) { - return ((int) ($a['crap']) <=> (int) ($b['crap'])) * -1; + return ((int) ($a->crap) <=> (int) ($b->crap)) * -1; }); uasort($methodRisks, static function (ProcessedMethodType $a, ProcessedMethodType $b) { @@ -305,11 +303,11 @@ private function projectRisks(array $classes, string $baseLink): array foreach ($classRisks as $className => $class) { $result['class'] .= sprintf( ' %s%.1f%%%d%d' . "\n", - str_replace($baseLink, '', $classes[$className]['link']), + str_replace($baseLink, '', $classes[$className]->link), $className, - $class['coverage'], - $class['ccn'], - $class['crap'], + $class->coverage, + $class->ccn, + $class->crap, ); } @@ -318,7 +316,7 @@ private function projectRisks(array $classes, string $baseLink): array $result['method'] .= sprintf( ' %s%.1f%%%d%d' . "\n", - str_replace($baseLink, '', $classes[$class]['methods'][$method]->link), + str_replace($baseLink, '', $classes[$class]->methods[$method]->link), $methodName, $method, $methodVals->coverage, diff --git a/src/Report/Html/Renderer/File.php b/src/Report/Html/Renderer/File.php index 81b54b0ae..9564e99e9 100644 --- a/src/Report/Html/Renderer/File.php +++ b/src/Report/Html/Renderer/File.php @@ -102,8 +102,10 @@ use function str_replace; use function token_get_all; use function trim; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\FileCouldNotBeWrittenException; use SebastianBergmann\CodeCoverage\Node\File as FileNode; use SebastianBergmann\CodeCoverage\Util\Percentage; @@ -111,9 +113,6 @@ use SebastianBergmann\Template\Template; /** - * @phpstan-import-type ProcessedClassType from FileNode - * @phpstan-import-type ProcessedTraitType from FileNode - * * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage */ final class File extends Renderer @@ -340,7 +339,7 @@ private function renderTraitOrClassItems(array $items, Template $template, Templ $numMethods = 0; $numTestedMethods = 0; - foreach ($item['methods'] as $method) { + foreach ($item->methods as $method) { if ($method->executableLines > 0) { $numMethods++; @@ -350,20 +349,20 @@ private function renderTraitOrClassItems(array $items, Template $template, Templ } } - if ($item['executableLines'] > 0) { + if ($item->executableLines > 0) { $numClasses = 1; $numTestedClasses = $numTestedMethods === $numMethods ? 1 : 0; $linesExecutedPercentAsString = Percentage::fromFractionAndTotal( - $item['executedLines'], - $item['executableLines'], + $item->executedLines, + $item->executableLines, )->asString(); $branchesExecutedPercentAsString = Percentage::fromFractionAndTotal( - $item['executedBranches'], - $item['executableBranches'], + $item->executedBranches, + $item->executableBranches, )->asString(); $pathsExecutedPercentAsString = Percentage::fromFractionAndTotal( - $item['executedPaths'], - $item['executablePaths'], + $item->executedPaths, + $item->executablePaths, )->asString(); } else { $numClasses = 0; @@ -392,35 +391,35 @@ private function renderTraitOrClassItems(array $items, Template $template, Templ 'numMethods' => $numMethods, 'numTestedMethods' => $numTestedMethods, 'linesExecutedPercent' => Percentage::fromFractionAndTotal( - $item['executedLines'], - $item['executableLines'], + $item->executedLines, + $item->executableLines, )->asFloat(), 'linesExecutedPercentAsString' => $linesExecutedPercentAsString, - 'numExecutedLines' => $item['executedLines'], - 'numExecutableLines' => $item['executableLines'], + 'numExecutedLines' => $item->executedLines, + 'numExecutableLines' => $item->executableLines, 'branchesExecutedPercent' => Percentage::fromFractionAndTotal( - $item['executedBranches'], - $item['executableBranches'], + $item->executedBranches, + $item->executableBranches, )->asFloat(), 'branchesExecutedPercentAsString' => $branchesExecutedPercentAsString, - 'numExecutedBranches' => $item['executedBranches'], - 'numExecutableBranches' => $item['executableBranches'], + 'numExecutedBranches' => $item->executedBranches, + 'numExecutableBranches' => $item->executableBranches, 'pathsExecutedPercent' => Percentage::fromFractionAndTotal( - $item['executedPaths'], - $item['executablePaths'], + $item->executedPaths, + $item->executablePaths, )->asFloat(), 'pathsExecutedPercentAsString' => $pathsExecutedPercentAsString, - 'numExecutedPaths' => $item['executedPaths'], - 'numExecutablePaths' => $item['executablePaths'], + 'numExecutedPaths' => $item->executedPaths, + 'numExecutablePaths' => $item->executablePaths, 'testedMethodsPercent' => $testedMethodsPercentage->asFloat(), 'testedMethodsPercentAsString' => $testedMethodsPercentage->asString(), 'testedClassesPercent' => $testedClassesPercentage->asFloat(), 'testedClassesPercentAsString' => $testedClassesPercentage->asString(), - 'crap' => $item['crap'], + 'crap' => $item->crap, ], ); - foreach ($item['methods'] as $method) { + foreach ($item->methods as $method) { $buffer .= $this->renderFunctionOrMethodItem( $methodItemTemplate, $method, diff --git a/src/Report/OpenClover.php b/src/Report/OpenClover.php index 90897a650..3c9a7c3d1 100644 --- a/src/Report/OpenClover.php +++ b/src/Report/OpenClover.php @@ -78,11 +78,11 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string $classMethods = 0; // Assumption: one namespace per file - if ($class['namespace'] !== '') { - $namespace = $class['namespace']; + if ($class->namespace !== '') { + $namespace = $class->namespace; } - foreach ($class['methods'] as $methodName => $method) { + foreach ($class->methods as $methodName => $method) { /** @phpstan-ignore equal.notAllowed */ if ($method->executableLines == 0) { continue; @@ -115,16 +115,16 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string } $xmlClass = $xmlDocument->createElement('class'); - $xmlClass->setAttribute('name', str_replace($class['namespace'] . '\\', '', $className)); + $xmlClass->setAttribute('name', str_replace($class->namespace . '\\', '', $className)); $xmlFile->appendChild($xmlClass); $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('complexity', (string) $class['ccn']); - $xmlMetrics->setAttribute('elements', (string) ($classMethods + $classStatements + $class['executableBranches'])); - $xmlMetrics->setAttribute('coveredelements', (string) ($coveredMethods + $coveredClassStatements + $class['executedBranches'])); - $xmlMetrics->setAttribute('conditionals', (string) $class['executableBranches']); - $xmlMetrics->setAttribute('coveredconditionals', (string) $class['executedBranches']); + $xmlMetrics->setAttribute('complexity', (string) $class->ccn); + $xmlMetrics->setAttribute('elements', (string) ($classMethods + $classStatements + $class->executableBranches)); + $xmlMetrics->setAttribute('coveredelements', (string) ($coveredMethods + $coveredClassStatements + $class->executedBranches)); + $xmlMetrics->setAttribute('conditionals', (string) $class->executableBranches); + $xmlMetrics->setAttribute('coveredconditionals', (string) $class->executedBranches); $xmlMetrics->setAttribute('statements', (string) $classStatements); $xmlMetrics->setAttribute('coveredstatements', (string) $coveredClassStatements); $xmlMetrics->setAttribute('methods', (string) $classMethods); diff --git a/src/Report/Text.php b/src/Report/Text.php index b2ea332d6..4c8d70986 100644 --- a/src/Report/Text.php +++ b/src/Report/Text.php @@ -190,7 +190,7 @@ public function process(CodeCoverage $coverage, bool $showColors = false): strin $coveredMethods = 0; $classMethods = 0; - foreach ($class['methods'] as $method) { + foreach ($class->methods as $method) { /** @phpstan-ignore equal.notAllowed */ if ($method->executableLines == 0) { continue; @@ -211,7 +211,7 @@ public function process(CodeCoverage $coverage, bool $showColors = false): strin } $classCoverage[$className] = [ - 'namespace' => $class['namespace'], + 'namespace' => $class->namespace, 'className' => $className, 'methodsCovered' => $coveredMethods, 'methodCount' => $classMethods, diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index 4a6fff1b7..75828c7a8 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -23,10 +23,11 @@ use DateTimeImmutable; use DOMDocument; use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Data\ProcessedClassType; use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; +use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; use SebastianBergmann\CodeCoverage\Node\AbstractNode; use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; -use SebastianBergmann\CodeCoverage\Node\File; use SebastianBergmann\CodeCoverage\Node\File as FileNode; use SebastianBergmann\CodeCoverage\PathExistsButIsNotDirectoryException; use SebastianBergmann\CodeCoverage\Util\Filesystem; @@ -37,8 +38,6 @@ use SebastianBergmann\Environment\Runtime; /** - * @phpstan-import-type ProcessedClassType from File - * @phpstan-import-type ProcessedTraitType from File * @phpstan-import-type TestType from CodeCoverage */ final class Facade @@ -176,10 +175,7 @@ private function processFile(FileNode $file, Directory $context): void $this->saveDocument($fileReport->asDom(), $file->id()); } - /** - * @param ProcessedClassType|ProcessedTraitType $unit - */ - private function processUnit(array $unit, Report $report): void + private function processUnit(ProcessedClassType|ProcessedTraitType $unit, Report $report): void { if (isset($unit['className'])) { $unitObject = $report->classObject( @@ -201,7 +197,7 @@ private function processUnit(array $unit, Report $report): void ); } - foreach ($unit['methods'] as $method) { + foreach ($unit->methods as $method) { $methodObject = $unitObject->addMethod($method->methodName); $methodObject->setSignature($method->signature); $methodObject->setLines((string) $method->startLine, (string) $method->endLine); From 6d0f909bf6fccaca9a94865747b81857d1a1b0e2 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Nov 2025 08:22:27 +0100 Subject: [PATCH 062/106] turn properties readonly --- src/Data/ProcessedClassType.php | 8 ++++---- src/Data/ProcessedFunctionType.php | 12 ++++++------ src/Data/ProcessedMethodType.php | 12 ++++++------ src/Data/ProcessedTraitType.php | 8 ++++---- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Data/ProcessedClassType.php b/src/Data/ProcessedClassType.php index 879c7f0b2..a8a02e8e0 100644 --- a/src/Data/ProcessedClassType.php +++ b/src/Data/ProcessedClassType.php @@ -12,13 +12,13 @@ final class ProcessedClassType { public function __construct( - public string $className, - public string $namespace, + public readonly string $className, + public readonly string $namespace, /** * @var array */ public array $methods, - public int $startLine, + public readonly int $startLine, public int $executableLines, public int $executedLines, public int $executableBranches, @@ -28,7 +28,7 @@ public function __construct( public int $ccn, public float|int $coverage, public int|string $crap, - public string $link, + public readonly string $link, ) { } } diff --git a/src/Data/ProcessedFunctionType.php b/src/Data/ProcessedFunctionType.php index 6ab07d714..46fe75673 100644 --- a/src/Data/ProcessedFunctionType.php +++ b/src/Data/ProcessedFunctionType.php @@ -12,11 +12,11 @@ final class ProcessedFunctionType { public function __construct( - public string $functionName, - public string $namespace, - public string $signature, - public int $startLine, - public int $endLine, + public readonly string $functionName, + public readonly string $namespace, + public readonly string $signature, + public readonly int $startLine, + public readonly int $endLine, public int $executableLines, public int $executedLines, public int $executableBranches, @@ -26,7 +26,7 @@ public function __construct( public int $ccn, public float|int $coverage, public int|string $crap, - public string $link, + public readonly string $link, ) { } } diff --git a/src/Data/ProcessedMethodType.php b/src/Data/ProcessedMethodType.php index 63353aefd..f43b734cb 100644 --- a/src/Data/ProcessedMethodType.php +++ b/src/Data/ProcessedMethodType.php @@ -12,11 +12,11 @@ final class ProcessedMethodType { public function __construct( - public string $methodName, - public string $visibility, - public string $signature, - public int $startLine, - public int $endLine, + public readonly string $methodName, + public readonly string $visibility, + public readonly string $signature, + public readonly int $startLine, + public readonly int $endLine, public int $executableLines, public int $executedLines, public int $executableBranches, @@ -26,7 +26,7 @@ public function __construct( public int $ccn, public float|int $coverage, public int|string $crap, - public string $link, + public readonly string $link, ) { } } diff --git a/src/Data/ProcessedTraitType.php b/src/Data/ProcessedTraitType.php index 8d133c85c..79a105e00 100644 --- a/src/Data/ProcessedTraitType.php +++ b/src/Data/ProcessedTraitType.php @@ -12,13 +12,13 @@ final class ProcessedTraitType { public function __construct( - public string $traitName, - public string $namespace, + public readonly string $traitName, + public readonly string $namespace, /** * @var array */ public array $methods, - public int $startLine, + public readonly int $startLine, public int $executableLines, public int $executedLines, public int $executableBranches, @@ -28,7 +28,7 @@ public function __construct( public int $ccn, public float|int $coverage, public int|string $crap, - public string $link, + public readonly string $link, ) { } } From 9f780da9ffba85014a401235d1f2a1d419f49b51 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Nov 2025 08:26:48 +0100 Subject: [PATCH 063/106] new classes are internal --- src/Data/ProcessedClassType.php | 3 +++ src/Data/ProcessedFunctionType.php | 3 +++ src/Data/ProcessedMethodType.php | 3 +++ src/Data/ProcessedTraitType.php | 3 +++ 4 files changed, 12 insertions(+) diff --git a/src/Data/ProcessedClassType.php b/src/Data/ProcessedClassType.php index a8a02e8e0..fc49007c6 100644 --- a/src/Data/ProcessedClassType.php +++ b/src/Data/ProcessedClassType.php @@ -9,6 +9,9 @@ */ namespace SebastianBergmann\CodeCoverage\Data; +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ final class ProcessedClassType { public function __construct( diff --git a/src/Data/ProcessedFunctionType.php b/src/Data/ProcessedFunctionType.php index 46fe75673..8a3c0725e 100644 --- a/src/Data/ProcessedFunctionType.php +++ b/src/Data/ProcessedFunctionType.php @@ -9,6 +9,9 @@ */ namespace SebastianBergmann\CodeCoverage\Data; +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ final class ProcessedFunctionType { public function __construct( diff --git a/src/Data/ProcessedMethodType.php b/src/Data/ProcessedMethodType.php index f43b734cb..cd7e39313 100644 --- a/src/Data/ProcessedMethodType.php +++ b/src/Data/ProcessedMethodType.php @@ -9,6 +9,9 @@ */ namespace SebastianBergmann\CodeCoverage\Data; +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ final class ProcessedMethodType { public function __construct( diff --git a/src/Data/ProcessedTraitType.php b/src/Data/ProcessedTraitType.php index 79a105e00..b92385ed3 100644 --- a/src/Data/ProcessedTraitType.php +++ b/src/Data/ProcessedTraitType.php @@ -9,6 +9,9 @@ */ namespace SebastianBergmann\CodeCoverage\Data; +/** + * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage + */ final class ProcessedTraitType { public function __construct( From 5ddf6cee8d8fdec1d00e5a0be6487016ab0ff86a Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 16 Nov 2025 07:44:28 +0100 Subject: [PATCH 064/106] use traditional properties --- src/Data/ProcessedClassType.php | 61 +++++++++++++++++++++++------- src/Data/ProcessedFunctionType.php | 61 ++++++++++++++++++++++-------- src/Data/ProcessedMethodType.php | 61 ++++++++++++++++++++++-------- src/Data/ProcessedTraitType.php | 61 +++++++++++++++++++++++------- 4 files changed, 186 insertions(+), 58 deletions(-) diff --git a/src/Data/ProcessedClassType.php b/src/Data/ProcessedClassType.php index fc49007c6..593e8de0f 100644 --- a/src/Data/ProcessedClassType.php +++ b/src/Data/ProcessedClassType.php @@ -14,24 +14,57 @@ */ final class ProcessedClassType { + public readonly string $className; + public readonly string $namespace; + + /** + * @var array + */ + public array $methods; + public readonly int $startLine; + public int $executableLines; + public int $executedLines; + public int $executableBranches; + public int $executedBranches; + public int $executablePaths; + public int $executedPaths; + public int $ccn; + public float|int $coverage; + public int|string $crap; + public readonly string $link; + public function __construct( - public readonly string $className, - public readonly string $namespace, + string $className, + string $namespace, /** * @var array */ - public array $methods, - public readonly int $startLine, - public int $executableLines, - public int $executedLines, - public int $executableBranches, - public int $executedBranches, - public int $executablePaths, - public int $executedPaths, - public int $ccn, - public float|int $coverage, - public int|string $crap, - public readonly string $link, + array $methods, + int $startLine, + int $executableLines, + int $executedLines, + int $executableBranches, + int $executedBranches, + int $executablePaths, + int $executedPaths, + int $ccn, + float|int $coverage, + int|string $crap, + string $link, ) { + $this->className = $className; + $this->namespace = $namespace; + $this->methods = $methods; + $this->startLine = $startLine; + $this->executableLines = $executableLines; + $this->executedLines = $executedLines; + $this->executableBranches = $executableBranches; + $this->executedBranches = $executedBranches; + $this->executablePaths = $executablePaths; + $this->executedPaths = $executedPaths; + $this->ccn = $ccn; + $this->coverage = $coverage; + $this->crap = $crap; + $this->link = $link; } } diff --git a/src/Data/ProcessedFunctionType.php b/src/Data/ProcessedFunctionType.php index 8a3c0725e..ff3a77f3c 100644 --- a/src/Data/ProcessedFunctionType.php +++ b/src/Data/ProcessedFunctionType.php @@ -14,22 +14,53 @@ */ final class ProcessedFunctionType { + public readonly string $functionName; + public readonly string $namespace; + public readonly string $signature; + public readonly int $startLine; + public readonly int $endLine; + public int $executableLines; + public int $executedLines; + public int $executableBranches; + public int $executedBranches; + public int $executablePaths; + public int $executedPaths; + public int $ccn; + public float|int $coverage; + public int|string $crap; + public readonly string $link; + public function __construct( - public readonly string $functionName, - public readonly string $namespace, - public readonly string $signature, - public readonly int $startLine, - public readonly int $endLine, - public int $executableLines, - public int $executedLines, - public int $executableBranches, - public int $executedBranches, - public int $executablePaths, - public int $executedPaths, - public int $ccn, - public float|int $coverage, - public int|string $crap, - public readonly string $link, + string $functionName, + string $namespace, + string $signature, + int $startLine, + int $endLine, + int $executableLines, + int $executedLines, + int $executableBranches, + int $executedBranches, + int $executablePaths, + int $executedPaths, + int $ccn, + float|int $coverage, + int|string $crap, + string $link, ) { + $this->link = $link; + $this->crap = $crap; + $this->coverage = $coverage; + $this->ccn = $ccn; + $this->executedPaths = $executedPaths; + $this->executablePaths = $executablePaths; + $this->executedBranches = $executedBranches; + $this->executableBranches = $executableBranches; + $this->executedLines = $executedLines; + $this->executableLines = $executableLines; + $this->endLine = $endLine; + $this->startLine = $startLine; + $this->signature = $signature; + $this->namespace = $namespace; + $this->functionName = $functionName; } } diff --git a/src/Data/ProcessedMethodType.php b/src/Data/ProcessedMethodType.php index cd7e39313..f1827633f 100644 --- a/src/Data/ProcessedMethodType.php +++ b/src/Data/ProcessedMethodType.php @@ -14,22 +14,53 @@ */ final class ProcessedMethodType { + public readonly string $methodName; + public readonly string $visibility; + public readonly string $signature; + public readonly int $startLine; + public readonly int $endLine; + public int $executableLines; + public int $executedLines; + public int $executableBranches; + public int $executedBranches; + public int $executablePaths; + public int $executedPaths; + public int $ccn; + public float|int $coverage; + public int|string $crap; + public readonly string $link; + public function __construct( - public readonly string $methodName, - public readonly string $visibility, - public readonly string $signature, - public readonly int $startLine, - public readonly int $endLine, - public int $executableLines, - public int $executedLines, - public int $executableBranches, - public int $executedBranches, - public int $executablePaths, - public int $executedPaths, - public int $ccn, - public float|int $coverage, - public int|string $crap, - public readonly string $link, + string $methodName, + string $visibility, + string $signature, + int $startLine, + int $endLine, + int $executableLines, + int $executedLines, + int $executableBranches, + int $executedBranches, + int $executablePaths, + int $executedPaths, + int $ccn, + float|int $coverage, + int|string $crap, + string $link, ) { + $this->link = $link; + $this->crap = $crap; + $this->coverage = $coverage; + $this->ccn = $ccn; + $this->executedPaths = $executedPaths; + $this->executablePaths = $executablePaths; + $this->executedBranches = $executedBranches; + $this->executableBranches = $executableBranches; + $this->executedLines = $executedLines; + $this->executableLines = $executableLines; + $this->endLine = $endLine; + $this->startLine = $startLine; + $this->signature = $signature; + $this->visibility = $visibility; + $this->methodName = $methodName; } } diff --git a/src/Data/ProcessedTraitType.php b/src/Data/ProcessedTraitType.php index b92385ed3..86e7b4687 100644 --- a/src/Data/ProcessedTraitType.php +++ b/src/Data/ProcessedTraitType.php @@ -14,24 +14,57 @@ */ final class ProcessedTraitType { + public readonly string $traitName; + public readonly string $namespace; + + /** + * @var array + */ + public array $methods; + public readonly int $startLine; + public int $executableLines; + public int $executedLines; + public int $executableBranches; + public int $executedBranches; + public int $executablePaths; + public int $executedPaths; + public int $ccn; + public float|int $coverage; + public int|string $crap; + public readonly string $link; + public function __construct( - public readonly string $traitName, - public readonly string $namespace, + string $traitName, + string $namespace, /** * @var array */ - public array $methods, - public readonly int $startLine, - public int $executableLines, - public int $executedLines, - public int $executableBranches, - public int $executedBranches, - public int $executablePaths, - public int $executedPaths, - public int $ccn, - public float|int $coverage, - public int|string $crap, - public readonly string $link, + array $methods, + int $startLine, + int $executableLines, + int $executedLines, + int $executableBranches, + int $executedBranches, + int $executablePaths, + int $executedPaths, + int $ccn, + float|int $coverage, + int|string $crap, + string $link, ) { + $this->link = $link; + $this->crap = $crap; + $this->coverage = $coverage; + $this->ccn = $ccn; + $this->executedPaths = $executedPaths; + $this->executablePaths = $executablePaths; + $this->executedBranches = $executedBranches; + $this->executableBranches = $executableBranches; + $this->executedLines = $executedLines; + $this->executableLines = $executableLines; + $this->startLine = $startLine; + $this->methods = $methods; + $this->namespace = $namespace; + $this->traitName = $traitName; } } From 45dff46c479686d8f60d3a822794823598439a57 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 08:11:08 +0100 Subject: [PATCH 065/106] fix bad merge --- src/Report/Xml/Facade.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index 75828c7a8..b2982e859 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -177,23 +177,23 @@ private function processFile(FileNode $file, Directory $context): void private function processUnit(ProcessedClassType|ProcessedTraitType $unit, Report $report): void { - if (isset($unit['className'])) { + if ($unit instanceof ProcessedClassType) { $unitObject = $report->classObject( - $unit['className'], - $unit['namespace'], - $unit['startLine'], - $unit['executableLines'], - $unit['executedLines'], - (float) $unit['crap'], + $unit->className, + $unit->namespace, + $unit->startLine, + $unit->executableLines, + $unit->executedLines, + (float) $unit->crap, ); } else { $unitObject = $report->traitObject( - $unit['traitName'], - $unit['namespace'], - $unit['startLine'], - $unit['executableLines'], - $unit['executedLines'], - (float) $unit['crap'], + $unit->traitName, + $unit->namespace, + $unit->startLine, + $unit->executableLines, + $unit->executedLines, + (float) $unit->crap, ); } From 7bc47044726cb141b6055d48dd6d366a46e0370e Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 09:14:18 +0100 Subject: [PATCH 066/106] Method: Move always available information into __construct() Reducing the api surface along the way --- src/Report/Xml/Facade.php | 27 ++++++++++++++++----------- src/Report/Xml/Method.php | 37 ++++++++++++++----------------------- src/Report/Xml/Report.php | 24 +++++++++++++++++++++--- src/Report/Xml/Unit.php | 24 +++++++++++++++++++++--- 4 files changed, 72 insertions(+), 40 deletions(-) diff --git a/src/Report/Xml/Facade.php b/src/Report/Xml/Facade.php index b2982e859..1bc1e009d 100644 --- a/src/Report/Xml/Facade.php +++ b/src/Report/Xml/Facade.php @@ -198,26 +198,31 @@ private function processUnit(ProcessedClassType|ProcessedTraitType $unit, Report } foreach ($unit->methods as $method) { - $methodObject = $unitObject->addMethod($method->methodName); - $methodObject->setSignature($method->signature); - $methodObject->setLines((string) $method->startLine, (string) $method->endLine); - $methodObject->setCrap($method->crap); - $methodObject->setTotals( + $unitObject->addMethod( + $method->methodName, + $method->signature, + (string) $method->startLine, + (string) $method->endLine, (string) $method->executableLines, (string) $method->executedLines, (string) $method->coverage, + $method->crap, ); } } private function processFunction(ProcessedFunctionType $function, Report $report): void { - $functionObject = $report->functionObject($function->functionName); - - $functionObject->setSignature($function->signature); - $functionObject->setLines((string) $function->startLine); - $functionObject->setCrap($function->crap); - $functionObject->setTotals((string) $function->executableLines, (string) $function->executedLines, (string) $function->coverage); + $report->functionObject( + $function->functionName, + $function->signature, + (string) $function->startLine, + null, + (string) $function->executableLines, + (string) $function->executedLines, + (string) $function->coverage, + $function->crap, + ); } /** diff --git a/src/Report/Xml/Method.php b/src/Report/Xml/Method.php index 1994d0f79..1b5bdb28f 100644 --- a/src/Report/Xml/Method.php +++ b/src/Report/Xml/Method.php @@ -18,41 +18,32 @@ { private DOMElement $contextNode; - public function __construct(DOMElement $context, string $name) - { + public function __construct( + DOMElement $context, + string $name, + string $signature, + string $start, + ?string $end, + string $executable, + string $executed, + string $coverage, + string $crap + ) { $this->contextNode = $context; - $this->setName($name); - } - - public function setSignature(string $signature): void - { + $this->contextNode->setAttribute('name', $name); $this->contextNode->setAttribute('signature', $signature); - } - public function setLines(string $start, ?string $end = null): void - { $this->contextNode->setAttribute('start', $start); if ($end !== null) { $this->contextNode->setAttribute('end', $end); } - } - public function setTotals(string $executable, string $executed, string $coverage): void - { + $this->contextNode->setAttribute('crap', $crap); + $this->contextNode->setAttribute('executable', $executable); $this->contextNode->setAttribute('executed', $executed); $this->contextNode->setAttribute('coverage', $coverage); } - - public function setCrap(string $crap): void - { - $this->contextNode->setAttribute('crap', $crap); - } - - private function setName(string $name): void - { - $this->contextNode->setAttribute('name', $name); - } } diff --git a/src/Report/Xml/Report.php b/src/Report/Xml/Report.php index 601e466c3..14d2d5a06 100644 --- a/src/Report/Xml/Report.php +++ b/src/Report/Xml/Report.php @@ -45,8 +45,16 @@ public function asDom(): DOMDocument return $this->dom(); } - public function functionObject(string $name): Method - { + public function functionObject( + string $name, + string $signature, + string $start, + ?string $end, + string $executable, + string $executed, + string $coverage, + string $crap + ): void { $node = $this->contextNode()->appendChild( $this->dom()->createElementNS( Facade::XML_NAMESPACE, @@ -56,7 +64,17 @@ public function functionObject(string $name): Method assert($node instanceof DOMElement); - return new Method($node, $name); + new Method( + $node, + $name, + $signature, + $start, + $end, + $executable, + $executed, + $coverage, + $crap, + ); } public function classObject( diff --git a/src/Report/Xml/Unit.php b/src/Report/Xml/Unit.php index 35175f30b..fa97909c2 100644 --- a/src/Report/Xml/Unit.php +++ b/src/Report/Xml/Unit.php @@ -47,8 +47,16 @@ public function __construct( $node->setAttribute('name', $namespace); } - public function addMethod(string $name): Method - { + public function addMethod( + string $name, + string $signature, + string $start, + ?string $end, + string $executable, + string $executed, + string $coverage, + string $crap + ): void { $node = $this->contextNode->appendChild( $this->contextNode->ownerDocument->createElementNS( Facade::XML_NAMESPACE, @@ -58,6 +66,16 @@ public function addMethod(string $name): Method assert($node instanceof DOMElement); - return new Method($node, $name); + new Method( + $node, + $name, + $signature, + $start, + $end, + $executable, + $executed, + $coverage, + $crap, + ); } } From 4ba867bcb3d2a6cbff59c9b9d5d6c747f4644687 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 20 Nov 2025 09:21:00 +0100 Subject: [PATCH 067/106] Node properties are immutable --- src/Report/Xml/Node.php | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/Report/Xml/Node.php b/src/Report/Xml/Node.php index e1f62ebac..5c94a0883 100644 --- a/src/Report/Xml/Node.php +++ b/src/Report/Xml/Node.php @@ -18,12 +18,13 @@ */ abstract class Node { - private DOMDocument $dom; - private DOMElement $contextNode; + private readonly DOMDocument $dom; + private readonly DOMElement $contextNode; public function __construct(DOMElement $context) { - $this->setContextNode($context); + $this->dom = $context->ownerDocument; + $this->contextNode = $context; } public function dom(): DOMDocument @@ -76,12 +77,6 @@ public function addFile(string $name, string $href): File return new File($fileNode); } - protected function setContextNode(DOMElement $context): void - { - $this->dom = $context->ownerDocument; - $this->contextNode = $context; - } - protected function contextNode(): DOMElement { return $this->contextNode; From 25b096ad1226c5860703500a572d822853c45796 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 8 Nov 2025 13:16:09 +0100 Subject: [PATCH 068/106] Represent FunctionCover in objects --- src/Data/ProcessedBranchCoverageData.php | 83 ++++++++++++++++++++++ src/Data/ProcessedCodeCoverageData.php | 58 ++++----------- src/Data/ProcessedFunctionCoverageData.php | 81 +++++++++++++++++++++ src/Data/ProcessedPathCoverageData.php | 59 +++++++++++++++ 4 files changed, 236 insertions(+), 45 deletions(-) create mode 100644 src/Data/ProcessedBranchCoverageData.php create mode 100644 src/Data/ProcessedFunctionCoverageData.php create mode 100644 src/Data/ProcessedPathCoverageData.php diff --git a/src/Data/ProcessedBranchCoverageData.php b/src/Data/ProcessedBranchCoverageData.php new file mode 100644 index 000000000..91a206b81 --- /dev/null +++ b/src/Data/ProcessedBranchCoverageData.php @@ -0,0 +1,83 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; + +/** + * @phpstan-import-type TestIdType from ProcessedCodeCoverageData + * @phpstan-import-type XdebugBranchCoverageType from XdebugDriver + */ +final readonly class ProcessedBranchCoverageData +{ + public function __construct( + public int $op_start, + public int $op_end, + public int $line_start, + public int $line_end, + /** @var list */ + public array $hit, + /** @var array */ + public array $out, + /** @var array */ + public array $out_hit, + + ) + { + } + + /** + * @param XdebugBranchCoverageType $xdebugCoverageData + */ + static public function fromXdebugCoverage(array $xdebugCoverageData): self + { + return new self( + $xdebugCoverageData['op_start'], + $xdebugCoverageData['op_end'], + $xdebugCoverageData['line_start'], + $xdebugCoverageData['line_end'], + [], + $xdebugCoverageData['out'], + $xdebugCoverageData['out_hit'], + ); + } + + public function merge(self $data): self + { + return new self( + $this->op_start, + $this->op_end, + $this->line_start, + $this->line_end, + array_unique(array_merge($this->hit, $data->hit)), + $this->out, + $this->out_hit, + ); + } + + /** + * @param TestIdType $testCaseId + */ + public function recordHit(string $testCaseId): self { + $hit = $this->hit; + $hit[] = $testCaseId; + + return new self( + $this->op_start, + $this->op_end, + $this->line_start, + $this->line_end, + $hit, + $this->out, + $this->out_hit, + ); + + } +} \ No newline at end of file diff --git a/src/Data/ProcessedCodeCoverageData.php b/src/Data/ProcessedCodeCoverageData.php index 49a103236..f896ed5ae 100644 --- a/src/Data/ProcessedCodeCoverageData.php +++ b/src/Data/ProcessedCodeCoverageData.php @@ -25,21 +25,7 @@ * @phpstan-import-type XdebugFunctionCoverageType from XdebugDriver * * @phpstan-type TestIdType string - * @phpstan-type FunctionCoverageDataType array{ - * branches: array, - * out: array, - * out_hit: array, - * }>, - * paths: array, - * hit: list, - * }> - * } + * @phpstan-type FunctionCoverageDataType ProcessedFunctionCoverageData * @phpstan-type FunctionCoverageType array> * @phpstan-type LineCoverageType array>> */ @@ -99,13 +85,13 @@ public function markCodeAsExecutedByTestCase(string $testCaseId, RawCodeCoverage foreach ($functions as $functionName => $functionData) { foreach ($functionData['branches'] as $branchId => $branchData) { if ($branchData['hit'] === Driver::BRANCH_HIT) { - $this->functionCoverage[$file][$functionName]['branches'][$branchId]['hit'][] = $testCaseId; + $this->functionCoverage[$file][$functionName]->recordBranchHit($branchId, $testCaseId); } } foreach ($functionData['paths'] as $pathId => $pathData) { if ($pathData['hit'] === Driver::BRANCH_HIT) { - $this->functionCoverage[$file][$functionName]['paths'][$pathId]['hit'][] = $testCaseId; + $this->functionCoverage[$file][$functionName]->recordPathHit($pathId, $testCaseId); } } } @@ -213,14 +199,6 @@ public function merge(self $newData): void } 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'])); - } } } } @@ -259,17 +237,13 @@ private function priorityForLine(array $data, int $line): int * * @param FunctionCoverageDataType|XdebugFunctionCoverageType $functionData */ - private function initPreviouslyUnseenFunction(string $file, string $functionName, array $functionData): void + private function initPreviouslyUnseenFunction(string $file, string $functionName, ProcessedFunctionCoverageData|array $functionData): void { - $this->functionCoverage[$file][$functionName] = $functionData; - - foreach (array_keys($functionData['branches']) as $branchId) { - $this->functionCoverage[$file][$functionName]['branches'][$branchId]['hit'] = []; + if (is_array($functionData)) { + $functionData = ProcessedFunctionCoverageData::fromXdebugCoverage($functionData); } - foreach (array_keys($functionData['paths']) as $pathId) { - $this->functionCoverage[$file][$functionName]['paths'][$pathId]['hit'] = []; - } + $this->functionCoverage[$file][$functionName] = $functionData; } /** @@ -279,20 +253,14 @@ private function initPreviouslyUnseenFunction(string $file, string $functionName * * @param FunctionCoverageDataType|XdebugFunctionCoverageType $functionData */ - private function initPreviouslySeenFunction(string $file, string $functionName, array $functionData): void + private function initPreviouslySeenFunction(string $file, string $functionName, ProcessedFunctionCoverageData|array $functionData): void { - foreach ($functionData['branches'] as $branchId => $branchData) { - if (!isset($this->functionCoverage[$file][$functionName]['branches'][$branchId])) { - $this->functionCoverage[$file][$functionName]['branches'][$branchId] = $branchData; - $this->functionCoverage[$file][$functionName]['branches'][$branchId]['hit'] = []; - } + if (is_array($functionData)) { + $functionData = ProcessedFunctionCoverageData::fromXdebugCoverage($functionData); } - foreach ($functionData['paths'] as $pathId => $pathData) { - if (!isset($this->functionCoverage[$file][$functionName]['paths'][$pathId])) { - $this->functionCoverage[$file][$functionName]['paths'][$pathId] = $pathData; - $this->functionCoverage[$file][$functionName]['paths'][$pathId]['hit'] = []; - } - } + $this->functionCoverage[$file][$functionName] = $this->functionCoverage[$file][$functionName]->merge( + $functionData + ); } } diff --git a/src/Data/ProcessedFunctionCoverageData.php b/src/Data/ProcessedFunctionCoverageData.php new file mode 100644 index 000000000..7af1f1438 --- /dev/null +++ b/src/Data/ProcessedFunctionCoverageData.php @@ -0,0 +1,81 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; + +/** + * @phpstan-import-type TestIdType from ProcessedCodeCoverageData + * @phpstan-import-type XdebugFunctionCoverageType from XdebugDriver + */ +final class ProcessedFunctionCoverageData { + public function __construct( + /** @var array */ + public array $branches, + /** @var array */ + public array $paths, + + ) {} + + /** + * @param XdebugFunctionCoverageType $xdebugCoverageData + */ + static public function fromXdebugCoverage(array $xdebugCoverageData): self + { + $branches = []; + foreach($xdebugCoverageData['branches'] as $branchId => $branch) { + $branches[$branchId] = ProcessedBranchCoverageData::fromXdebugCoverage($branch); + } + $paths = []; + foreach($xdebugCoverageData['paths'] as $pathId => $path) { + $paths[$pathId] = ProcessedPathCoverageData::fromXdebugCoverage($path); + } + + return new self( + $branches, + $paths + ); + } + + public function merge(self $data): self + { + $branches = $this->branches; + foreach($data->branches as $branchId => $branch) { + if (isset($branches[$branchId])) { + continue; + } + $branches[$branchId] = $branches[$branchId]->merge($branch); + } + + $paths = $this->paths; + foreach($data->paths as $pathId => $path) { + if (isset($paths[$pathId])) { + continue; + } + $paths[$pathId] = $paths[$pathId]->merge($path); + } + + return new self( + $branches, + $paths + ); + } + + /** + * @param TestIdType $testCaseId + */ + public function recordBranchHit(int $branchId, string $testCaseId): void { + $this->branches[$branchId]->recordHit($testCaseId); + } + + public function recordPathHit(int $pathId, string $testCaseId): void { + $this->paths[$pathId]->recordHit($testCaseId); + } +} diff --git a/src/Data/ProcessedPathCoverageData.php b/src/Data/ProcessedPathCoverageData.php new file mode 100644 index 000000000..1fae81bbf --- /dev/null +++ b/src/Data/ProcessedPathCoverageData.php @@ -0,0 +1,59 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Data; + +use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; + +/** + * @phpstan-import-type TestIdType from ProcessedCodeCoverageData + * @phpstan-import-type XdebugPathCoverageType from XdebugDriver + */ +final readonly class ProcessedPathCoverageData { + public function __construct( + /** @var array */ + public array $path, + /** @var list */ + public array $hit, + ) {} + + /** + * @param XdebugPathCoverageType $xdebugCoverageData + */ + static public function fromXdebugCoverage(array $xdebugCoverageData): self + { + return new self( + $xdebugCoverageData['path'], + [], + ); + } + + public function merge(self $data): self + { + return new self( + $this->path, + array_unique(array_merge($this->hit, $data->hit)), + ); + } + + /** + * @param TestIdType $testCaseId + */ + public function recordHit(string $testCaseId): self + { + $hit = $this->hit; + $hit[] = $testCaseId; + + return new self( + $this->path, + $hit + ); + } + +} From 1af5ebe25c16447f6440f68e28f5e47701089d47 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 8 Nov 2025 16:23:54 +0100 Subject: [PATCH 069/106] Update ProcessedFunctionCoverageData.php --- src/Data/ProcessedFunctionCoverageData.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Data/ProcessedFunctionCoverageData.php b/src/Data/ProcessedFunctionCoverageData.php index 7af1f1438..a8a9be720 100644 --- a/src/Data/ProcessedFunctionCoverageData.php +++ b/src/Data/ProcessedFunctionCoverageData.php @@ -48,18 +48,20 @@ public function merge(self $data): self { $branches = $this->branches; foreach($data->branches as $branchId => $branch) { - if (isset($branches[$branchId])) { - continue; + if (!isset($branches[$branchId])) { + $branches[$branchId] = $branch; + } else { + $branches[$branchId] = $branches[$branchId]->merge($branch); } - $branches[$branchId] = $branches[$branchId]->merge($branch); } $paths = $this->paths; foreach($data->paths as $pathId => $path) { - if (isset($paths[$pathId])) { - continue; + if (!isset($paths[$pathId])) { + $paths[$pathId] = $path; + } else { + $paths[$pathId] = $paths[$pathId]->merge($path); } - $paths[$pathId] = $paths[$pathId]->merge($path); } return new self( From 6c32bbfcf412835acfe796ab9c1580b1f55d22df Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 8 Nov 2025 17:30:48 +0100 Subject: [PATCH 070/106] simplify doctypes --- src/Data/ProcessedCodeCoverageData.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Data/ProcessedCodeCoverageData.php b/src/Data/ProcessedCodeCoverageData.php index f896ed5ae..929e9c0a6 100644 --- a/src/Data/ProcessedCodeCoverageData.php +++ b/src/Data/ProcessedCodeCoverageData.php @@ -25,8 +25,7 @@ * @phpstan-import-type XdebugFunctionCoverageType from XdebugDriver * * @phpstan-type TestIdType string - * @phpstan-type FunctionCoverageDataType ProcessedFunctionCoverageData - * @phpstan-type FunctionCoverageType array> + * @phpstan-type FunctionCoverageType array> * @phpstan-type LineCoverageType array>> */ final class ProcessedCodeCoverageData @@ -235,7 +234,7 @@ private function priorityForLine(array $data, int $line): int /** * For a function we have never seen before, copy all data over and simply init the 'hit' array. * - * @param FunctionCoverageDataType|XdebugFunctionCoverageType $functionData + * @param ProcessedFunctionCoverageData|XdebugFunctionCoverageType $functionData */ private function initPreviouslyUnseenFunction(string $file, string $functionName, ProcessedFunctionCoverageData|array $functionData): void { @@ -251,7 +250,7 @@ private function initPreviouslyUnseenFunction(string $file, string $functionName * Techniques such as mocking and where the contents of a file are different vary during tests (e.g. compiling * containers) mean that the functions inside a file cannot be relied upon to be static. * - * @param FunctionCoverageDataType|XdebugFunctionCoverageType $functionData + * @param ProcessedFunctionCoverageData|XdebugFunctionCoverageType $functionData */ private function initPreviouslySeenFunction(string $file, string $functionName, ProcessedFunctionCoverageData|array $functionData): void { From 99bb8a6379a52b93c66a3e2c89618b05b1d2698d Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 8 Nov 2025 17:39:11 +0100 Subject: [PATCH 071/106] Update ProcessedCodeCoverageDataTest.php --- .../Data/ProcessedCodeCoverageDataTest.php | 143 +++++++++--------- 1 file changed, 68 insertions(+), 75 deletions(-) diff --git a/tests/tests/Data/ProcessedCodeCoverageDataTest.php b/tests/tests/Data/ProcessedCodeCoverageDataTest.php index 46e144eec..7e7fc7e20 100644 --- a/tests/tests/Data/ProcessedCodeCoverageDataTest.php +++ b/tests/tests/Data/ProcessedCodeCoverageDataTest.php @@ -75,29 +75,28 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void $coverage->setFunctionCoverage( [ '/some/path/SomeClass.php' => [ - 'SomeClass->firstFunction' => [ - 'branches' => [ - 0 => [ - 'op_start' => 0, - 'op_end' => 14, - 'line_start' => 20, - 'line_end' => 25, - 'hit' => [], - 'out' => [ - ], - 'out_hit' => [ - ], - ], + 'SomeClass->firstFunction' => + new ProcessedFunctionCoverageData( + [ + new ProcessedBranchCoverageData( + 0, + 14, + 20, + 25, + [], + [], + [] + ) ], - 'paths' => [ - 0 => [ - 'path' => [ + [ + new ProcessedPathCoverageData( + [ 0 => 0, ], - 'hit' => [], - ], - ], - ], + [], + ), + ] + ), ], ], ); @@ -106,69 +105,63 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void $newCoverage->setFunctionCoverage( [ '/some/path/SomeClass.php' => [ - 'SomeClass->firstFunction' => [ - 'branches' => [ - 0 => [ - 'op_start' => 0, - 'op_end' => 14, - 'line_start' => 20, - 'line_end' => 25, - 'hit' => [], - 'out' => [ - ], - 'out_hit' => [ - ], - ], - 1 => [ - 'op_start' => 15, - 'op_end' => 16, - 'line_start' => 26, - 'line_end' => 27, - 'hit' => [], - 'out' => [ - ], - 'out_hit' => [ - ], - ], + 'SomeClass->firstFunction' => new ProcessedFunctionCoverageData( + [ + new ProcessedBranchCoverageData( + 0, + 14, + 20, + 25, + [], + [], + [] + ), + new ProcessedBranchCoverageData( + 15, + 16, + 26, + 27, + [], + [], + [] + ) ], - 'paths' => [ - 0 => [ - 'path' => [ + [ + new ProcessedPathCoverageData( + [ 0 => 0, ], - 'hit' => [], - ], - 1 => [ - 'path' => [ + [] + ), + new ProcessedPathCoverageData( + [ 0 => 1, ], - 'hit' => [], - ], + [] + ), + ] + ), + 'SomeClass->secondFunction' => new ProcessedFunctionCoverageData( + [ + new ProcessedBranchCoverageData( + 0, + 24, + 30, + 35, + [], + [], + [] + ), ], - ], - 'SomeClass->secondFunction' => [ - 'branches' => [ - 0 => [ - 'op_start' => 0, - 'op_end' => 24, - 'line_start' => 30, - 'line_end' => 35, - 'hit' => [], - 'out' => [ - ], - 'out_hit' => [ - ], - ], - ], - 'paths' => [ - 0 => [ - 'path' => [ + [ + new ProcessedPathCoverageData( + [ 0 => 0, ], - 'hit' => [], - ], - ], - ], + [] + ), + ] + ), ], ], ); From 26efdcef3ba5681d40cd6fb39bdf3d274a4ea0e1 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 08:21:33 +0100 Subject: [PATCH 072/106] cs --- src/Data/ProcessedBranchCoverageData.php | 42 ++++---- src/Data/ProcessedCodeCoverageData.php | 6 +- src/Data/ProcessedFunctionCoverageData.php | 43 ++++---- src/Data/ProcessedPathCoverageData.php | 27 +++--- .../Data/ProcessedCodeCoverageDataTest.php | 97 ++++++++++--------- 5 files changed, 113 insertions(+), 102 deletions(-) diff --git a/src/Data/ProcessedBranchCoverageData.php b/src/Data/ProcessedBranchCoverageData.php index 91a206b81..1d32d604a 100644 --- a/src/Data/ProcessedBranchCoverageData.php +++ b/src/Data/ProcessedBranchCoverageData.php @@ -9,6 +9,8 @@ */ namespace SebastianBergmann\CodeCoverage\Data; +use function array_merge; +use function array_unique; use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; /** @@ -17,26 +19,10 @@ */ final readonly class ProcessedBranchCoverageData { - public function __construct( - public int $op_start, - public int $op_end, - public int $line_start, - public int $line_end, - /** @var list */ - public array $hit, - /** @var array */ - public array $out, - /** @var array */ - public array $out_hit, - - ) - { - } - /** * @param XdebugBranchCoverageType $xdebugCoverageData */ - static public function fromXdebugCoverage(array $xdebugCoverageData): self + public static function fromXdebugCoverage(array $xdebugCoverageData): self { return new self( $xdebugCoverageData['op_start'], @@ -49,6 +35,20 @@ static public function fromXdebugCoverage(array $xdebugCoverageData): self ); } + public function __construct( + public int $op_start, + public int $op_end, + public int $line_start, + public int $line_end, + /** @var list */ + public array $hit, + /** @var array */ + public array $out, + /** @var array */ + public array $out_hit, + ) { + } + public function merge(self $data): self { return new self( @@ -65,8 +65,9 @@ public function merge(self $data): self /** * @param TestIdType $testCaseId */ - public function recordHit(string $testCaseId): self { - $hit = $this->hit; + public function recordHit(string $testCaseId): self + { + $hit = $this->hit; $hit[] = $testCaseId; return new self( @@ -78,6 +79,5 @@ public function recordHit(string $testCaseId): self { $this->out, $this->out_hit, ); - } -} \ No newline at end of file +} diff --git a/src/Data/ProcessedCodeCoverageData.php b/src/Data/ProcessedCodeCoverageData.php index 929e9c0a6..5745ccb08 100644 --- a/src/Data/ProcessedCodeCoverageData.php +++ b/src/Data/ProcessedCodeCoverageData.php @@ -236,7 +236,7 @@ private function priorityForLine(array $data, int $line): int * * @param ProcessedFunctionCoverageData|XdebugFunctionCoverageType $functionData */ - private function initPreviouslyUnseenFunction(string $file, string $functionName, ProcessedFunctionCoverageData|array $functionData): void + private function initPreviouslyUnseenFunction(string $file, string $functionName, array|ProcessedFunctionCoverageData $functionData): void { if (is_array($functionData)) { $functionData = ProcessedFunctionCoverageData::fromXdebugCoverage($functionData); @@ -252,14 +252,14 @@ private function initPreviouslyUnseenFunction(string $file, string $functionName * * @param ProcessedFunctionCoverageData|XdebugFunctionCoverageType $functionData */ - private function initPreviouslySeenFunction(string $file, string $functionName, ProcessedFunctionCoverageData|array $functionData): void + private function initPreviouslySeenFunction(string $file, string $functionName, array|ProcessedFunctionCoverageData $functionData): void { if (is_array($functionData)) { $functionData = ProcessedFunctionCoverageData::fromXdebugCoverage($functionData); } $this->functionCoverage[$file][$functionName] = $this->functionCoverage[$file][$functionName]->merge( - $functionData + $functionData, ); } } diff --git a/src/Data/ProcessedFunctionCoverageData.php b/src/Data/ProcessedFunctionCoverageData.php index a8a9be720..9956c066e 100644 --- a/src/Data/ProcessedFunctionCoverageData.php +++ b/src/Data/ProcessedFunctionCoverageData.php @@ -15,39 +15,43 @@ * @phpstan-import-type TestIdType from ProcessedCodeCoverageData * @phpstan-import-type XdebugFunctionCoverageType from XdebugDriver */ -final class ProcessedFunctionCoverageData { - public function __construct( - /** @var array */ - public array $branches, - /** @var array */ - public array $paths, - - ) {} - +final class ProcessedFunctionCoverageData +{ /** * @param XdebugFunctionCoverageType $xdebugCoverageData */ - static public function fromXdebugCoverage(array $xdebugCoverageData): self + public static function fromXdebugCoverage(array $xdebugCoverageData): self { $branches = []; - foreach($xdebugCoverageData['branches'] as $branchId => $branch) { + + foreach ($xdebugCoverageData['branches'] as $branchId => $branch) { $branches[$branchId] = ProcessedBranchCoverageData::fromXdebugCoverage($branch); } $paths = []; - foreach($xdebugCoverageData['paths'] as $pathId => $path) { + + foreach ($xdebugCoverageData['paths'] as $pathId => $path) { $paths[$pathId] = ProcessedPathCoverageData::fromXdebugCoverage($path); } return new self( $branches, - $paths + $paths, ); } + public function __construct( + /** @var array */ + public array $branches, + /** @var array */ + public array $paths, + ) { + } + public function merge(self $data): self { $branches = $this->branches; - foreach($data->branches as $branchId => $branch) { + + foreach ($data->branches as $branchId => $branch) { if (!isset($branches[$branchId])) { $branches[$branchId] = $branch; } else { @@ -56,7 +60,8 @@ public function merge(self $data): self } $paths = $this->paths; - foreach($data->paths as $pathId => $path) { + + foreach ($data->paths as $pathId => $path) { if (!isset($paths[$pathId])) { $paths[$pathId] = $path; } else { @@ -66,18 +71,20 @@ public function merge(self $data): self return new self( $branches, - $paths + $paths, ); } /** * @param TestIdType $testCaseId */ - public function recordBranchHit(int $branchId, string $testCaseId): void { + public function recordBranchHit(int $branchId, string $testCaseId): void + { $this->branches[$branchId]->recordHit($testCaseId); } - public function recordPathHit(int $pathId, string $testCaseId): void { + public function recordPathHit(int $pathId, string $testCaseId): void + { $this->paths[$pathId]->recordHit($testCaseId); } } diff --git a/src/Data/ProcessedPathCoverageData.php b/src/Data/ProcessedPathCoverageData.php index 1fae81bbf..6c18fd403 100644 --- a/src/Data/ProcessedPathCoverageData.php +++ b/src/Data/ProcessedPathCoverageData.php @@ -9,24 +9,20 @@ */ namespace SebastianBergmann\CodeCoverage\Data; +use function array_merge; +use function array_unique; use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; /** * @phpstan-import-type TestIdType from ProcessedCodeCoverageData * @phpstan-import-type XdebugPathCoverageType from XdebugDriver */ -final readonly class ProcessedPathCoverageData { - public function __construct( - /** @var array */ - public array $path, - /** @var list */ - public array $hit, - ) {} - +final readonly class ProcessedPathCoverageData +{ /** * @param XdebugPathCoverageType $xdebugCoverageData */ - static public function fromXdebugCoverage(array $xdebugCoverageData): self + public static function fromXdebugCoverage(array $xdebugCoverageData): self { return new self( $xdebugCoverageData['path'], @@ -34,6 +30,14 @@ static public function fromXdebugCoverage(array $xdebugCoverageData): self ); } + public function __construct( + /** @var array */ + public array $path, + /** @var list */ + public array $hit, + ) { + } + public function merge(self $data): self { return new self( @@ -47,13 +51,12 @@ public function merge(self $data): self */ public function recordHit(string $testCaseId): self { - $hit = $this->hit; + $hit = $this->hit; $hit[] = $testCaseId; return new self( $this->path, - $hit + $hit, ); } - } diff --git a/tests/tests/Data/ProcessedCodeCoverageDataTest.php b/tests/tests/Data/ProcessedCodeCoverageDataTest.php index 7e7fc7e20..9d19eacb1 100644 --- a/tests/tests/Data/ProcessedCodeCoverageDataTest.php +++ b/tests/tests/Data/ProcessedCodeCoverageDataTest.php @@ -75,28 +75,29 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void $coverage->setFunctionCoverage( [ '/some/path/SomeClass.php' => [ - 'SomeClass->firstFunction' => - new ProcessedFunctionCoverageData( - [ - new ProcessedBranchCoverageData( - 0, - 14, - 20, - 25, - [], - [], - [] - ) - ], - [ - new ProcessedPathCoverageData( - [ - 0 => 0, - ], - [], - ), - ] - ), + 'SomeClass->firstFunction' => [ + new ProcessedFunctionCoverageData( + [ + new ProcessedBranchCoverageData( + 0, + 14, + 20, + 25, + [], + [], + [], + ), + ], + [ + new ProcessedPathCoverageData( + [ + 0 => 0, + ], + [], + ), + ], + ), + ], ], ], ); @@ -105,7 +106,7 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void $newCoverage->setFunctionCoverage( [ '/some/path/SomeClass.php' => [ - 'SomeClass->firstFunction' => new ProcessedFunctionCoverageData( + 'SomeClass->firstFunction' => [new ProcessedFunctionCoverageData( [ new ProcessedBranchCoverageData( 0, @@ -114,7 +115,7 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void 25, [], [], - [] + [], ), new ProcessedBranchCoverageData( 15, @@ -123,45 +124,45 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void 27, [], [], - [] - ) + [], + ), ], [ new ProcessedPathCoverageData( [ 0 => 0, ], - [] + [], ), new ProcessedPathCoverageData( [ 0 => 1, ], - [] - ), - ] - ), - 'SomeClass->secondFunction' => new ProcessedFunctionCoverageData( - [ - new ProcessedBranchCoverageData( - 0, - 24, - 30, - 35, - [], [], - [] ), ], - [ - new ProcessedPathCoverageData( - [ - 0 => 0, - ], - [] - ), - ] ), + 'SomeClass->secondFunction' => new ProcessedFunctionCoverageData( + [ + new ProcessedBranchCoverageData( + 0, + 24, + 30, + 35, + [], + [], + [], + ), + ], + [ + new ProcessedPathCoverageData( + [ + 0 => 0, + ], + [], + ), + ], + )], ], ], ); From 27da68b884125e26546baf29cca9a20456e2906f Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 08:27:47 +0100 Subject: [PATCH 073/106] cs --- .../Data/ProcessedCodeCoverageDataTest.php | 88 +++++++++---------- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/tests/tests/Data/ProcessedCodeCoverageDataTest.php b/tests/tests/Data/ProcessedCodeCoverageDataTest.php index 9d19eacb1..ef8c75e86 100644 --- a/tests/tests/Data/ProcessedCodeCoverageDataTest.php +++ b/tests/tests/Data/ProcessedCodeCoverageDataTest.php @@ -75,29 +75,27 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void $coverage->setFunctionCoverage( [ '/some/path/SomeClass.php' => [ - 'SomeClass->firstFunction' => [ - new ProcessedFunctionCoverageData( - [ - new ProcessedBranchCoverageData( - 0, - 14, - 20, - 25, - [], - [], - [], - ), - ], - [ - new ProcessedPathCoverageData( - [ - 0 => 0, - ], - [], - ), - ], - ), - ], + 'SomeClass->firstFunction' => new ProcessedFunctionCoverageData( + [ + new ProcessedBranchCoverageData( + 0, + 14, + 20, + 25, + [], + [], + [], + ), + ], + [ + new ProcessedPathCoverageData( + [ + 0 => 0, + ], + [], + ), + ], + ), ], ], ); @@ -106,7 +104,7 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void $newCoverage->setFunctionCoverage( [ '/some/path/SomeClass.php' => [ - 'SomeClass->firstFunction' => [new ProcessedFunctionCoverageData( + 'SomeClass->firstFunction' => new ProcessedFunctionCoverageData( [ new ProcessedBranchCoverageData( 0, @@ -142,27 +140,27 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void ), ], ), - 'SomeClass->secondFunction' => new ProcessedFunctionCoverageData( - [ - new ProcessedBranchCoverageData( - 0, - 24, - 30, - 35, - [], - [], - [], - ), - ], - [ - new ProcessedPathCoverageData( - [ - 0 => 0, - ], - [], - ), - ], - )], + 'SomeClass->secondFunction' => new ProcessedFunctionCoverageData( + [ + new ProcessedBranchCoverageData( + 0, + 24, + 30, + 35, + [], + [], + [], + ), + ], + [ + new ProcessedPathCoverageData( + [ + 0 => 0, + ], + [], + ), + ], + ), ], ], ); From b3008bf44b93a4b49dd25cb0072348b6528be79c Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 08:39:32 +0100 Subject: [PATCH 074/106] fix --- src/Node/File.php | 22 ++++++++++--------- .../Data/ProcessedCodeCoverageDataTest.php | 1 + 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Node/File.php b/src/Node/File.php index 9c57dbd03..cc4566d39 100644 --- a/src/Node/File.php +++ b/src/Node/File.php @@ -9,6 +9,8 @@ */ namespace SebastianBergmann\CodeCoverage\Node; +use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; use function array_filter; use function count; use function range; @@ -583,17 +585,17 @@ private function newMethod(string $className, Method $method, string $link): Pro $executableBranches = 0; $executedBranches = 0; - if (isset($this->functionCoverageData[$key]['branches'])) { + if (isset($this->functionCoverageData[$key])) { $executableBranches = count( - $this->functionCoverageData[$key]['branches'], + $this->functionCoverageData[$key]->branches, ); $executedBranches = count( array_filter( - $this->functionCoverageData[$key]['branches'], - static function (array $branch) + $this->functionCoverageData[$key]->branches, + static function (ProcessedBranchCoverageData $branch) { - return (bool) $branch['hit']; + return (bool) $branch->hit; }, ), ); @@ -602,17 +604,17 @@ static function (array $branch) $executablePaths = 0; $executedPaths = 0; - if (isset($this->functionCoverageData[$key]['paths'])) { + if (isset($this->functionCoverageData[$key])) { $executablePaths = count( - $this->functionCoverageData[$key]['paths'], + $this->functionCoverageData[$key]->paths, ); $executedPaths = count( array_filter( - $this->functionCoverageData[$key]['paths'], - static function (array $path) + $this->functionCoverageData[$key]->paths, + static function (ProcessedPathCoverageData $path) { - return (bool) $path['hit']; + return (bool) $path->hit; }, ), ); diff --git a/tests/tests/Data/ProcessedCodeCoverageDataTest.php b/tests/tests/Data/ProcessedCodeCoverageDataTest.php index ef8c75e86..1e380e615 100644 --- a/tests/tests/Data/ProcessedCodeCoverageDataTest.php +++ b/tests/tests/Data/ProcessedCodeCoverageDataTest.php @@ -167,6 +167,7 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void $coverage->merge($newCoverage); + $this->assertIsArray($newCoverage->functionCoverage()['/some/path/SomeClass.php']); $this->assertArrayHasKey('SomeClass->secondFunction', $newCoverage->functionCoverage()['/some/path/SomeClass.php']); } } From 4bf185556ca53d863997f2c718c7eb5cbc0bb025 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 08:41:41 +0100 Subject: [PATCH 075/106] Update ProcessedCodeCoverageDataTest.php --- .../tests/Data/ProcessedCodeCoverageDataTest.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/tests/Data/ProcessedCodeCoverageDataTest.php b/tests/tests/Data/ProcessedCodeCoverageDataTest.php index 1e380e615..e903636b8 100644 --- a/tests/tests/Data/ProcessedCodeCoverageDataTest.php +++ b/tests/tests/Data/ProcessedCodeCoverageDataTest.php @@ -77,7 +77,7 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void '/some/path/SomeClass.php' => [ 'SomeClass->firstFunction' => new ProcessedFunctionCoverageData( [ - new ProcessedBranchCoverageData( + 0 => new ProcessedBranchCoverageData( 0, 14, 20, @@ -88,7 +88,7 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void ), ], [ - new ProcessedPathCoverageData( + 0 => new ProcessedPathCoverageData( [ 0 => 0, ], @@ -106,7 +106,7 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void '/some/path/SomeClass.php' => [ 'SomeClass->firstFunction' => new ProcessedFunctionCoverageData( [ - new ProcessedBranchCoverageData( + 0 => new ProcessedBranchCoverageData( 0, 14, 20, @@ -115,7 +115,7 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void [], [], ), - new ProcessedBranchCoverageData( + 1 => new ProcessedBranchCoverageData( 15, 16, 26, @@ -126,13 +126,13 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void ), ], [ - new ProcessedPathCoverageData( + 0 => new ProcessedPathCoverageData( [ 0 => 0, ], [], ), - new ProcessedPathCoverageData( + 1 => new ProcessedPathCoverageData( [ 0 => 1, ], @@ -142,7 +142,7 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void ), 'SomeClass->secondFunction' => new ProcessedFunctionCoverageData( [ - new ProcessedBranchCoverageData( + 0 => new ProcessedBranchCoverageData( 0, 24, 30, @@ -153,7 +153,7 @@ public function testMergeDoesNotCrashWhenFileContentsHaveChanged(): void ), ], [ - new ProcessedPathCoverageData( + 0 => new ProcessedPathCoverageData( [ 0 => 0, ], From 942c367d8fcd5d446a470e6417abe8f7d09ed971 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 16:26:18 +0100 Subject: [PATCH 076/106] fix --- src/Data/ProcessedBranchCoverageData.php | 30 ++++++++-------------- src/Data/ProcessedFunctionCoverageData.php | 2 +- src/Data/ProcessedPathCoverageData.php | 16 +++++------- 3 files changed, 17 insertions(+), 31 deletions(-) diff --git a/src/Data/ProcessedBranchCoverageData.php b/src/Data/ProcessedBranchCoverageData.php index 1d32d604a..dfaa8cea4 100644 --- a/src/Data/ProcessedBranchCoverageData.php +++ b/src/Data/ProcessedBranchCoverageData.php @@ -17,7 +17,7 @@ * @phpstan-import-type TestIdType from ProcessedCodeCoverageData * @phpstan-import-type XdebugBranchCoverageType from XdebugDriver */ -final readonly class ProcessedBranchCoverageData +final class ProcessedBranchCoverageData { /** * @param XdebugBranchCoverageType $xdebugCoverageData @@ -36,19 +36,20 @@ public static function fromXdebugCoverage(array $xdebugCoverageData): self } public function __construct( - public int $op_start, - public int $op_end, - public int $line_start, - public int $line_end, + readonly public int $op_start, + readonly public int $op_end, + readonly public int $line_start, + readonly public int $line_end, /** @var list */ public array $hit, /** @var array */ - public array $out, + readonly public array $out, /** @var array */ - public array $out_hit, + readonly public array $out_hit, ) { } + #[\NoDiscard] public function merge(self $data): self { return new self( @@ -65,19 +66,8 @@ public function merge(self $data): self /** * @param TestIdType $testCaseId */ - public function recordHit(string $testCaseId): self + public function recordHit(string $testCaseId): void { - $hit = $this->hit; - $hit[] = $testCaseId; - - return new self( - $this->op_start, - $this->op_end, - $this->line_start, - $this->line_end, - $hit, - $this->out, - $this->out_hit, - ); + $this->hit[] = $testCaseId; } } diff --git a/src/Data/ProcessedFunctionCoverageData.php b/src/Data/ProcessedFunctionCoverageData.php index 9956c066e..52b63427b 100644 --- a/src/Data/ProcessedFunctionCoverageData.php +++ b/src/Data/ProcessedFunctionCoverageData.php @@ -15,7 +15,7 @@ * @phpstan-import-type TestIdType from ProcessedCodeCoverageData * @phpstan-import-type XdebugFunctionCoverageType from XdebugDriver */ -final class ProcessedFunctionCoverageData +final readonly class ProcessedFunctionCoverageData { /** * @param XdebugFunctionCoverageType $xdebugCoverageData diff --git a/src/Data/ProcessedPathCoverageData.php b/src/Data/ProcessedPathCoverageData.php index 6c18fd403..aabc71e82 100644 --- a/src/Data/ProcessedPathCoverageData.php +++ b/src/Data/ProcessedPathCoverageData.php @@ -9,6 +9,7 @@ */ namespace SebastianBergmann\CodeCoverage\Data; +use NoDiscard; use function array_merge; use function array_unique; use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; @@ -17,7 +18,7 @@ * @phpstan-import-type TestIdType from ProcessedCodeCoverageData * @phpstan-import-type XdebugPathCoverageType from XdebugDriver */ -final readonly class ProcessedPathCoverageData +final class ProcessedPathCoverageData { /** * @param XdebugPathCoverageType $xdebugCoverageData @@ -32,12 +33,13 @@ public static function fromXdebugCoverage(array $xdebugCoverageData): self public function __construct( /** @var array */ - public array $path, + public readonly array $path, /** @var list */ public array $hit, ) { } + #[\NoDiscard] public function merge(self $data): self { return new self( @@ -49,14 +51,8 @@ public function merge(self $data): self /** * @param TestIdType $testCaseId */ - public function recordHit(string $testCaseId): self + public function recordHit(string $testCaseId): void { - $hit = $this->hit; - $hit[] = $testCaseId; - - return new self( - $this->path, - $hit, - ); + $this->hit[] = $testCaseId; } } From 4c075c4753a6ab9b729c4ec32885411e53d8189f Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 16:30:04 +0100 Subject: [PATCH 077/106] Update File.php --- src/Node/File.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Node/File.php b/src/Node/File.php index cc4566d39..bca665cd9 100644 --- a/src/Node/File.php +++ b/src/Node/File.php @@ -539,33 +539,33 @@ private function processFunctions(array $functions): void $this->codeUnitsByLine[$lineNumber] = [&$this->functions[$functionName]]; } - if (isset($this->functionCoverageData[$functionName]['branches'])) { - $this->functions[$functionName]->executableBranches = count( - $this->functionCoverageData[$functionName]['branches'], + if (isset($this->functionCoverageData[$functionName])) { + $this->functions[$functionName]['executableBranches'] = count( + $this->functionCoverageData[$functionName]->branches, ); $this->functions[$functionName]->executedBranches = count( array_filter( - $this->functionCoverageData[$functionName]['branches'], - static function (array $branch) + $this->functionCoverageData[$functionName]->branches, + static function (ProcessedBranchCoverageData $branch) { - return (bool) $branch['hit']; + return (bool) $branch->hit; }, ), ); } - if (isset($this->functionCoverageData[$functionName]['paths'])) { - $this->functions[$functionName]->executablePaths = count( - $this->functionCoverageData[$functionName]['paths'], + if (isset($this->functionCoverageData[$functionName])) { + $this->functions[$functionName]['executablePaths'] = count( + $this->functionCoverageData[$functionName]->paths, ); $this->functions[$functionName]->executedPaths = count( array_filter( - $this->functionCoverageData[$functionName]['paths'], - static function (array $path) + $this->functionCoverageData[$functionName]->paths, + static function (ProcessedPathCoverageData $path) { - return (bool) $path['hit']; + return (bool) $path->hit; }, ), ); From 94ea5afe13ac6eeededbb43bfc0da8b9c7830a60 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 17:05:39 +0100 Subject: [PATCH 078/106] optimize --- src/Data/ProcessedBranchCoverageData.php | 4 ++++ src/Data/ProcessedPathCoverageData.php | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/Data/ProcessedBranchCoverageData.php b/src/Data/ProcessedBranchCoverageData.php index dfaa8cea4..043460c89 100644 --- a/src/Data/ProcessedBranchCoverageData.php +++ b/src/Data/ProcessedBranchCoverageData.php @@ -52,6 +52,10 @@ public function __construct( #[\NoDiscard] public function merge(self $data): self { + if ($data->hit === []) { + return $this; + } + return new self( $this->op_start, $this->op_end, diff --git a/src/Data/ProcessedPathCoverageData.php b/src/Data/ProcessedPathCoverageData.php index aabc71e82..d40bc4723 100644 --- a/src/Data/ProcessedPathCoverageData.php +++ b/src/Data/ProcessedPathCoverageData.php @@ -42,6 +42,10 @@ public function __construct( #[\NoDiscard] public function merge(self $data): self { + if ($data->hit === []) { + return $this; + } + return new self( $this->path, array_unique(array_merge($this->hit, $data->hit)), From 074120290f916b69a173b6a7e609c0f9003bd5db Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 17:10:17 +0100 Subject: [PATCH 079/106] Update ProcessedPathCoverageData.php --- src/Data/ProcessedPathCoverageData.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Data/ProcessedPathCoverageData.php b/src/Data/ProcessedPathCoverageData.php index d40bc4723..4314e6a85 100644 --- a/src/Data/ProcessedPathCoverageData.php +++ b/src/Data/ProcessedPathCoverageData.php @@ -45,7 +45,7 @@ public function merge(self $data): self if ($data->hit === []) { return $this; } - + return new self( $this->path, array_unique(array_merge($this->hit, $data->hit)), From 89e87b362d39d0809554640a08f7b13db623703c Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 17:22:03 +0100 Subject: [PATCH 080/106] Update ProcessedFunctionCoverageData.php --- src/Data/ProcessedFunctionCoverageData.php | 39 ++++++++++++++-------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/src/Data/ProcessedFunctionCoverageData.php b/src/Data/ProcessedFunctionCoverageData.php index 52b63427b..03414d9e6 100644 --- a/src/Data/ProcessedFunctionCoverageData.php +++ b/src/Data/ProcessedFunctionCoverageData.php @@ -49,26 +49,34 @@ public function __construct( public function merge(self $data): self { - $branches = $this->branches; - - foreach ($data->branches as $branchId => $branch) { - if (!isset($branches[$branchId])) { - $branches[$branchId] = $branch; - } else { - $branches[$branchId] = $branches[$branchId]->merge($branch); + $branches = null; + if ($data->branches !== $this->branches) { + $branches = $this->branches; + foreach ($data->branches as $branchId => $branch) { + if (!isset($branches[$branchId])) { + $branches[$branchId] = $branch; + } else { + $branches[$branchId] = $branches[$branchId]->merge($branch); + } } } - $paths = $this->paths; - - foreach ($data->paths as $pathId => $path) { - if (!isset($paths[$pathId])) { - $paths[$pathId] = $path; - } else { - $paths[$pathId] = $paths[$pathId]->merge($path); + $paths = null; + if ($data->paths !== $this->paths) { + $paths = $this->paths; + foreach ($data->paths as $pathId => $path) { + if (!isset($paths[$pathId])) { + $paths[$pathId] = $path; + } else { + $paths[$pathId] = $paths[$pathId]->merge($path); + } } } + if ($branches === null && $paths === null) { + return $this; + } + return new self( $branches, $paths, @@ -83,6 +91,9 @@ public function recordBranchHit(int $branchId, string $testCaseId): void $this->branches[$branchId]->recordHit($testCaseId); } + /** + * @param TestIdType $testCaseId + */ public function recordPathHit(int $pathId, string $testCaseId): void { $this->paths[$pathId]->recordHit($testCaseId); From 7831ddab6daa9fddc9a9e1cdaa52f39a8baa4767 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 17:22:22 +0100 Subject: [PATCH 081/106] cs --- src/Data/ProcessedBranchCoverageData.php | 15 ++++++++------- src/Data/ProcessedFunctionCoverageData.php | 4 ++++ src/Data/ProcessedPathCoverageData.php | 4 ++-- src/Node/File.php | 4 ++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/Data/ProcessedBranchCoverageData.php b/src/Data/ProcessedBranchCoverageData.php index 043460c89..2b6076160 100644 --- a/src/Data/ProcessedBranchCoverageData.php +++ b/src/Data/ProcessedBranchCoverageData.php @@ -11,6 +11,7 @@ use function array_merge; use function array_unique; +use NoDiscard; use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; /** @@ -36,20 +37,20 @@ public static function fromXdebugCoverage(array $xdebugCoverageData): self } public function __construct( - readonly public int $op_start, - readonly public int $op_end, - readonly public int $line_start, - readonly public int $line_end, + public readonly int $op_start, + public readonly int $op_end, + public readonly int $line_start, + public readonly int $line_end, /** @var list */ public array $hit, /** @var array */ - readonly public array $out, + public readonly array $out, /** @var array */ - readonly public array $out_hit, + public readonly array $out_hit, ) { } - #[\NoDiscard] + #[NoDiscard] public function merge(self $data): self { if ($data->hit === []) { diff --git a/src/Data/ProcessedFunctionCoverageData.php b/src/Data/ProcessedFunctionCoverageData.php index 03414d9e6..39dcd9205 100644 --- a/src/Data/ProcessedFunctionCoverageData.php +++ b/src/Data/ProcessedFunctionCoverageData.php @@ -50,8 +50,10 @@ public function __construct( public function merge(self $data): self { $branches = null; + if ($data->branches !== $this->branches) { $branches = $this->branches; + foreach ($data->branches as $branchId => $branch) { if (!isset($branches[$branchId])) { $branches[$branchId] = $branch; @@ -62,8 +64,10 @@ public function merge(self $data): self } $paths = null; + if ($data->paths !== $this->paths) { $paths = $this->paths; + foreach ($data->paths as $pathId => $path) { if (!isset($paths[$pathId])) { $paths[$pathId] = $path; diff --git a/src/Data/ProcessedPathCoverageData.php b/src/Data/ProcessedPathCoverageData.php index 4314e6a85..ccb651931 100644 --- a/src/Data/ProcessedPathCoverageData.php +++ b/src/Data/ProcessedPathCoverageData.php @@ -9,9 +9,9 @@ */ namespace SebastianBergmann\CodeCoverage\Data; -use NoDiscard; use function array_merge; use function array_unique; +use NoDiscard; use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; /** @@ -39,7 +39,7 @@ public function __construct( ) { } - #[\NoDiscard] + #[NoDiscard] public function merge(self $data): self { if ($data->hit === []) { diff --git a/src/Node/File.php b/src/Node/File.php index bca665cd9..97fa8bbc6 100644 --- a/src/Node/File.php +++ b/src/Node/File.php @@ -9,8 +9,6 @@ */ namespace SebastianBergmann\CodeCoverage\Node; -use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; -use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; use function array_filter; use function count; use function range; @@ -19,6 +17,8 @@ use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionType; use SebastianBergmann\CodeCoverage\Data\ProcessedMethodType; use SebastianBergmann\CodeCoverage\Data\ProcessedTraitType; +use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; use SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult; use SebastianBergmann\CodeCoverage\StaticAnalysis\Class_; use SebastianBergmann\CodeCoverage\StaticAnalysis\Function_; From 4d7f2014daa28414cad57a77826d2f357beb85c3 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 9 Nov 2025 17:56:50 +0100 Subject: [PATCH 082/106] fix --- src/Report/Html/Renderer/File.php | 49 +++++++++++++++++-------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/src/Report/Html/Renderer/File.php b/src/Report/Html/Renderer/File.php index 9564e99e9..a141d2d77 100644 --- a/src/Report/Html/Renderer/File.php +++ b/src/Report/Html/Renderer/File.php @@ -9,6 +9,9 @@ */ namespace SebastianBergmann\CodeCoverage\Report\Html; +use SebastianBergmann\CodeCoverage\Data\ProcessedBranchCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedFunctionCoverageData; +use SebastianBergmann\CodeCoverage\Data\ProcessedPathCoverageData; use const ENT_COMPAT; use const ENT_HTML401; use const ENT_SUBSTITUTE; @@ -603,18 +606,20 @@ private function renderSourceWithBranchCoverage(FileNode $node): string ]; } + /** @var ProcessedFunctionCoverageData $method */ foreach ($functionCoverageData as $method) { - foreach ($method['branches'] as $branch) { - foreach (range($branch['line_start'], $branch['line_end']) as $line) { + /** @var ProcessedBranchCoverageData $branch */ + foreach ($method->branches as $branch) { + foreach (range($branch->line_start, $branch->line_end) as $line) { if (!isset($lineData[$line])) { // blank line at end of file is sometimes included here continue; } $lineData[$line]['includedInBranches']++; - if ($branch['hit']) { + if ($branch->hit !== []) { $lineData[$line]['includedInHitBranches']++; - $lineData[$line]['tests'] = array_unique(array_merge($lineData[$line]['tests'], $branch['hit'])); + $lineData[$line]['tests'] = array_unique(array_merge($lineData[$line]['tests'], $branch->hit)); } } } @@ -689,18 +694,20 @@ private function renderSourceWithPathCoverage(FileNode $node): string ]; } + /** @var ProcessedFunctionCoverageData $method */ foreach ($functionCoverageData as $method) { - foreach ($method['paths'] as $pathId => $path) { - foreach ($path['path'] as $branchTaken) { - foreach (range($method['branches'][$branchTaken]['line_start'], $method['branches'][$branchTaken]['line_end']) as $line) { + /** @var ProcessedPathCoverageData $path */ + foreach ($method->paths as $pathId => $path) { + foreach ($path->path as $branchTaken) { + foreach (range($method->branches[$branchTaken]->line_start, $method->branches[$branchTaken]->line_end) as $line) { if (!isset($lineData[$line])) { continue; } $lineData[$line]['includedInPaths'][] = $pathId; - if ($path['hit']) { + if ($path->hit !== []) { $lineData[$line]['includedInHitPaths'][] = $pathId; - $lineData[$line]['tests'] = array_unique(array_merge($lineData[$line]['tests'], $path['hit'])); + $lineData[$line]['tests'] = array_unique(array_merge($lineData[$line]['tests'], $path->hit)); } } } @@ -873,21 +880,18 @@ private function renderPathStructure(FileNode $node): string ksort($coverageData); + /** @var ProcessedFunctionCoverageData $methodData */ foreach ($coverageData as $methodName => $methodData) { - if (!$methodData['paths']) { - continue; - } - $pathStructure = ''; - if (count($methodData['paths']) > 100) { - $pathStructure .= '