Skip to content

Improve loose comparison on integer #19129

Improve loose comparison on integer

Improve loose comparison on integer #19129

Workflow file for this run

# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
name: "E2E Tests"
on:
pull_request:
paths-ignore:
- 'compiler/**'
- 'apigen/**'
- 'changelog-generator/**'
- 'issue-bot/**'
push:
branches:
- "2.1.x"
paths-ignore:
- 'compiler/**'
- 'apigen/**'
- 'changelog-generator/**'
- 'issue-bot/**'
concurrency:
group: e2e-${{ github.head_ref || github.run_id }} # will be canceled on subsequent pushes in pull requests but not branches
cancel-in-progress: true
jobs:
result-cache-e2e-tests:
name: "Result cache E2E tests"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- script: |
cd e2e/result-cache-1
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
patch -b src/Bar.php < patch-1.patch
cat baseline-1.neon > phpstan-baseline.neon
../../bin/phpstan -vvv
mv src/Bar.php.orig src/Bar.php
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
- script: |
cd e2e/result-cache-2
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
patch -b src/Bar.php < patch-1.patch
cat baseline-1.neon > phpstan-baseline.neon
../../bin/phpstan -vvv
mv src/Bar.php.orig src/Bar.php
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
- script: |
cd e2e/result-cache-3
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
patch -b src/Baz.php < patch-1.patch
cat baseline-1.neon > phpstan-baseline.neon
../../bin/phpstan -vvv
mv src/Baz.php.orig src/Baz.php
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
- script: |
cd e2e/result-cache-4
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
patch -b src/Bar.php < patch-1.patch
cat baseline-1.neon > phpstan-baseline.neon
../../bin/phpstan -vvv
mv src/Bar.php.orig src/Bar.php
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
- script: |
cd e2e/result-cache-5
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
patch -b src/Baz.php < patch-1.patch
cat baseline-1.neon > phpstan-baseline.neon
../../bin/phpstan -vvv
mv src/Baz.php.orig src/Baz.php
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
- script: |
cd e2e/result-cache-6
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
patch -b src/Baz.php < patch-1.patch
cat baseline-1.neon > phpstan-baseline.neon
../../bin/phpstan -vvv
mv src/Baz.php.orig src/Baz.php
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
- script: |
cd e2e/result-cache-7
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
patch -b src/Bar.php < patch-1.patch
cat baseline-1.neon > phpstan-baseline.neon
../../bin/phpstan -vvv
mv src/Bar.php.orig src/Bar.php
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
- script: |
cd e2e/bug10449
../../bin/phpstan analyze
git apply patch.diff
rm phpstan-baseline.neon
mv after-phpstan-baseline.neon phpstan-baseline.neon
../../bin/phpstan analyze -vvv
- script: |
cd e2e/bug10449b
../../bin/phpstan analyze
git apply patch.diff
rm phpstan-baseline.neon
mv after-phpstan-baseline.neon phpstan-baseline.neon
../../bin/phpstan analyze -vvv
- script: |
cd e2e/bug-9622
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
patch -b src/Foo.php < patch-1.patch
cat baseline-1.neon > phpstan-baseline.neon
../../bin/phpstan -vvv
mv src/Foo.php.orig src/Foo.php
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
- script: |
cd e2e/bug-9622-trait
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
patch -b src/Foo.php < patch-1.patch
cat baseline-1.neon > phpstan-baseline.neon
../../bin/phpstan -vvv
mv src/Foo.php.orig src/Foo.php
echo -n > phpstan-baseline.neon
../../bin/phpstan -vvv
- script: |
cd e2e/env-parameter
export PHPSTAN_RESULT_CACHE_PATH=/some/path
ACTUAL=$(../../bin/phpstan dump-parameters -c phpstan.neon --json -l 9 | jq --raw-output '.resultCachePath')
[[ "$ACTUAL" == "/some/path" ]];
- script: |
cd e2e/result-cache-8
composer install
../../bin/phpstan
echo -en '\n' >> build/CustomRule.php
OUTPUT=$(../../bin/phpstan analyze 2>&1 || true)
echo "$OUTPUT"
../bashunit -a contains 'Result cache might not behave correctly' "$OUTPUT"
../bashunit -a contains 'ResultCache8E2E\CustomRule' "$OUTPUT"
- script: |
cd e2e/env-int-key
env 1=1 ../../bin/phpstan analyse test.php
- script: |
cd e2e/trait-caching
../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/
../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/
- script: |
cd e2e/trait-caching
../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/
patch -b data/TraitOne.php < TraitOne.patch
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/")
echo "$OUTPUT"
../bashunit -a line_count 2 "$OUTPUT"
../bashunit -a matches "Note: Using configuration file .+phpstan.neon." "$OUTPUT"
../bashunit -a contains 'Method TraitsCachingIssue\TestClassUsingTrait::doBar() should return stdClass but returns Exception.' "$OUTPUT"
- script: |
cd e2e/trait-caching
../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/
patch -b data/TraitTwo.php < TraitTwo.patch
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/")
echo "$OUTPUT"
../bashunit -a line_count 2 "$OUTPUT"
../bashunit -a matches "Note: Using configuration file .+phpstan.neon." "$OUTPUT"
../bashunit -a contains 'Method class@anonymous/TestClassUsingTrait.php:20::doBar() should return stdClass but returns Exception.' "$OUTPUT"
- script: |
cd e2e/trait-caching
../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/
patch -b data/TraitOne.php < TraitOne.patch
patch -b data/TraitTwo.php < TraitTwo.patch
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/")
echo "$OUTPUT"
../bashunit -a line_count 3 "$OUTPUT"
../bashunit -a matches "Note: Using configuration file .+phpstan.neon." "$OUTPUT"
../bashunit -a contains 'Method TraitsCachingIssue\TestClassUsingTrait::doBar() should return stdClass but returns Exception.' "$OUTPUT"
../bashunit -a contains 'Method class@anonymous/TestClassUsingTrait.php:20::doBar() should return stdClass but returns Exception.' "$OUTPUT"
- script: |
cd e2e/bad-exclude-paths
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyse -c ignore.neon")
echo "$OUTPUT"
../bashunit -a contains 'Invalid entry in ignoreErrors' "$OUTPUT"
../bashunit -a contains 'tests is neither a directory, nor a file path, nor a fnmatch pattern.' "$OUTPUT"
- script: |
cd e2e/bad-exclude-paths
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyse -c phpneon.php")
echo "$OUTPUT"
../bashunit -a contains 'Invalid entry in ignoreErrors' "$OUTPUT"
../bashunit -a contains 'src/test.php is neither a directory, nor a file path, nor a fnmatch pattern.' "$OUTPUT"
- script: |
cd e2e/bad-exclude-paths
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyse -c excludePaths.neon")
echo "$OUTPUT"
../bashunit -a contains 'Invalid entry in excludePaths' "$OUTPUT"
../bashunit -a contains 'tests is neither a directory, nor a file path, nor a fnmatch pattern.' "$OUTPUT"
- script: |
cd e2e/bad-exclude-paths
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyse -c phpneon2.php")
echo "$OUTPUT"
../bashunit -a contains 'Invalid entry in excludePaths' "$OUTPUT"
../bashunit -a contains 'src/test.php is neither a directory, nor a file path, nor a fnmatch pattern.' "$OUTPUT"
- script: |
cd e2e/bad-exclude-paths
OUTPUT=$(../../bin/phpstan analyse -c ignoreNonexistentExcludePath.neon)
echo "$OUTPUT"
- script: |
cd e2e/bad-exclude-paths
cp -r tmp-node-modules node_modules
OUTPUT=$(../../bin/phpstan analyse -c ignoreNonexistentExcludePath.neon)
echo "$OUTPUT"
- script: |
cd e2e/bad-exclude-paths
OUTPUT=$(../../bin/phpstan analyse -c ignoreReportUnmatchedFalse.neon)
echo "$OUTPUT"
- script: |
cd e2e/bug-11826
composer install
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan")
echo "$OUTPUT"
../bashunit -a contains 'Child process error (exit code 255): PHP Fatal error' "$OUTPUT"
../bashunit -a contains 'Result is incomplete because of severe errors.' "$OUTPUT"
- script: |
cd e2e/bug-11857
composer install
../../bin/phpstan
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "8.1"
extensions: mbstring
ini-values: memory_limit=256M
- name: "Install dependencies"
run: "composer install --no-interaction --no-progress"
- name: "Patch PHPStan"
run: "patch src/Analyser/Error.php < e2e/PHPStanErrorPatch.patch"
- name: "Install bashunit"
run: "curl -s https://bashunit.typeddevs.com/install.sh | bash -s e2e/ 0.18.0"
- name: "Test"
run: "${{ matrix.script }}"
e2e-tests:
name: "E2E tests"
runs-on: "ubuntu-latest"
timeout-minutes: 60
strategy:
matrix:
include:
- script: "bin/phpstan analyse -l 8 -a tests/e2e/data/timecop.php -c tests/e2e/data/empty.neon tests/e2e/data/timecop.php"
tools: "pecl"
extensions: "timecop-beta"
- script: "bin/phpstan analyse -l 8 -a tests/e2e/data/soap.php -c tests/e2e/data/empty.neon tests/e2e/data/soap.php"
extensions: "soap"
- script: "bin/phpstan analyse -l 8 -a tests/e2e/data/soap.php -c tests/e2e/data/empty.neon tests/e2e/data/soap.php"
extensions: ""
- script: "bin/phpstan analyse -l 8 tests/e2e/anon-class/Granularity.php"
extensions: ""
- script: "bin/phpstan analyse -l 8 e2e/phpstan-phpunit-190/test.php -c e2e/phpstan-phpunit-190/test.neon"
extensions: ""
- script: "bin/phpstan analyse e2e/only-files-not-analysed-trait/src -c e2e/only-files-not-analysed-trait/ignore.neon"
extensions: ""
- script: "bin/phpstan analyse e2e/only-files-not-analysed-trait/src/Foo.php e2e/only-files-not-analysed-trait/src/BarTrait.php -c e2e/only-files-not-analysed-trait/no-ignore.neon"
extensions: ""
- script: |
cd e2e/baseline-uninit-prop-trait
../../bin/phpstan analyse --debug --configuration test-no-baseline.neon --generate-baseline test-baseline.neon
../../bin/phpstan analyse --debug --configuration test.neon
- script: |
cd e2e/baseline-uninit-prop-trait
../../bin/phpstan analyse --configuration test-no-baseline.neon --generate-baseline test-baseline.neon
../../bin/phpstan analyse --configuration test.neon
- script: |
cd e2e/discussion-11362
composer install
../../bin/phpstan
- script: |
cd e2e/bug-11819
../../bin/phpstan
- script: |
cd e2e/composer-and-phpstan-version-config
composer install --ignore-platform-reqs
../../bin/phpstan analyze test.php --level=0
- script: |
cd e2e/composer-max-version
composer install
../../bin/phpstan analyze test.php --level=0
- script: |
cd e2e/composer-min-max-version
composer install
../../bin/phpstan analyze test.php --level=0
- script: |
cd e2e/composer-min-open-end-version
composer install
../../bin/phpstan analyze test.php --level=0
- script: |
cd e2e/composer-min-version-v5
composer install --ignore-platform-reqs
../../bin/phpstan analyze test.php --level=0
- script: |
cd e2e/composer-min-version-v7
composer install --ignore-platform-reqs
../../bin/phpstan analyze test.php --level=0
- script: |
cd e2e/composer-min-version
composer install
../../bin/phpstan analyze test.php --level=0
- script: |
cd e2e/composer-no-versions
composer install
../../bin/phpstan analyze test.php --level=0
- script: |
cd e2e/composer-version-config-invalid
OUTPUT=$(../bashunit -a exit_code "1" ../../bin/phpstan)
echo "$OUTPUT"
../bashunit -a contains 'Invalid configuration' "$OUTPUT"
../bashunit -a contains 'Invalid PHP version range: phpVersion.max should be greater or equal to phpVersion.min.' "$OUTPUT"
- script: |
cd e2e/composer-version-config-patch
composer install --ignore-platform-reqs
../../bin/phpstan analyze test.php --level=0
- script: |
cd e2e/composer-version-config
composer install
../../bin/phpstan analyze test.php --level=0
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "8.1"
tools: ${{ matrix.tools }}
extensions: ${{ matrix.extensions }}
- name: "Install dependencies"
run: "composer install --no-interaction --no-progress"
- name: "Install bashunit"
run: "curl -s https://bashunit.typeddevs.com/install.sh | bash -s e2e/ 0.18.0"
- name: "Test"
run: ${{ matrix.script }}