From 05b6df31e6cbccfb7dbbe9a73fd02661e90e179e Mon Sep 17 00:00:00 2001 From: TomasVotruba Date: Sat, 18 Jan 2020 01:03:39 +0100 Subject: [PATCH] [CI] Add check for duplicated fixture after before content --- .github/workflows/code_checks.yml | 2 + ci/check_keep_fixtures.php | 54 +++++ .../Fixture/fixture2.php.inc | 17 -- .../Fixture/fixture2.php.inc | 22 -- .../Fixture/fixture3.php.inc | 33 --- .../Fixture/fixture3.php.inc | 17 -- .../Fixture/fixture8.php.inc | 27 --- .../Fixture/fixture9.php.inc | 15 -- .../Fixture/fixture2.php.inc | 210 ------------------ .../Fixture/fixture2.php.inc | 13 -- .../different_defaults_internal.php.inc | 23 -- .../Fixture/define.php.inc | 14 -- .../Fixture/false_positive.php.inc | 14 -- .../AddFlashRector/Fixture/fixture2.php.inc | 18 -- .../Fixture/fixture2.php.inc | 26 --- .../Fixture/dunglas/param_no_type.php.inc | 13 -- .../Fixture/nikic/null.php.inc | 13 -- src/Testing/PHPUnit/FixtureSplitter.php | 2 +- .../Fixture/fixture4.php.inc | 18 -- 19 files changed, 57 insertions(+), 494 deletions(-) create mode 100644 ci/check_keep_fixtures.php diff --git a/.github/workflows/code_checks.yml b/.github/workflows/code_checks.yml index 72d15523db1..7a7707a9a9c 100644 --- a/.github/workflows/code_checks.yml +++ b/.github/workflows/code_checks.yml @@ -102,6 +102,8 @@ jobs: php ci/check_services_in_yaml_configs.php - run: | php ci/run_all_sets.php + - run: | + php ci/check_keep_fixtures.php phpstan_types_checks: runs-on: ubuntu-latest diff --git a/ci/check_keep_fixtures.php b/ci/check_keep_fixtures.php new file mode 100644 index 00000000000..efbf9b050c1 --- /dev/null +++ b/ci/check_keep_fixtures.php @@ -0,0 +1,54 @@ +files(); +$finder->name('*.php.inc'); +$finder->in(__DIR__ . '/../tests'); +$finder->in(__DIR__ . '/../packages/*/tests'); + +$finderSanitizer = new FinderSanitizer(); +$smartFileInfos = $finderSanitizer->sanitize($finder); + +$symfonyStyleFactory = new SymfonyStyleFactory(); +$symfonyStyle = $symfonyStyleFactory->create(); + +$errors = []; + +/** @var \Symfony\Component\Finder\SplFileInfo $smartFileInfo */ +foreach ($smartFileInfos as $smartFileInfo) { + if (!Strings::match($smartFileInfo->getContents(), FixtureSplitter::SPLIT_LINE)) { + continue; + } + + // original → expected + [$originalContent, $expectedContent] = Strings::split($smartFileInfo->getContents(), FixtureSplitter::SPLIT_LINE); + if ($originalContent !== $expectedContent) { + continue; + } + + $errors[] = $smartFileInfo->getRelativeFilePathFromCwd(); +} + +if ($errors === []) { + exit(ShellCode::SUCCESS); +} + +$symfonyStyle->warning(sprintf( + 'These files have same content before "%s" and after it. Remove the content after "%s"', + FixtureSplitter::SPLIT_LINE, + FixtureSplitter::SPLIT_LINE +)); + +$symfonyStyle->listing($errors); + +exit(ShellCode::ERROR); diff --git a/packages/CakePHP/tests/Rector/MethodCall/RenameMethodCallBasedOnParameterRector/Fixture/fixture2.php.inc b/packages/CakePHP/tests/Rector/MethodCall/RenameMethodCallBasedOnParameterRector/Fixture/fixture2.php.inc index 3763b9b93c7..96d37ebea85 100644 --- a/packages/CakePHP/tests/Rector/MethodCall/RenameMethodCallBasedOnParameterRector/Fixture/fixture2.php.inc +++ b/packages/CakePHP/tests/Rector/MethodCall/RenameMethodCallBasedOnParameterRector/Fixture/fixture2.php.inc @@ -10,20 +10,3 @@ function renameMethodCallBasedOnParameterNoop() $config = $object->getParam('other'); $object->withParam('other', 'value'); } - -?> ------ -getParam($value); - $config = $object->getParam('other'); - $object->withParam('other', 'value'); -} - -?> diff --git a/packages/CodeQuality/tests/Rector/BooleanAnd/SimplifyEmptyArrayCheckRector/Fixture/fixture2.php.inc b/packages/CodeQuality/tests/Rector/BooleanAnd/SimplifyEmptyArrayCheckRector/Fixture/fixture2.php.inc index 9fa726d2bb8..22bf3eaad19 100644 --- a/packages/CodeQuality/tests/Rector/BooleanAnd/SimplifyEmptyArrayCheckRector/Fixture/fixture2.php.inc +++ b/packages/CodeQuality/tests/Rector/BooleanAnd/SimplifyEmptyArrayCheckRector/Fixture/fixture2.php.inc @@ -15,25 +15,3 @@ function simplifyEmptyCheck() echo is_array($objects) && is_array($objects); } - -?> ------ - 0; - $invalid2 = isset($this->events[$event]) && !empty($this->events[$event]); - $completelyInvalid = !$value instanceof \Foo && !$value instanceof \Bar; - - if (empty($this->orders) && empty($this->unionOrders)) { - throw new \RuntimeException('You must specify an orderBy clause when using this function.'); - } - - echo is_array($objects) && is_array($objects); -} - -?> diff --git a/packages/CodeQuality/tests/Rector/BooleanAnd/SimplifyEmptyArrayCheckRector/Fixture/fixture3.php.inc b/packages/CodeQuality/tests/Rector/BooleanAnd/SimplifyEmptyArrayCheckRector/Fixture/fixture3.php.inc index abcaa3d826d..552632df73b 100644 --- a/packages/CodeQuality/tests/Rector/BooleanAnd/SimplifyEmptyArrayCheckRector/Fixture/fixture3.php.inc +++ b/packages/CodeQuality/tests/Rector/BooleanAnd/SimplifyEmptyArrayCheckRector/Fixture/fixture3.php.inc @@ -26,36 +26,3 @@ function simplifyEmptyCheck2() $objects = []; is_array($objects) && is_array($objects); } - -?> ------ -foo) && !is_array($values->bar); - } - -} - -function simplifyEmptyCheck2() -{ - $objects = []; - is_array($objects) && is_array($objects); -} - -?> diff --git a/packages/CodeQuality/tests/Rector/Identical/SimplifyConditionsRector/Fixture/fixture3.php.inc b/packages/CodeQuality/tests/Rector/Identical/SimplifyConditionsRector/Fixture/fixture3.php.inc index b5c15fb7a88..6edc9000482 100644 --- a/packages/CodeQuality/tests/Rector/Identical/SimplifyConditionsRector/Fixture/fixture3.php.inc +++ b/packages/CodeQuality/tests/Rector/Identical/SimplifyConditionsRector/Fixture/fixture3.php.inc @@ -10,20 +10,3 @@ function simplifyConditions3() $itemsWithoutTransportAndPayment[] = $orderItem; } } - -?> ------ - diff --git a/packages/CodeQuality/tests/Rector/If_/SimplifyIfReturnBoolRector/Fixture/fixture8.php.inc b/packages/CodeQuality/tests/Rector/If_/SimplifyIfReturnBoolRector/Fixture/fixture8.php.inc index 3fce156a57f..b23bed128aa 100644 --- a/packages/CodeQuality/tests/Rector/If_/SimplifyIfReturnBoolRector/Fixture/fixture8.php.inc +++ b/packages/CodeQuality/tests/Rector/If_/SimplifyIfReturnBoolRector/Fixture/fixture8.php.inc @@ -20,30 +20,3 @@ function simplifyIfReturnBool8() return true; } } - -?> ------ -getPath() !== ''; - } - - return true; - - if (is_null($value)) { - return false; - } else { - return true; - } -} - -?> diff --git a/packages/CodeQuality/tests/Rector/If_/SimplifyIfReturnBoolRector/Fixture/fixture9.php.inc b/packages/CodeQuality/tests/Rector/If_/SimplifyIfReturnBoolRector/Fixture/fixture9.php.inc index 6b797b91c0e..c36adb1016e 100644 --- a/packages/CodeQuality/tests/Rector/If_/SimplifyIfReturnBoolRector/Fixture/fixture9.php.inc +++ b/packages/CodeQuality/tests/Rector/If_/SimplifyIfReturnBoolRector/Fixture/fixture9.php.inc @@ -8,18 +8,3 @@ function simplifyIfReturnBool9() return true; } - -?> ------ -getTimeType() !== null && $dateTimePattern->getTimeType() !== $timeType) { - return false; - } - - return true; -} - -?> diff --git a/packages/CodeQuality/tests/Rector/Return_/SimplifyUselessVariableRector/Fixture/fixture2.php.inc b/packages/CodeQuality/tests/Rector/Return_/SimplifyUselessVariableRector/Fixture/fixture2.php.inc index 218cd506dd6..39efe0ea1cc 100644 --- a/packages/CodeQuality/tests/Rector/Return_/SimplifyUselessVariableRector/Fixture/fixture2.php.inc +++ b/packages/CodeQuality/tests/Rector/Return_/SimplifyUselessVariableRector/Fixture/fixture2.php.inc @@ -203,213 +203,3 @@ function ($values) { return null; }; - -?> ------ -$parameter = 'this'; - } - -} - -$noErrorToo = null; -function ($noError = 'noError') use ($noErrorToo) { - -}; - -$used = true; - -function foo($foo) { - return preg_replace_callback('~~', function ($matches) { - return $matches[0]; - }, $foo); -} - -return $used; - -function ($values) { - $foo = ''; - - foreach ($values as $value) { - echo $foo . $value; - } -}; - -function () { - for ($i = 0; $i < 10; $i++) { - } -}; - -function ($values) { - foreach ($values as $value) { - $foo = 'foo' . $value; - } - echo $foo; -}; - -function ($values) { - list($a, $b) = $values; - return $a + $b; -}; - -function ($values) { - [$c, $d] = $values; - return $c * $d; -}; - -function ($values) { - $current = 'current'; - $next = 'next'; - - while ($next) { - if ($current) { - - } - - $current = false; - - if (true) { - foreach ($values as $value) { - $next = $value; - } - } - - do { - $previous = 'previous'; - } while ($previous); - } -}; - -function (&$parameter) { - $parameter = 'value-by-reference'; -}; - -function () use (&$inheritedVariable) { - $inheritedVariable = 'value-by-reference'; -}; - -function ($interval) { - $j = 0; - for ($i = $j; $i < 10; $i += $interval) { - } -}; - -function () { - static $static = false; - if ($static) { - return; - } - - $static = true; -}; - -function () { - $a = 'a'; - $b = 'b'; - - $this->compact; - - return compact('a', "b"); -}; - -function () { - $a = ''; - echo "$a"; -}; - -function () { - $a = ''; - echo "${a}"; -}; - -function () { - $a = ''; - echo "$a()"; -}; - -function () { - $a = ''; - echo <<a, $this->b) = [$a, $b]; - } - -} - -function () { - $i = 0; - while ($i++ <= 10) { - } -}; - -function () { - $i = 0; - do { - } while (++$i <= 10); -}; - -function () { - $i = 10; - while ($i-- > 0) { - } -}; - -function () { - $i = 10; - do { - } while (--$i > 0); -}; - -function ($data) { - $i = 0; - $c = ''; - foreach ($data as $c) { - $c = $i++; - } - echo $c; -}; - -function ($values) { - $expectedKey = 0; - - foreach ($values as $key => $value) { - if ($key !== $expectedKey++) { - return $value; - } - } - - return null; -}; - -?> diff --git a/packages/CodeQuality/tests/Rector/Ternary/UnnecessaryTernaryExpressionRector/Fixture/fixture2.php.inc b/packages/CodeQuality/tests/Rector/Ternary/UnnecessaryTernaryExpressionRector/Fixture/fixture2.php.inc index 14cd19dbeb8..7b75a1a0342 100644 --- a/packages/CodeQuality/tests/Rector/Ternary/UnnecessaryTernaryExpressionRector/Fixture/fixture2.php.inc +++ b/packages/CodeQuality/tests/Rector/Ternary/UnnecessaryTernaryExpressionRector/Fixture/fixture2.php.inc @@ -6,16 +6,3 @@ function unnecessaryTernaryExpression() { $direction = $directions[$attribute] === SORT_DESC ? SORT_ASC : SORT_DESC; } - -?> ------ - diff --git a/packages/DeadCode/tests/Rector/ClassMethod/RemoveDelegatingParentCallRector/Fixture/different_defaults_internal.php.inc b/packages/DeadCode/tests/Rector/ClassMethod/RemoveDelegatingParentCallRector/Fixture/different_defaults_internal.php.inc index f2dff905b04..7b6fd828f21 100644 --- a/packages/DeadCode/tests/Rector/ClassMethod/RemoveDelegatingParentCallRector/Fixture/different_defaults_internal.php.inc +++ b/packages/DeadCode/tests/Rector/ClassMethod/RemoveDelegatingParentCallRector/Fixture/different_defaults_internal.php.inc @@ -18,26 +18,3 @@ class NoOverrideException extends \Exception parent::__construct($message, $code, $previous); } } -?> ------ - diff --git a/packages/Php72/tests/Rector/ConstFetch/BarewordStringRector/Fixture/define.php.inc b/packages/Php72/tests/Rector/ConstFetch/BarewordStringRector/Fixture/define.php.inc index 8fc6e51d9bc..1fe0532fc3a 100644 --- a/packages/Php72/tests/Rector/ConstFetch/BarewordStringRector/Fixture/define.php.inc +++ b/packages/Php72/tests/Rector/ConstFetch/BarewordStringRector/Fixture/define.php.inc @@ -7,17 +7,3 @@ function run_define() define(NAME, 'Tom'); define('AGE', 1000); } - -?> ------ - diff --git a/packages/Php73/tests/Rector/FuncCall/RegexDashEscapeRector/Fixture/false_positive.php.inc b/packages/Php73/tests/Rector/FuncCall/RegexDashEscapeRector/Fixture/false_positive.php.inc index c2a4f6b3131..6fd90fe0dc9 100644 --- a/packages/Php73/tests/Rector/FuncCall/RegexDashEscapeRector/Fixture/false_positive.php.inc +++ b/packages/Php73/tests/Rector/FuncCall/RegexDashEscapeRector/Fixture/false_positive.php.inc @@ -7,17 +7,3 @@ function regexFalsePositive() // keep preg_match("#^\d{4}-\d{2}-\d{2}$#", 'some text'); } - -?> ------ - diff --git a/packages/Symfony/tests/Rector/Controller/AddFlashRector/Fixture/fixture2.php.inc b/packages/Symfony/tests/Rector/Controller/AddFlashRector/Fixture/fixture2.php.inc index d02986f09b2..24767fe0c97 100644 --- a/packages/Symfony/tests/Rector/Controller/AddFlashRector/Fixture/fixture2.php.inc +++ b/packages/Symfony/tests/Rector/Controller/AddFlashRector/Fixture/fixture2.php.inc @@ -11,21 +11,3 @@ class AnyClass2 $request->getSession()->getFlashBag()->add('success', 'message'); } } - -?> ------ -getSession()->getFlashBag()->add('success', 'message'); - } -} - -?> diff --git a/packages/Symfony/tests/Rector/Form/StringFormTypeToClassRector/Fixture/fixture2.php.inc b/packages/Symfony/tests/Rector/Form/StringFormTypeToClassRector/Fixture/fixture2.php.inc index a69d7b46d79..b98032df95d 100644 --- a/packages/Symfony/tests/Rector/Form/StringFormTypeToClassRector/Fixture/fixture2.php.inc +++ b/packages/Symfony/tests/Rector/Form/StringFormTypeToClassRector/Fixture/fixture2.php.inc @@ -19,29 +19,3 @@ final class ContactType ; } } - -?> ------ -add('email', EmailType::class, [ - 'label' => 'sylius.ui.email', - ]) - ; - } -} - -?> diff --git a/packages/TypeDeclaration/tests/Rector/FunctionLike/ParamTypeDeclarationRector/Fixture/dunglas/param_no_type.php.inc b/packages/TypeDeclaration/tests/Rector/FunctionLike/ParamTypeDeclarationRector/Fixture/dunglas/param_no_type.php.inc index 8af08473b0d..ad5b844ba63 100644 --- a/packages/TypeDeclaration/tests/Rector/FunctionLike/ParamTypeDeclarationRector/Fixture/dunglas/param_no_type.php.inc +++ b/packages/TypeDeclaration/tests/Rector/FunctionLike/ParamTypeDeclarationRector/Fixture/dunglas/param_no_type.php.inc @@ -8,16 +8,3 @@ namespace Rector\TypeDeclaration\Tests\Rector\ClassMethod\ParamTypeDeclarationRe function param_no_type($noType) { } -?> ------ - diff --git a/packages/TypeDeclaration/tests/Rector/FunctionLike/ReturnTypeDeclarationRector/Fixture/nikic/null.php.inc b/packages/TypeDeclaration/tests/Rector/FunctionLike/ReturnTypeDeclarationRector/Fixture/nikic/null.php.inc index 925037c3d68..7e57daf0bfc 100644 --- a/packages/TypeDeclaration/tests/Rector/FunctionLike/ReturnTypeDeclarationRector/Fixture/nikic/null.php.inc +++ b/packages/TypeDeclaration/tests/Rector/FunctionLike/ReturnTypeDeclarationRector/Fixture/nikic/null.php.inc @@ -6,16 +6,3 @@ namespace Rector\TypeDeclaration\Tests\Rector\ClassMethod\ReturnTypeDeclarationR function foo() { return null; } - -?> ------ - diff --git a/src/Testing/PHPUnit/FixtureSplitter.php b/src/Testing/PHPUnit/FixtureSplitter.php index dc6ff32171e..2da25cb7c91 100644 --- a/src/Testing/PHPUnit/FixtureSplitter.php +++ b/src/Testing/PHPUnit/FixtureSplitter.php @@ -13,7 +13,7 @@ final class FixtureSplitter /** * @var string */ - private const SPLIT_LINE = '#-----\n#'; + public const SPLIT_LINE = '#-----\n#'; /** * @var string diff --git a/tests/Rector/Namespace_/PseudoNamespaceToNamespaceRector/Fixture/fixture4.php.inc b/tests/Rector/Namespace_/PseudoNamespaceToNamespaceRector/Fixture/fixture4.php.inc index 3f7419f216c..9d40c0db394 100644 --- a/tests/Rector/Namespace_/PseudoNamespaceToNamespaceRector/Fixture/fixture4.php.inc +++ b/tests/Rector/Namespace_/PseudoNamespaceToNamespaceRector/Fixture/fixture4.php.inc @@ -11,21 +11,3 @@ class SomeTestCase { } } - -?> ------ -