From af5a3482ef6ab8b554572e54cc8d5e0c90b93558 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 0d5a7302ef720aabef3c59e721b47f13535ef3e1 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 beb95b887c55761bca4f3bc54bc1c511f2a1b8ae 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 57d20ae2dfc8104bc7ea38ac84a92a77bc96ddb4 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 e07a81e577cee1daefd560ce10c67181dbd50a1e 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 20717f44fac81138e6aa19f2f715cca74193beef 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 a2722139fa8afa2b36322c03634fccedf3e4ab13 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 7858c15013fa24e6118b42a29158c947b6d011d6 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 82bc1206ff9e92bcb08b1eb23bfba8fde07c245e 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 9eb99d8b6d68e59ddc415672a10a93b61ba54732 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(