From b5c9976259f2f17d48df18591396a53bb2c5dfed Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 4 Nov 2025 17:55:34 +0100 Subject: [PATCH 01/10] Mutation Testing: Create coverage in parallel --- .github/workflows/tests.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8372725ccd..3407aaacc4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -257,12 +257,16 @@ jobs: restore-keys: | result-cache-v1-${{ matrix.php-version }}- + - name: "Create coverage" + run: php -d pcov.enabled=1 tests/vendor/bin/paratest --passthru-php="'-d' 'pcov.enabled=1'" --runner WrapperRunner + - name: "Run infection" run: | git fetch --depth=1 origin ${{ steps.default-branch.outputs.name }} infection \ --git-diff-base=origin/${{ steps.default-branch.outputs.name }} \ --git-diff-lines \ + --skip-initial-tests \ --ignore-msi-with-no-mutations \ --min-msi=100 \ --min-covered-msi=100 \ From 695350f46f92f8c39d8916a0be87e8ab4d387c5c Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 4 Nov 2025 17:57:40 +0100 Subject: [PATCH 02/10] Update ArrayMapFunctionReturnTypeExtension.php --- src/Type/Php/ArrayMapFunctionReturnTypeExtension.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php b/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php index b58638dddf..d89a8f519c 100644 --- a/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php +++ b/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php @@ -46,6 +46,7 @@ public function getTypeFromFunctionCall(FunctionReflection $functionReflection, $callback = $functionCall->getArgs()[0]->value; $callableType = $scope->getType($callback); $callableIsNull = $callableType->isNull()->yes(); + $x = $callableType->isNull()->yes(); if ($callableType->isCallable()->yes()) { $valueType = $scope->getType(new FuncCall( From f9099c5b246daad7207dd259d151b9d3cbddfaf5 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 4 Nov 2025 18:10:53 +0100 Subject: [PATCH 03/10] fix --- .github/workflows/tests.yml | 7 ++++++- phpunit.xml | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3407aaacc4..0c2cbb1b55 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -258,7 +258,11 @@ jobs: result-cache-v1-${{ matrix.php-version }}- - name: "Create coverage" - run: php -d pcov.enabled=1 tests/vendor/bin/paratest --passthru-php="'-d' 'pcov.enabled=1'" --runner WrapperRunner + run: | + php -d pcov.enabled=1 tests/vendor/bin/paratest \ + --passthru-php="'-d' 'pcov.enabled=1'" \ + --runner WrapperRunner \ + --coverage-xml=coverage.xml - name: "Run infection" run: | @@ -266,6 +270,7 @@ jobs: infection \ --git-diff-base=origin/${{ steps.default-branch.outputs.name }} \ --git-diff-lines \ + --coverage=coverage.xml \ --skip-initial-tests \ --ignore-msi-with-no-mutations \ --min-msi=100 \ diff --git a/phpunit.xml b/phpunit.xml index 8411e782a1..8caf6bb5e6 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -15,5 +15,10 @@ levels + + + src + + From 987d6d4b6b8753b339ff2a6638b0f37e0f3443c8 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 4 Nov 2025 18:18:11 +0100 Subject: [PATCH 04/10] Update tests.yml --- .github/workflows/tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0c2cbb1b55..f18cf340b5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -259,10 +259,10 @@ jobs: - name: "Create coverage" run: | - php -d pcov.enabled=1 tests/vendor/bin/paratest \ + php -d pcov.enabled=1 vendor/bin/paratest \ --passthru-php="'-d' 'pcov.enabled=1'" \ --runner WrapperRunner \ - --coverage-xml=coverage.xml + --coverage-xml=coverage-xml - name: "Run infection" run: | @@ -270,7 +270,7 @@ jobs: infection \ --git-diff-base=origin/${{ steps.default-branch.outputs.name }} \ --git-diff-lines \ - --coverage=coverage.xml \ + --coverage=coverage-xml \ --skip-initial-tests \ --ignore-msi-with-no-mutations \ --min-msi=100 \ From 69c0496fa0c95a5e40b728edfd96d335976a5621 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 4 Nov 2025 18:26:55 +0100 Subject: [PATCH 05/10] re-trigger tests --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f18cf340b5..69a19d91fe 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -201,7 +201,7 @@ jobs: mutation-testing: name: "Mutation Testing" runs-on: "ubuntu-latest" - needs: ["tests"] + #needs: ["tests"] if: github.event_name == 'pull_request' strategy: @@ -257,7 +257,7 @@ jobs: restore-keys: | result-cache-v1-${{ matrix.php-version }}- - - name: "Create coverage" + - name: "Create coverage in parallel" run: | php -d pcov.enabled=1 vendor/bin/paratest \ --passthru-php="'-d' 'pcov.enabled=1'" \ From 8c805a5661793585e351a194fdb71f943bf27912 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 4 Nov 2025 18:29:05 +0100 Subject: [PATCH 06/10] Update tests.yml --- .github/workflows/tests.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 69a19d91fe..36d3baca76 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -232,6 +232,10 @@ jobs: - name: "Install dependencies" run: "composer install --no-interaction --no-progress" + - name: "Install Tests dependencies" + working-directory: "tests" + run: "composer install --no-interaction --no-progress" + - name: "Install build-infection dependencies" working-directory: "build-infection" run: "composer install --no-interaction --no-progress" @@ -259,7 +263,7 @@ jobs: - name: "Create coverage in parallel" run: | - php -d pcov.enabled=1 vendor/bin/paratest \ + php -d pcov.enabled=1 tests/vendor/bin/paratest \ --passthru-php="'-d' 'pcov.enabled=1'" \ --runner WrapperRunner \ --coverage-xml=coverage-xml From c5a50b338326cbc906da3fbc1fbaf8af7a8f7423 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 4 Nov 2025 18:40:38 +0100 Subject: [PATCH 07/10] Update tests.yml --- .github/workflows/tests.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 36d3baca76..d0892c773e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -229,16 +229,15 @@ jobs: php-version: "${{ matrix.php-version }}" extensions: ds,mbstring - - name: "Install dependencies" - run: "composer install --no-interaction --no-progress" + - uses: "ramsey/composer-install@v3" - - name: "Install Tests dependencies" - working-directory: "tests" - run: "composer install --no-interaction --no-progress" + - uses: "ramsey/composer-install@v3" + with: + working-directory: "tests/" - - name: "Install build-infection dependencies" - working-directory: "build-infection" - run: "composer install --no-interaction --no-progress" + - uses: "ramsey/composer-install@v3" + with: + working-directory: "build-infection/" - name: "Configure infection" run: | @@ -261,12 +260,13 @@ jobs: restore-keys: | result-cache-v1-${{ matrix.php-version }}- + # see https://infection.github.io/guide/command-line-options.html#coverage - name: "Create coverage in parallel" run: | php -d pcov.enabled=1 tests/vendor/bin/paratest \ --passthru-php="'-d' 'pcov.enabled=1'" \ --runner WrapperRunner \ - --coverage-xml=coverage-xml + --coverage-xml=tmp/coverage/coverage-xml --log-junit=tmp/coverage/junit.xml - name: "Run infection" run: | @@ -274,7 +274,7 @@ jobs: infection \ --git-diff-base=origin/${{ steps.default-branch.outputs.name }} \ --git-diff-lines \ - --coverage=coverage-xml \ + --coverage=tmp/coverage \ --skip-initial-tests \ --ignore-msi-with-no-mutations \ --min-msi=100 \ From 45e1bea03c36360c3ae82fc34341e5a8c04be067 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 4 Nov 2025 18:59:27 +0100 Subject: [PATCH 08/10] Update tests.yml --- .github/workflows/tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d0892c773e..9ee3302585 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -265,7 +265,6 @@ jobs: run: | php -d pcov.enabled=1 tests/vendor/bin/paratest \ --passthru-php="'-d' 'pcov.enabled=1'" \ - --runner WrapperRunner \ --coverage-xml=tmp/coverage/coverage-xml --log-junit=tmp/coverage/junit.xml - name: "Run infection" From 85d550987efac54f58d2f1abfc4b70b9b8931fde Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 4 Nov 2025 21:23:13 +0100 Subject: [PATCH 09/10] Update tests.yml --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9ee3302585..83ddbec786 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -201,7 +201,7 @@ jobs: mutation-testing: name: "Mutation Testing" runs-on: "ubuntu-latest" - #needs: ["tests"] + needs: ["tests"] if: github.event_name == 'pull_request' strategy: From f23e2e66e9523d5f70a8442b9d4fcd0abae9f67e Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 4 Nov 2025 21:23:25 +0100 Subject: [PATCH 10/10] Discard changes to src/Type/Php/ArrayMapFunctionReturnTypeExtension.php --- src/Type/Php/ArrayMapFunctionReturnTypeExtension.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php b/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php index d89a8f519c..b58638dddf 100644 --- a/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php +++ b/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php @@ -46,7 +46,6 @@ public function getTypeFromFunctionCall(FunctionReflection $functionReflection, $callback = $functionCall->getArgs()[0]->value; $callableType = $scope->getType($callback); $callableIsNull = $callableType->isNull()->yes(); - $x = $callableType->isNull()->yes(); if ($callableType->isCallable()->yes()) { $valueType = $scope->getType(new FuncCall(