Skip to content

Commit

Permalink
Merge pull request #809 from ergebnis/feature/generate
Browse files Browse the repository at this point in the history
Enhancement: Generate test cases for `VersionConstraintNormalizer`
  • Loading branch information
localheinz committed Jan 3, 2023
2 parents 741b16b + 8a7c90f commit 5863abd
Show file tree
Hide file tree
Showing 212 changed files with 2,777 additions and 368 deletions.
1 change: 1 addition & 0 deletions .github/settings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ branches:
required_status_checks:
checks:
- context: "Code Coverage (8.0, locked)"
- context: "Code Generation (8.0, locked)"
- context: "Coding Standards (8.0, locked)"
- context: "Dependency Analysis (8.0, locked)"
- context: "Mutation Tests (8.0, locked)"
Expand Down
51 changes: 51 additions & 0 deletions .github/workflows/integrate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,57 @@ jobs:
files: ".build/phpunit/logs/clover.xml"
token: "${{ secrets.CODECOV_TOKEN }}"

code-generation:
name: "Code Generation"

runs-on: "ubuntu-latest"

strategy:
matrix:
php-version:
- "8.0"

dependencies:
- "locked"

steps:
- name: "Checkout"
uses: "actions/checkout@v3.2.0"

- name: "Set up PHP"
uses: "shivammathur/setup-php@2.23.0"
with:
coverage: "xdebug"
extensions: "none, ctype, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter"
php-version: "${{ matrix.php-version }}"

- name: "Set up problem matchers for PHP"
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\""

- name: "Set up problem matchers for phpunit/phpunit"
run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\""

- name: "Determine composer cache directory"
uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.7.0"

- name: "Cache dependencies installed with composer"
uses: "actions/cache@v3.2.2"
with:
path: "${{ env.COMPOSER_CACHE_DIR }}"
key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}"
restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-"

- name: "Install ${{ matrix.dependencies }} dependencies with composer"
uses: "ergebnis/.github/actions/composer/install@1.7.0"
with:
dependencies: "${{ matrix.dependencies }}"

- name: "Generate code"
run: "php test/Template/generate.php"

- name: "Run git diff to determine whether generated code has been modified"
run: "git diff --exit-code"

coding-standards:
name: "Coding Standards"

Expand Down
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ code-coverage: vendor ## Collects coverage from running unit tests with phpunit/
mkdir -p .build/phpunit
vendor/bin/phpunit --configuration=test/Unit/phpunit.xml --coverage-text

.PHONY: code-generation
code-generation: vendor ## Generates code
php test/Template/generate.php

.PHONY: coding-standards
coding-standards: vendor ## Lints YAML files with yamllint, normalizes composer.json with ergebnis/composer-normalize, and fixes code style issues with friendsofphp/php-cs-fixer
yamllint -c .yamllint.yaml --strict .
Expand All @@ -22,7 +26,7 @@ help: ## Displays this list of targets with descriptions
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}'

.PHONY: mutation-tests
mutation-tests: vendor ## Runs mutation tests with infection/infection
mutation-tests: vendor code-generation ## Runs mutation tests with infection/infection
mkdir -p .build/infection
vendor/bin/infection --configuration=infection.json

Expand Down Expand Up @@ -52,7 +56,7 @@ static-code-analysis-baseline: vendor ## Generates a baseline for static code an
vendor/bin/psalm --config=psalm.xml --set-baseline=psalm-baseline.xml

.PHONY: tests
tests: vendor ## Runs unit tests with phpunit/phpunit
tests: vendor code-generation ## Runs unit tests with phpunit/phpunit
mkdir -p .build/phpunit
vendor/bin/phpunit --configuration=test/Unit/phpunit.xml

