Skip to content

Commit

Permalink
Pick system-level testing from rectorphp#5784
Browse files Browse the repository at this point in the history
  • Loading branch information
mpdude committed Mar 10, 2021
1 parent a48062e commit dfe445d
Show file tree
Hide file tree
Showing 10 changed files with 151 additions and 0 deletions.
50 changes: 50 additions & 0 deletions .github/workflows/system_tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: System Tests

on:
pull_request: null

jobs:
system_tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: [ '7.4', '8.0' ]

name: PHP ${{ matrix.php }} system tests
steps:
- uses: actions/checkout@v2

- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none # disable xdebug, pcov

- name: Install dependencies for Rector
run: composer install --no-progress --ansi

# This workflow runs system tests: Use the Rector application from the source
# checkout to process "fixture" projects in tests/system-tests
# to see if those can be processed successfully

- name: Generate Composer autoloaders in fixture directories
run: |
for FIXTURE in `find tests/system-tests -mindepth 1 -maxdepth 1 -type d`; do
(cd $FIXTURE; composer install --no-progress --ansi)
done
- name: Run system tests
run: |
HAS_FAILURES=0
for FIXTURE in `find tests/system-tests -mindepth 1 -maxdepth 1 -type d`; do
echo "-----> Running $FIXTURE <-----"
if (cd $FIXTURE; ../../../bin/rector process --dry-run --clear-cache); then
echo "-----> Result: OK <-----"
else
echo "-----> Result: FAILED <-----"
HAS_FAILURES=1
fi
done
exit $HAS_FAILURES
7 changes: 7 additions & 0 deletions tests/system-tests/dont-execute-code/composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"autoload": {
"psr-4": {
"Symfony\\Component\\Console\\Output\\": "src"
}
}
}
17 changes: 17 additions & 0 deletions tests/system-tests/dont-execute-code/rector.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

declare(strict_types=1);

use Rector\Core\Configuration\Option;
use Rector\Php74\Rector\Property\TypedPropertyRector;
use Rector\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (ContainerConfigurator $containerConfigurator): void {
$parameters = $containerConfigurator->parameters();
$parameters->set(Option::PATHS, [__DIR__.'/src']);
$parameters->set(Option::SKIP, [__DIR__.'/vendor']);

$parameters->set(Option::SETS, [SetList::PHP_53]);
};

7 changes: 7 additions & 0 deletions tests/system-tests/dont-execute-code/src/OutputInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php

namespace Symfony\Component\Console\Output;

use Exception;

throw new Exception('Running code from ' . __FILE__);
7 changes: 7 additions & 0 deletions tests/system-tests/parse-php7-code/composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"autoload": {
"psr-4": {
"Foo\\": "src"
}
}
}
17 changes: 17 additions & 0 deletions tests/system-tests/parse-php7-code/rector.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

declare(strict_types=1);

use Rector\Core\Configuration\Option;
use Rector\Php74\Rector\Property\TypedPropertyRector;
use Rector\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (ContainerConfigurator $containerConfigurator): void {
$parameters = $containerConfigurator->parameters();
$parameters->set(Option::PATHS, [__DIR__.'/src']);
$parameters->set(Option::SKIP, [__DIR__.'/vendor']);

$parameters->set(Option::SETS, [SetList::PHP_53]);
};

12 changes: 12 additions & 0 deletions tests/system-tests/parse-php7-code/src/Foo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace Foo;

class Foo
{
public function __construct()
{
$bar = 'baz';
print $bar{2};
}
}
7 changes: 7 additions & 0 deletions tests/system-tests/parse-php8-code/composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"autoload": {
"psr-4": {
"Foo\\": "src"
}
}
}
17 changes: 17 additions & 0 deletions tests/system-tests/parse-php8-code/rector.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

declare(strict_types=1);

use Rector\Core\Configuration\Option;
use Rector\Php74\Rector\Property\TypedPropertyRector;
use Rector\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (ContainerConfigurator $containerConfigurator): void {
$parameters = $containerConfigurator->parameters();
$parameters->set(Option::PATHS, [__DIR__.'/src']);
$parameters->set(Option::SKIP, [__DIR__.'/vendor']);

$parameters->set(Option::SETS, [SetList::PHP_53]);
};

10 changes: 10 additions & 0 deletions tests/system-tests/parse-php8-code/src/Foo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Foo;

class Foo
{
public function __construct(
public string $property = 'value',
) {}
}

0 comments on commit dfe445d

Please sign in to comment.