Expand Down
2 changes: 2 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
"phpunit/phpunit": "^9.5.27",
"psalm/plugin-phpunit": "~0.18.4",
"rector/rector": "~0.15.2",
"symfony/filesystem": "^5.0.0 || ^6.0.0",
"symfony/finder": "^5.0.0 || ^6.0.0",
"vimeo/psalm": "^5.4.0"
},
"autoload": {
Expand Down
2 changes: 1 addition & 1 deletion composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#branches",
"conflict": {
"branch/01-main-trimmed": "dev-main",
"branch/02-main-untrimmed": "dev-main",
"branch/03-main-referencing-commit-trimmed": "dev-main#bf2eeff",
"branch/04-main-referencing-commit-untrimmed": "dev-main#bf2eeff",
"branch/05-my-feature-trimmed": "dev-my-feature",
"branch/06-my-feature-untrimmed": "dev-my-feature"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#branches",
"conflict": {
"branch/01-main-trimmed": "dev-main",
"branch/02-main-untrimmed": " dev-main ",
"branch/03-main-referencing-commit-trimmed": "dev-main#bf2eeff",
"branch/04-main-referencing-commit-untrimmed": " dev-main#bf2eeff ",
"branch/05-my-feature-trimmed": "dev-my-feature",
"branch/06-my-feature-untrimmed": " dev-my-feature "
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"homepage": "https://getcomposer.org/doc/articles/aliases.md#require-inline-alias",
"conflict": {
"branch/01-main-as-branch-alias-space-single-trimmed": "dev-main as 1.0.x-dev",
"branch/02-main-as-branch-alias-space-single-untrimmed": "dev-main as 1.0.x-dev",
"branch/03-main-as-branch-alias-space-double-trimmed": "dev-main as 1.0.x-dev",
"branch/04-main-as-branch-alias-space-double-untrimmed": "dev-main as 1.0.x-dev",
"branch/05-main-as-major-space-single-trimmed": "dev-main as 1",
"branch/06-main-as-major-space-single-untrimmed": "dev-main as 1",
"branch/07-main-as-major-space-double-trimmed": "dev-main as 1",
"branch/08-main-as-major-space-double-untrimmed": "dev-main as 1",
"branch/09-main-as-major-minor-space-single-trimmed": "dev-main as 1.1",
"branch/10-main-as-major-minor-space-single-untrimmed": "dev-main as 1.1",
"branch/11-main-as-major-minor-space-double-trimmed": "dev-main as 1.1",
"branch/12-main-as-major-minor-space-double-untrimmed": "dev-main as 1.1",
"branch/13-main-as-major-minor-patch-space-single-trimmed": "dev-main as 1.2.3",
"branch/14-main-as-major-minor-patch-space-single-untrimmed": "dev-main as 1.2.3",
"branch/15-main-as-major-minor-patch-space-double-trimmed": "dev-main as 1.2.3",
"branch/16-main-as-major-minor-patch-space-double-untrimmed": "dev-main as 1.2.3",
"branch/17-main-referencing-commit-as-branch-alias-space-single-trimmed": "dev-main#bf2eeff as 1.0.x-dev",
"branch/18-main-referencing-commit-as-branch-alias-space-single-untrimmed": "dev-main#bf2eeff as 1.0.x-dev",
"branch/19-main-referencing-commit-as-branch-alias-space-double-trimmed": "dev-main#bf2eeff as 1.0.x-dev",
"branch/20-main-referencing-commit-as-branch-alias-space-double-untrimmed": "dev-main#bf2eeff as 1.0.x-dev",
"branch/21-main-referencing-commit-as-major-space-single-trimmed": "dev-main#bf2eeff as 1",
"branch/22-main-referencing-commit-as-major-space-single-untrimmed": "dev-main#bf2eeff as 1",
"branch/23-main-referencing-commit-as-major-space-double-trimmed": "dev-main#bf2eeff as 1",
"branch/24-main-referencing-commit-as-major-space-double-untrimmed": "dev-main#bf2eeff as 1",
"branch/25-main-referencing-commit-as-major-minor-space-single-trimmed": "dev-main#bf2eeff as 1.1",
"branch/26-main-referencing-commit-as-major-minor-space-single-untrimmed": "dev-main#bf2eeff as 1.1",
"branch/27-main-referencing-commit-as-major-minor-space-double-trimmed": "dev-main#bf2eeff as 1.1",
"branch/28-main-referencing-commit-as-major-minor-space-double-untrimmed": "dev-main#bf2eeff as 1.1",
"branch/29-main-referencing-commit-as-major-minor-patch-space-single-trimmed": "dev-main#bf2eeff as 1.2.3",
"branch/30-main-referencing-commit-as-major-minor-patch-space-single-untrimmed": "dev-main#bf2eeff as 1.2.3",
"branch/31-main-referencing-commit-as-major-minor-patch-space-double-trimmed": "dev-main#bf2eeff as 1.2.3",
"branch/32-main-referencing-commit-as-major-minor-patch-space-double-untrimmed": "dev-main#bf2eeff as 1.2.3"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"homepage": "https://getcomposer.org/doc/articles/aliases.md#require-inline-alias",
"conflict": {
"branch/01-main-as-branch-alias-space-single-trimmed": "dev-main as 1.0.x-dev",
"branch/02-main-as-branch-alias-space-single-untrimmed": " dev-main as 1.0.x-dev ",
"branch/03-main-as-branch-alias-space-double-trimmed": "dev-main as 1.0.x-dev",
"branch/04-main-as-branch-alias-space-double-untrimmed": " dev-main as 1.0.x-dev ",
"branch/05-main-as-major-space-single-trimmed": "dev-main as 1",
"branch/06-main-as-major-space-single-untrimmed": " dev-main as 1 ",
"branch/07-main-as-major-space-double-trimmed": "dev-main as 1",
"branch/08-main-as-major-space-double-untrimmed": " dev-main as 1 ",
"branch/09-main-as-major-minor-space-single-trimmed": "dev-main as 1.1",
"branch/10-main-as-major-minor-space-single-untrimmed": " dev-main as 1.1 ",
"branch/11-main-as-major-minor-space-double-trimmed": "dev-main as 1.1",
"branch/12-main-as-major-minor-space-double-untrimmed": " dev-main as 1.1 ",
"branch/13-main-as-major-minor-patch-space-single-trimmed": "dev-main as 1.2.3",
"branch/14-main-as-major-minor-patch-space-single-untrimmed": " dev-main as 1.2.3 ",
"branch/15-main-as-major-minor-patch-space-double-trimmed": "dev-main as 1.2.3",
"branch/16-main-as-major-minor-patch-space-double-untrimmed": " dev-main as 1.2.3 ",
"branch/17-main-referencing-commit-as-branch-alias-space-single-trimmed": "dev-main#bf2eeff as 1.0.x-dev",
"branch/18-main-referencing-commit-as-branch-alias-space-single-untrimmed": " dev-main#bf2eeff as 1.0.x-dev ",
"branch/19-main-referencing-commit-as-branch-alias-space-double-trimmed": "dev-main#bf2eeff as 1.0.x-dev",
"branch/20-main-referencing-commit-as-branch-alias-space-double-untrimmed": " dev-main#bf2eeff as 1.0.x-dev ",
"branch/21-main-referencing-commit-as-major-space-single-trimmed": "dev-main#bf2eeff as 1",
"branch/22-main-referencing-commit-as-major-space-single-untrimmed": " dev-main#bf2eeff as 1 ",
"branch/23-main-referencing-commit-as-major-space-double-trimmed": "dev-main#bf2eeff as 1",
"branch/24-main-referencing-commit-as-major-space-double-untrimmed": " dev-main#bf2eeff as 1 ",
"branch/25-main-referencing-commit-as-major-minor-space-single-trimmed": "dev-main#bf2eeff as 1.1",
"branch/26-main-referencing-commit-as-major-minor-space-single-untrimmed": " dev-main#bf2eeff as 1.1 ",
"branch/27-main-referencing-commit-as-major-minor-space-double-trimmed": "dev-main#bf2eeff as 1.1",
"branch/28-main-referencing-commit-as-major-minor-space-double-untrimmed": " dev-main#bf2eeff as 1.1 ",
"branch/29-main-referencing-commit-as-major-minor-patch-space-single-trimmed": "dev-main#bf2eeff as 1.2.3",
"branch/30-main-referencing-commit-as-major-minor-patch-space-single-untrimmed": " dev-main#bf2eeff as 1.2.3 ",
"branch/31-main-referencing-commit-as-major-minor-patch-space-double-trimmed": "dev-main#bf2eeff as 1.2.3",
"branch/32-main-referencing-commit-as-major-minor-patch-space-double-untrimmed": " dev-main#bf2eeff as 1.2.3 "
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#version-range",
"conflict": {
"version-range-combination-and/01-comma-without-spaces-trimmed": "1.2.3,2.3.4,3.4.5",
"version-range-combination-and/02-comma-without-spaces-untrimmed": "1.2.3,2.3.4,3.4.5",
"version-range-combination-and/03-comma-with-space-single-trimmed": "1.2.3,2.3.4,3.4.5",
"version-range-combination-and/04-comma-with-space-single-untrimmed": "1.2.3,2.3.4,3.4.5",
"version-range-combination-and/05-comma-with-space-double-trimmed": "1.2.3,2.3.4,3.4.5",
"version-range-combination-and/06-comma-with-space-double-untrimmed": "1.2.3,2.3.4,3.4.5",
"version-range-combination-and/07-space-single-trimmed": "1.2.3 2.3.4 3.4.5",
"version-range-combination-and/08-space-single-untrimmed": "1.2.3 2.3.4 3.4.5",
"version-range-combination-and/09-space-double-trimmed": "1.2.3 2.3.4 3.4.5",
"version-range-combination-and/10-space-double-untrimmed": "1.2.3 2.3.4 3.4.5"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#version-range",
"conflict": {
"version-range-combination-and/01-comma-without-spaces-trimmed": "1.2.3,2.3.4,3.4.5",
"version-range-combination-and/02-comma-without-spaces-untrimmed": " 1.2.3,2.3.4,3.4.5 ",
"version-range-combination-and/03-comma-with-space-single-trimmed": "1.2.3 , 2.3.4 , 3.4.5",
"version-range-combination-and/04-comma-with-space-single-untrimmed": " 1.2.3 , 2.3.4 , 3.4.5 ",
"version-range-combination-and/05-comma-with-space-double-trimmed": "1.2.3 , 2.3.4 , 3.4.5",
"version-range-combination-and/06-comma-with-space-double-untrimmed": " 1.2.3 , 2.3.4 , 3.4.5 ",
"version-range-combination-and/07-space-single-trimmed": "1.2.3 2.3.4 3.4.5",
"version-range-combination-and/08-space-single-untrimmed": " 1.2.3 2.3.4 3.4.5 ",
"version-range-combination-and/09-space-double-trimmed": "1.2.3 2.3.4 3.4.5",
"version-range-combination-and/10-space-double-untrimmed": " 1.2.3 2.3.4 3.4.5 "
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#version-range",
"conflict": {
"version-range-combination-and-or/01-comma-without-spaces-trimmed": "1.2.3,2.3.4 || 3.4.5",
"version-range-combination-and-or/02-comma-without-spaces-untrimmed": "1.2.3,2.3.4 || 3.4.5",
"version-range-combination-and-or/03-comma-with-space-single-trimmed": "1.2.3,2.3.4 || 3.4.5",
"version-range-combination-and-or/04-comma-with-space-single-untrimmed": "1.2.3,2.3.4 || 3.4.5",
"version-range-combination-and-or/05-comma-with-space-double-trimmed": "1.2.3,2.3.4 || 3.4.5",
"version-range-combination-and-or/06-comma-with-space-double-untrimmed": "1.2.3,2.3.4 || 3.4.5",
"version-range-combination-and-or/07-space-single-trimmed": "1.2.3 2.3.4 || 3.4.5",
"version-range-combination-and-or/08-space-single-untrimmed": "1.2.3 2.3.4 || 3.4.5",
"version-range-combination-and-or/09-space-double-trimmed": "1.2.3 2.3.4 || 3.4.5",
"version-range-combination-and-or/10-space-double-untrimmed": "1.2.3 2.3.4 || 3.4.5"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#version-range",
"conflict": {
"version-range-combination-and-or/01-comma-without-spaces-trimmed": "1.2.3,2.3.4||3.4.5",
"version-range-combination-and-or/02-comma-without-spaces-untrimmed": " 1.2.3,2.3.4||3.4.5 ",
"version-range-combination-and-or/03-comma-with-space-single-trimmed": "1.2.3 , 2.3.4 || 3.4.5",
"version-range-combination-and-or/04-comma-with-space-single-untrimmed": " 1.2.3 , 2.3.4 || 3.4.5 ",
"version-range-combination-and-or/05-comma-with-space-double-trimmed": "1.2.3 , 2.3.4 || 3.4.5",
"version-range-combination-and-or/06-comma-with-space-double-untrimmed": " 1.2.3 , 2.3.4 || 3.4.5 ",
"version-range-combination-and-or/07-space-single-trimmed": "1.2.3 2.3.4 || 3.4.5",
"version-range-combination-and-or/08-space-single-untrimmed": " 1.2.3 2.3.4 || 3.4.5 ",
"version-range-combination-and-or/09-space-double-trimmed": "1.2.3 2.3.4 || 3.4.5",
"version-range-combination-and-or/10-space-double-untrimmed": " 1.2.3 2.3.4 || 3.4.5 "
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#version-range",
"conflict": {
"version-range-combination-or/01-without-spaces-trimmed": "1.2.3 || 2.3.4 || 3.4.5",
"version-range-combination-or/02-without-spaces-untrimmed": "1.2.3 || 2.3.4 || 3.4.5",
"version-range-combination-or/03-with-single-space-trimmed": "1.2.3 || 2.3.4 || 3.4.5",
"version-range-combination-or/04-with-single-space-untrimmed": "1.2.3 || 2.3.4 || 3.4.5",
"version-range-combination-or/05-with-double-space-trimmed": "1.2.3 || 2.3.4 || 3.4.5",
"version-range-combination-or/06-with-double-space-untrimmed": "1.2.3 || 2.3.4 || 3.4.5"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#version-range",
"conflict": {
"version-range-combination-or/01-without-spaces-trimmed": "1.2.3||2.3.4||3.4.5",
"version-range-combination-or/02-without-spaces-untrimmed": " 1.2.3||2.3.4||3.4.5 ",
"version-range-combination-or/03-with-single-space-trimmed": "1.2.3 || 2.3.4 || 3.4.5",
"version-range-combination-or/04-with-single-space-untrimmed": " 1.2.3 || 2.3.4 || 3.4.5 ",
"version-range-combination-or/05-with-double-space-trimmed": "1.2.3 || 2.3.4 || 3.4.5",
"version-range-combination-or/06-with-double-space-untrimmed": " 1.2.3 || 2.3.4 || 3.4.5 "
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#exact-version-constraint",
"conflict": {
"exact-version/01-major-trimmed": "1",
"exact-version/02-major-untrimmed": "1",
"exact-version/03-major-minor-trimmed": "1.2",
"exact-version/04-major-minor-untrimmed": "1.2",
"exact-version/05-major-minor-patch-trimmed": "1.2.3",
"exact-version/06-major-minor-patch-untrimmed": "1.2.3"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#exact-version-constraint",
"conflict": {
"exact-version/01-major-trimmed": "1",
"exact-version/02-major-untrimmed": " 1 ",
"exact-version/03-major-minor-trimmed": "1.2",
"exact-version/04-major-minor-untrimmed": " 1.2 ",
"exact-version/05-major-minor-patch-trimmed": "1.2.3",
"exact-version/06-major-minor-patch-untrimmed": " 1.2.3 "
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#caret-version-range-",
"conflict": {
"version-range-caret/01-major-trimmed": "^1",
"version-range-caret/02-major-untrimmed": "^1",
"version-range-caret/03-major-minor-trimmed": "^1.2",
"version-range-caret/04-major-minor-untrimmed": "^1.2",
"version-range-caret/05-major-minor-patch-trimmed": "^1.2.3",
"version-range-caret/06-major-minor-patch-untrimmed": "^1.2.3"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#caret-version-range-",
"conflict": {
"version-range-caret/01-major-trimmed": "^1",
"version-range-caret/02-major-untrimmed": " ^1 ",
"version-range-caret/03-major-minor-trimmed": "^1.2",
"version-range-caret/04-major-minor-untrimmed": " ^1.2 ",
"version-range-caret/05-major-minor-patch-trimmed": "^1.2.3",
"version-range-caret/06-major-minor-patch-untrimmed": " ^1.2.3 "
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"homepage": "https://getcomposer.org/doc/articles/versions.md#version-range",
"conflict": {
"version-range-greater-than/01-major-trimmed": ">1",
"version-range-greater-than/02-major-untrimmed": ">1",
"version-range-greater-than/03-major-minor-trimmed": ">1.2",
"version-range-greater-than/04-major-minor-untrimmed": ">1.2",
"version-range-greater-than/05-major-minor-patch-trimmed": ">1.2.3",
"version-range-greater-than/06-major-minor-patch-untrimmed": ">1.2.3"
}
}
Loading

0 comments on commit 5863abd

Please sign in to comment.