From 18a02994ded58006dc48cceb874c781c010ab393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Sat, 15 Aug 2026 01:35:46 -0300 Subject: [PATCH] Add support for PHPUnit 13 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MaurĂ­cio Meneghini Fauth --- .github/workflows/tests.yml | 37 +++++++++++++++++++++++ tests/Builder/AlterStatementTest.php | 3 ++ tests/Builder/CreateStatementTest.php | 2 ++ tests/Builder/InsertStatementTest.php | 2 ++ tests/Components/ArrayObjTest.php | 2 ++ tests/Components/ComponentTest.php | 4 +++ tests/Components/ExpressionTest.php | 3 ++ tests/Components/GroupKeywordTest.php | 2 ++ tests/Components/LimitTest.php | 2 ++ tests/Components/LockExpressionTest.php | 2 ++ tests/Lexer/ContextTest.php | 5 +++ tests/Lexer/LexerTest.php | 6 ++++ tests/Misc/BugsTest.php | 2 ++ tests/Misc/ParameterTest.php | 2 ++ tests/Misc/TranslatorTest.php | 7 +++++ tests/Misc/UtfStringTest.php | 2 ++ tests/Parser/AlterStatementTest.php | 2 ++ tests/Parser/AnalyzeStatementTest.php | 2 ++ tests/Parser/CallStatementTest.php | 2 ++ tests/Parser/CreateStatementTest.php | 2 ++ tests/Parser/DeleteStatementTest.php | 2 ++ tests/Parser/DropStatementTest.php | 2 ++ tests/Parser/ExplainStatementTest.php | 2 ++ tests/Parser/InsertStatementTest.php | 2 ++ tests/Parser/KillStatementTest.php | 3 ++ tests/Parser/LoadStatementTest.php | 2 ++ tests/Parser/LockStatementTest.php | 2 ++ tests/Parser/ParserLongExportsTest.php | 2 ++ tests/Parser/ParserTest.php | 6 ++++ tests/Parser/PurgeStatementTest.php | 2 ++ tests/Parser/RenameStatementTest.php | 2 ++ tests/Parser/ReplaceStatementTest.php | 2 ++ tests/Parser/RestoreStatementTest.php | 2 ++ tests/Parser/SelectStatementTest.php | 2 ++ tests/Parser/SetStatementTest.php | 2 ++ tests/Parser/TransactionStatementTest.php | 2 ++ tests/Parser/UpdateStatementTest.php | 2 ++ tests/Parser/WithStatementTest.php | 2 ++ tests/Utils/BufferedQueryTest.php | 2 ++ tests/Utils/CLITest.php | 10 ++++++ tests/Utils/FormatterTest.php | 3 ++ tests/Utils/MiscTest.php | 2 ++ tests/Utils/QueryTest.php | 3 ++ tests/Utils/RoutineTest.php | 4 +++ tests/Utils/TableTest.php | 3 ++ tests/Utils/TokensTest.php | 3 ++ 46 files changed, 162 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 00ecfe759..be574b1ad 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -81,6 +81,43 @@ jobs: with: cli-args: "--format=php-clover build/logs/clover.xml --revision=${{ github.event.pull_request.head.sha || github.sha }}" + test-php-with-newer-phpunit: + name: Test on PHP ${{ matrix.php }} with PHPUnit ${{ matrix.phpunit }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - {php: '8.1', phpunit: '10'} + - {php: '8.2', phpunit: '11'} + - {php: '8.3', phpunit: '12'} + - {php: '8.4', phpunit: '13'} + steps: + - name: Checkout code + uses: actions/checkout@v7 + with: + persist-credentials: false + + - name: Set up PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: none + + - name: Update composer.json + shell: bash + env: + PHPUNIT_VERSION: ${{ matrix.phpunit }} + run: | + composer remove --dev vimeo/psalm psalm/plugin-phpunit --no-update --no-interaction --ansi + composer require --dev phpunit/phpunit:^"$PHPUNIT_VERSION" --no-update --no-interaction --ansi + + - name: Install Composer dependencies + uses: ramsey/composer-install@v4 + + - name: Run PHP tests + run: vendor/bin/phpunit --no-coverage --no-logging --display-all-issues + php-benchmark: name: Benchmark on PHP ${{ matrix.php-version }} and ${{ matrix.os }} runs-on: ${{ matrix.os }} diff --git a/tests/Builder/AlterStatementTest.php b/tests/Builder/AlterStatementTest.php index f011b1a54..bc97bfc69 100644 --- a/tests/Builder/AlterStatementTest.php +++ b/tests/Builder/AlterStatementTest.php @@ -7,6 +7,7 @@ use Generator; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class AlterStatementTest extends TestCase { @@ -187,6 +188,7 @@ public static function provideBuilderForRenameColumn(): Generator /** * @dataProvider provideBuilderForRenameColumn */ + #[DataProvider('provideBuilderForRenameColumn')] public function testBuilderRenameColumn(string $query): void { $parser = new Parser($query); @@ -251,6 +253,7 @@ public static function provideBuilderForAlterRoutine(): Generator /** * @dataProvider provideBuilderForAlterRoutine */ + #[DataProvider('provideBuilderForAlterRoutine')] public function testBuilderForAlterRoutine(string $query): void { $parser = new Parser($query); diff --git a/tests/Builder/CreateStatementTest.php b/tests/Builder/CreateStatementTest.php index c76497fd7..1cd9b713b 100644 --- a/tests/Builder/CreateStatementTest.php +++ b/tests/Builder/CreateStatementTest.php @@ -14,6 +14,7 @@ use PhpMyAdmin\SqlParser\Statements\CreateStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\TokensList; +use PHPUnit\Framework\Attributes\DataProvider; use function implode; @@ -299,6 +300,7 @@ public static function partitionQueriesProvider(): array /** * @dataProvider partitionQueriesProvider */ + #[DataProvider('partitionQueriesProvider')] public function testBuilderPartitionsEngine(string $query): void { $parser = new Parser($query); diff --git a/tests/Builder/InsertStatementTest.php b/tests/Builder/InsertStatementTest.php index 8c32180fd..2d0f7f861 100644 --- a/tests/Builder/InsertStatementTest.php +++ b/tests/Builder/InsertStatementTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class InsertStatementTest extends TestCase { @@ -29,6 +30,7 @@ protected function tearDown(): void } /** @dataProvider providerForTestBuilder */ + #[DataProvider('providerForTestBuilder')] public function testBuilder(string $sql): void { $parser = new Parser($sql); diff --git a/tests/Components/ArrayObjTest.php b/tests/Components/ArrayObjTest.php index 5a2515409..b85854321 100644 --- a/tests/Components/ArrayObjTest.php +++ b/tests/Components/ArrayObjTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ArrayObjTest extends TestCase { @@ -42,6 +43,7 @@ public function testParseType(): void /** * @dataProvider parseProvider */ + #[DataProvider('parseProvider')] public function testParse(string $test): void { $this->runParserTest($test); diff --git a/tests/Components/ComponentTest.php b/tests/Components/ComponentTest.php index 1c9462ebc..9c2e9ff7e 100644 --- a/tests/Components/ComponentTest.php +++ b/tests/Components/ComponentTest.php @@ -8,6 +8,8 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\TokensList; +use PHPUnit\Framework\Attributes\PreserveGlobalState; +use PHPUnit\Framework\Attributes\RunInSeparateProcess; use Throwable; class ComponentTest extends TestCase @@ -16,6 +18,8 @@ class ComponentTest extends TestCase * @runInSeparateProcess * @preserveGlobalState disabled */ + #[RunInSeparateProcess] + #[PreserveGlobalState(false)] public function testParse(): void { $this->expectExceptionMessage('Not implemented yet.'); diff --git a/tests/Components/ExpressionTest.php b/tests/Components/ExpressionTest.php index 73dfe7cd2..45dba772d 100644 --- a/tests/Components/ExpressionTest.php +++ b/tests/Components/ExpressionTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ExpressionTest extends TestCase { @@ -42,6 +43,7 @@ public function testParse3(): void /** * @dataProvider parseErrProvider */ + #[DataProvider('parseErrProvider')] public function testParseErr(string $expr, string $error): void { $parser = new Parser(); @@ -145,6 +147,7 @@ public static function mysqlCommandsProvider(): array /** * @dataProvider mysqlCommandsProvider */ + #[DataProvider('mysqlCommandsProvider')] public function testMysqlCommands(string $expr, string $expected): void { $parser = new Parser($expr, true); diff --git a/tests/Components/GroupKeywordTest.php b/tests/Components/GroupKeywordTest.php index 4ddba7789..73381dd7a 100644 --- a/tests/Components/GroupKeywordTest.php +++ b/tests/Components/GroupKeywordTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Components\GroupKeyword; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; use function array_map; @@ -56,6 +57,7 @@ public static function provideExpressions(): Generator * * @dataProvider provideExpressions */ + #[DataProvider('provideExpressions')] public function testBuild($component, string $expected): void { $this->assertSame($expected, GroupKeyword::build($component)); diff --git a/tests/Components/LimitTest.php b/tests/Components/LimitTest.php index e8c29048c..706ca1ed9 100644 --- a/tests/Components/LimitTest.php +++ b/tests/Components/LimitTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Components\Limit; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LimitTest extends TestCase { @@ -24,6 +25,7 @@ public function testBuildWithOffset(): void /** * @dataProvider parseProvider */ + #[DataProvider('parseProvider')] public function testParse(string $test): void { $this->runParserTest($test); diff --git a/tests/Components/LockExpressionTest.php b/tests/Components/LockExpressionTest.php index e1cb4919e..bffbba231 100644 --- a/tests/Components/LockExpressionTest.php +++ b/tests/Components/LockExpressionTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Components\LockExpression; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LockExpressionTest extends TestCase { @@ -30,6 +31,7 @@ public function testParse2(): void /** * @dataProvider parseErrProvider */ + #[DataProvider('parseErrProvider')] public function testParseErr(string $expr, string $error): void { $parser = new Parser(); diff --git a/tests/Lexer/ContextTest.php b/tests/Lexer/ContextTest.php index 565b9d7f8..7f1061a4c 100644 --- a/tests/Lexer/ContextTest.php +++ b/tests/Lexer/ContextTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Contexts; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Throwable; use function class_exists; @@ -37,6 +38,7 @@ public function testLoad(): void * * @dataProvider contextLoadingProvider */ + #[DataProvider('contextLoadingProvider')] public function testLoadClosest(string $context, ?string $expected): void { $this->assertEquals($expected, Context::loadClosest($context)); @@ -90,6 +92,7 @@ public static function contextLoadingProvider(): array /** * @dataProvider contextNamesProvider */ + #[DataProvider('contextNamesProvider')] public function testLoadAll(string $context): void { Context::load($context); @@ -148,6 +151,7 @@ public static function contextNamesProvider(): array /** * @dataProvider contextClassesProvider */ + #[DataProvider('contextClassesProvider')] public function testLoadAllByClass(string $context): void { Context::load($context); @@ -217,6 +221,7 @@ public function testLoadError(): void * * @dataProvider providerForTestMode */ + #[DataProvider('providerForTestMode')] public function testMode($mode, int $expected): void { Context::setMode($mode); diff --git a/tests/Lexer/LexerTest.php b/tests/Lexer/LexerTest.php index e310c94fa..b370aab20 100644 --- a/tests/Lexer/LexerTest.php +++ b/tests/Lexer/LexerTest.php @@ -7,6 +7,9 @@ use PhpMyAdmin\SqlParser\Exceptions\LexerException; use PhpMyAdmin\SqlParser\Lexer; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\PreserveGlobalState; +use PHPUnit\Framework\Attributes\RunInSeparateProcess; use function sprintf; @@ -16,6 +19,8 @@ class LexerTest extends TestCase * @runInSeparateProcess * @preserveGlobalState disabled */ + #[RunInSeparateProcess] + #[PreserveGlobalState(false)] public function testError(): void { $lexer = new Lexer(''); @@ -51,6 +56,7 @@ public function testErrorStrict(): void /** * @dataProvider lexProvider */ + #[DataProvider('lexProvider')] public function testLex(string $test): void { $this->runParserTest($test); diff --git a/tests/Misc/BugsTest.php b/tests/Misc/BugsTest.php index 4b6e38771..062affe73 100644 --- a/tests/Misc/BugsTest.php +++ b/tests/Misc/BugsTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Misc; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class BugsTest extends TestCase { /** * @dataProvider bugProvider */ + #[DataProvider('bugProvider')] public function testBug(string $test): void { $this->runParserTest($test); diff --git a/tests/Misc/ParameterTest.php b/tests/Misc/ParameterTest.php index e5ba4276e..aab06308b 100644 --- a/tests/Misc/ParameterTest.php +++ b/tests/Misc/ParameterTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Misc; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ParameterTest extends TestCase { /** * @dataProvider parameterProvider */ + #[DataProvider('parameterProvider')] public function testParameter(string $test): void { $this->runParserTest($test); diff --git a/tests/Misc/TranslatorTest.php b/tests/Misc/TranslatorTest.php index f38b0e9ee..d517294a9 100644 --- a/tests/Misc/TranslatorTest.php +++ b/tests/Misc/TranslatorTest.php @@ -7,6 +7,8 @@ use PhpMyAdmin\MoTranslator\Loader; use PhpMyAdmin\MoTranslator\Translator as MoTranslator; use PhpMyAdmin\SqlParser\Translator; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\TestWith; use PHPUnit\Framework\TestCase; use ReflectionClass; use ReflectionProperty; @@ -16,6 +18,7 @@ use const PHP_VERSION_ID; /** @covers \PhpMyAdmin\SqlParser\Translator */ +#[CoversClass(Translator::class)] final class TranslatorTest extends TestCase { public static function tearDownAfterClass(): void @@ -51,6 +54,10 @@ public function testLocale(): void * ["en", "", "en"] * ["fr", "", "fr"] */ + #[TestWith([null, 'en', 'en'])] + #[TestWith([null, 'fr', 'fr'])] + #[TestWith(['en', '', 'en'])] + #[TestWith(['fr', '', 'fr'])] public function testLoad(?string $globalLang, string $locale, string $expectedLocale): void { $loaderProperty = new ReflectionProperty(Translator::class, 'loader'); diff --git a/tests/Misc/UtfStringTest.php b/tests/Misc/UtfStringTest.php index 4434d3306..85244b776 100644 --- a/tests/Misc/UtfStringTest.php +++ b/tests/Misc/UtfStringTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\UtfString; +use PHPUnit\Framework\Attributes\DataProvider; use Throwable; use function chr; @@ -86,6 +87,7 @@ public function testToString(): void * * @dataProvider utf8StringsProvider */ + #[DataProvider('utf8StringsProvider')] public function testAccess(string $text, ?string $pos10, ?string $pos20): void { $str = new UtfString($text); diff --git a/tests/Parser/AlterStatementTest.php b/tests/Parser/AlterStatementTest.php index c39b1a5db..be628c516 100644 --- a/tests/Parser/AlterStatementTest.php +++ b/tests/Parser/AlterStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class AlterStatementTest extends TestCase { /** * @dataProvider alterProvider */ + #[DataProvider('alterProvider')] public function testAlter(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/AnalyzeStatementTest.php b/tests/Parser/AnalyzeStatementTest.php index 9c8543a6c..9143fc661 100644 --- a/tests/Parser/AnalyzeStatementTest.php +++ b/tests/Parser/AnalyzeStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class AnalyzeStatementTest extends TestCase { /** * @dataProvider analyzeProvider */ + #[DataProvider('analyzeProvider')] public function testAnalyze(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/CallStatementTest.php b/tests/Parser/CallStatementTest.php index cfab7e5d1..8e68e85bf 100644 --- a/tests/Parser/CallStatementTest.php +++ b/tests/Parser/CallStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class CallStatementTest extends TestCase { /** * @dataProvider callProvider */ + #[DataProvider('callProvider')] public function testCall(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/CreateStatementTest.php b/tests/Parser/CreateStatementTest.php index c6f1e5a31..79965c28f 100644 --- a/tests/Parser/CreateStatementTest.php +++ b/tests/Parser/CreateStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class CreateStatementTest extends TestCase { /** * @dataProvider createProvider */ + #[DataProvider('createProvider')] public function testCreate(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/DeleteStatementTest.php b/tests/Parser/DeleteStatementTest.php index 8d4c8744e..f9bc1f3d0 100644 --- a/tests/Parser/DeleteStatementTest.php +++ b/tests/Parser/DeleteStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class DeleteStatementTest extends TestCase { /** * @dataProvider deleteProvider */ + #[DataProvider('deleteProvider')] public function testDelete(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/DropStatementTest.php b/tests/Parser/DropStatementTest.php index 21c41eb61..fc07f1e8d 100644 --- a/tests/Parser/DropStatementTest.php +++ b/tests/Parser/DropStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class DropStatementTest extends TestCase { /** * @dataProvider dropProvider */ + #[DataProvider('dropProvider')] public function testDrop(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/ExplainStatementTest.php b/tests/Parser/ExplainStatementTest.php index ed9e5ddf4..20fc0fcba 100644 --- a/tests/Parser/ExplainStatementTest.php +++ b/tests/Parser/ExplainStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ExplainStatementTest extends TestCase { /** * @dataProvider explainProvider */ + #[DataProvider('explainProvider')] public function testExplain(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/InsertStatementTest.php b/tests/Parser/InsertStatementTest.php index e3c070a8f..a3bffc36e 100644 --- a/tests/Parser/InsertStatementTest.php +++ b/tests/Parser/InsertStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class InsertStatementTest extends TestCase { /** * @dataProvider insertProvider */ + #[DataProvider('insertProvider')] public function testInsert(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/KillStatementTest.php b/tests/Parser/KillStatementTest.php index 335c96a20..21563e6e6 100644 --- a/tests/Parser/KillStatementTest.php +++ b/tests/Parser/KillStatementTest.php @@ -7,10 +7,12 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Statements\KillStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class KillStatementTest extends TestCase { /** @dataProvider killProvider */ + #[DataProvider('killProvider')] public function testKill(string $test): void { $this->runParserTest($test); @@ -35,6 +37,7 @@ public static function killProvider(): array } /** @dataProvider buildKillProvider */ + #[DataProvider('buildKillProvider')] public function testBuildKill(string $sql): void { $parser = new Parser($sql); diff --git a/tests/Parser/LoadStatementTest.php b/tests/Parser/LoadStatementTest.php index 7c623bbe2..0194b2e32 100644 --- a/tests/Parser/LoadStatementTest.php +++ b/tests/Parser/LoadStatementTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LoadStatementTest extends TestCase { @@ -20,6 +21,7 @@ public function testLoadOptions(): void /** * @dataProvider loadProvider */ + #[DataProvider('loadProvider')] public function testLoad(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/LockStatementTest.php b/tests/Parser/LockStatementTest.php index b1d25468a..de36029fe 100644 --- a/tests/Parser/LockStatementTest.php +++ b/tests/Parser/LockStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LockStatementTest extends TestCase { /** * @dataProvider lockProvider */ + #[DataProvider('lockProvider')] public function testLock(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/ParserLongExportsTest.php b/tests/Parser/ParserLongExportsTest.php index 3351d1928..45ff782fc 100644 --- a/tests/Parser/ParserLongExportsTest.php +++ b/tests/Parser/ParserLongExportsTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Statements\SetStatement; use PhpMyAdmin\SqlParser\Statements\TransactionStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ParserLongExportsTest extends TestCase { @@ -103,6 +104,7 @@ public function testParsephpMyAdminDump(): void /** * @dataProvider exportFileProvider */ + #[DataProvider('exportFileProvider')] public function testParseExport(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/ParserTest.php b/tests/Parser/ParserTest.php index 2d79a7da3..402a5b3f3 100644 --- a/tests/Parser/ParserTest.php +++ b/tests/Parser/ParserTest.php @@ -9,6 +9,9 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\PreserveGlobalState; +use PHPUnit\Framework\Attributes\RunInSeparateProcess; use function sprintf; @@ -17,6 +20,7 @@ class ParserTest extends TestCase /** * @dataProvider parseProvider */ + #[DataProvider('parseProvider')] public function testParse(string $test): void { $this->runParserTest($test); @@ -56,6 +60,8 @@ public function testUnrecognizedKeyword(): void * @runInSeparateProcess * @preserveGlobalState disabled */ + #[RunInSeparateProcess] + #[PreserveGlobalState(false)] public function testError(): void { $parser = new Parser(new TokensList()); diff --git a/tests/Parser/PurgeStatementTest.php b/tests/Parser/PurgeStatementTest.php index 5d61c16b2..906b88008 100644 --- a/tests/Parser/PurgeStatementTest.php +++ b/tests/Parser/PurgeStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class PurgeStatementTest extends TestCase { /** * @dataProvider purgeProvider */ + #[DataProvider('purgeProvider')] public function testPurge(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/RenameStatementTest.php b/tests/Parser/RenameStatementTest.php index 003d8dc9f..22ebd5cb2 100644 --- a/tests/Parser/RenameStatementTest.php +++ b/tests/Parser/RenameStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class RenameStatementTest extends TestCase { /** * @dataProvider renameProvider */ + #[DataProvider('renameProvider')] public function testRename(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/ReplaceStatementTest.php b/tests/Parser/ReplaceStatementTest.php index e05ee6555..0c605f841 100644 --- a/tests/Parser/ReplaceStatementTest.php +++ b/tests/Parser/ReplaceStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ReplaceStatementTest extends TestCase { /** * @dataProvider replaceProvider */ + #[DataProvider('replaceProvider')] public function testReplace(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/RestoreStatementTest.php b/tests/Parser/RestoreStatementTest.php index 124557378..7860d49cf 100644 --- a/tests/Parser/RestoreStatementTest.php +++ b/tests/Parser/RestoreStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class RestoreStatementTest extends TestCase { /** * @dataProvider restoreProvider */ + #[DataProvider('restoreProvider')] public function testRestore(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/SelectStatementTest.php b/tests/Parser/SelectStatementTest.php index a7549b794..33c6f084a 100644 --- a/tests/Parser/SelectStatementTest.php +++ b/tests/Parser/SelectStatementTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class SelectStatementTest extends TestCase { @@ -20,6 +21,7 @@ public function testSelectOptions(): void /** * @dataProvider selectProvider */ + #[DataProvider('selectProvider')] public function testSelect(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/SetStatementTest.php b/tests/Parser/SetStatementTest.php index 7c5e3ed17..b141e43ea 100644 --- a/tests/Parser/SetStatementTest.php +++ b/tests/Parser/SetStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class SetStatementTest extends TestCase { /** * @dataProvider setProvider */ + #[DataProvider('setProvider')] public function testSet(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/TransactionStatementTest.php b/tests/Parser/TransactionStatementTest.php index 13aa5a8ff..010a2bc1a 100644 --- a/tests/Parser/TransactionStatementTest.php +++ b/tests/Parser/TransactionStatementTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class TransactionStatementTest extends TestCase { @@ -23,6 +24,7 @@ public function testBuildWithoutEnd(): void /** * @dataProvider transactionProvider */ + #[DataProvider('transactionProvider')] public function testTransaction(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/UpdateStatementTest.php b/tests/Parser/UpdateStatementTest.php index 7733ce619..75f01a1e7 100644 --- a/tests/Parser/UpdateStatementTest.php +++ b/tests/Parser/UpdateStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class UpdateStatementTest extends TestCase { /** * @dataProvider updateProvider */ + #[DataProvider('updateProvider')] public function testUpdate(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/WithStatementTest.php b/tests/Parser/WithStatementTest.php index 414e05263..82bde6e48 100644 --- a/tests/Parser/WithStatementTest.php +++ b/tests/Parser/WithStatementTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Lexer; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; use stdClass; class WithStatementTest extends TestCase @@ -15,6 +16,7 @@ class WithStatementTest extends TestCase /** * @dataProvider parseWith */ + #[DataProvider('parseWith')] public function testParse(string $test): void { $this->runParserTest($test); diff --git a/tests/Utils/BufferedQueryTest.php b/tests/Utils/BufferedQueryTest.php index b5e599c1b..6b6be2826 100644 --- a/tests/Utils/BufferedQueryTest.php +++ b/tests/Utils/BufferedQueryTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\BufferedQuery; +use PHPUnit\Framework\Attributes\DataProvider; use function count; use function str_split; @@ -20,6 +21,7 @@ class BufferedQueryTest extends TestCase * * @dataProvider extractProvider */ + #[DataProvider('extractProvider')] public function testExtract( string $query, int $chunkSize, diff --git a/tests/Utils/CLITest.php b/tests/Utils/CLITest.php index 80347378e..867c77b99 100644 --- a/tests/Utils/CLITest.php +++ b/tests/Utils/CLITest.php @@ -6,12 +6,15 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\CLI; +use PHPUnit\Framework\Attributes\AllowMockObjectsWithoutExpectations; +use PHPUnit\Framework\Attributes\DataProvider; use function dirname; use function exec; use const PHP_BINARY; +#[AllowMockObjectsWithoutExpectations] class CLITest extends TestCase { /** @@ -56,6 +59,7 @@ public function testGetopt(): void * * @dataProvider highlightParamsProvider */ + #[DataProvider('highlightParamsProvider')] public function testRunHighlight($getopt, string $output, int $result): void { $cli = $this->getCLI($getopt); @@ -131,6 +135,7 @@ public static function highlightParamsProvider(): array * * @dataProvider highlightParamsStdInProvider */ + #[DataProvider('highlightParamsStdInProvider')] public function testRunHighlightStdIn(string $input, $getopt, string $output, int $result): void { $cli = $this->getCLIStdIn($input, $getopt); @@ -199,6 +204,7 @@ public static function highlightParamsStdInProvider(): array * * @dataProvider lintParamsStdInProvider */ + #[DataProvider('lintParamsStdInProvider')] public function testRunLintFromStdIn(string $input, $getopt, string $output, int $result): void { $cli = $this->getCLIStdIn($input, $getopt); @@ -264,6 +270,7 @@ public static function lintParamsStdInProvider(): array * * @dataProvider lintParamsProvider */ + #[DataProvider('lintParamsProvider')] public function testRunLint($getopt, string $output, int $result): void { $cli = $this->getCLI($getopt); @@ -331,6 +338,7 @@ public static function lintParamsProvider(): array * * @dataProvider tokenizeParamsProvider */ + #[DataProvider('tokenizeParamsProvider')] public function testRunTokenize($getopt, string $output, int $result): void { $cli = $this->getCLI($getopt); @@ -386,6 +394,7 @@ public static function tokenizeParamsProvider(): array * * @dataProvider tokenizeParamsStdInProvider */ + #[DataProvider('tokenizeParamsStdInProvider')] public function testRunTokenizeStdIn(string $input, $getopt, string $output, int $result): void { $cli = $this->getCLIStdIn($input, $getopt); @@ -438,6 +447,7 @@ public static function tokenizeParamsStdInProvider(): array /** * @dataProvider stdinParamsProvider */ + #[DataProvider('stdinParamsProvider')] public function testStdinPipe(string $cmd, int $result): void { exec($cmd, $out, $ret); diff --git a/tests/Utils/FormatterTest.php b/tests/Utils/FormatterTest.php index 68a9df0a8..3105a4b88 100644 --- a/tests/Utils/FormatterTest.php +++ b/tests/Utils/FormatterTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Formatter; +use PHPUnit\Framework\Attributes\DataProvider; use ReflectionMethod; use const PHP_VERSION_ID; @@ -22,6 +23,7 @@ class FormatterTest extends TestCase * * @dataProvider mergeFormatsProvider */ + #[DataProvider('mergeFormatsProvider')] public function testMergeFormats(array $default, array $overriding, array $expected): void { $formatter = $this->createPartialMock(Formatter::class, ['getDefaultOptions', 'getDefaultFormats']); @@ -253,6 +255,7 @@ public static function mergeFormatsProvider(): array * * @dataProvider formatQueriesProviders */ + #[DataProvider('formatQueriesProviders')] public function testFormat(string $query, string $text, string $cli, string $html, array $options = []): void { // Test TEXT format diff --git a/tests/Utils/MiscTest.php b/tests/Utils/MiscTest.php index 6c775ccbf..e9f6d4757 100644 --- a/tests/Utils/MiscTest.php +++ b/tests/Utils/MiscTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Misc; +use PHPUnit\Framework\Attributes\DataProvider; class MiscTest extends TestCase { @@ -19,6 +20,7 @@ class MiscTest extends TestCase * * @dataProvider getAliasesProvider */ + #[DataProvider('getAliasesProvider')] public function testGetAliases(string $query, ?string $db, array $expected): void { $parser = new Parser($query); diff --git a/tests/Utils/QueryTest.php b/tests/Utils/QueryTest.php index a31150d28..30c598138 100644 --- a/tests/Utils/QueryTest.php +++ b/tests/Utils/QueryTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Statement; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Query; +use PHPUnit\Framework\Attributes\DataProvider; use function array_merge; @@ -22,6 +23,7 @@ class QueryTest extends TestCase * * @dataProvider getFlagsProvider */ + #[DataProvider('getFlagsProvider')] public function testGetFlags(string $query, array $expected): void { $parser = new Parser($query); @@ -454,6 +456,7 @@ public function testGetAllTableWithDotsAndReplaceClauseEmptyName(): void * * @dataProvider getTablesProvider */ + #[DataProvider('getTablesProvider')] public function testGetTables(string $query, array $expected): void { $parser = new Parser($query); diff --git a/tests/Utils/RoutineTest.php b/tests/Utils/RoutineTest.php index 2bdf11d6b..afb5ebbca 100644 --- a/tests/Utils/RoutineTest.php +++ b/tests/Utils/RoutineTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Routine; +use PHPUnit\Framework\Attributes\DataProvider; class RoutineTest extends TestCase { @@ -15,6 +16,7 @@ class RoutineTest extends TestCase * * @dataProvider getReturnTypeProvider */ + #[DataProvider('getReturnTypeProvider')] public function testGetReturnType(string $def, array $expected): void { $this->assertEquals($expected, Routine::getReturnType($def)); @@ -115,6 +117,7 @@ public static function getReturnTypeProvider(): array * * @dataProvider getParameterProvider */ + #[DataProvider('getParameterProvider')] public function testGetParameter(string $def, array $expected): void { $this->assertEquals($expected, Routine::getParameter($def)); @@ -224,6 +227,7 @@ public static function getParameterProvider(): array * * @dataProvider getParametersProvider */ + #[DataProvider('getParametersProvider')] public function testGetParameters(string $query, array $expected): void { $parser = new Parser($query); diff --git a/tests/Utils/TableTest.php b/tests/Utils/TableTest.php index e0e7924e3..1e55225b7 100644 --- a/tests/Utils/TableTest.php +++ b/tests/Utils/TableTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Table; +use PHPUnit\Framework\Attributes\DataProvider; class TableTest extends TestCase { @@ -24,6 +25,7 @@ class TableTest extends TestCase * * @dataProvider getForeignKeysProvider */ + #[DataProvider('getForeignKeysProvider')] public function testGetForeignKeys(string $query, array $expected): void { $parser = new Parser($query); @@ -149,6 +151,7 @@ public static function getForeignKeysProvider(): array * * @dataProvider getFieldsProvider */ + #[DataProvider('getFieldsProvider')] public function testGetFields(string $query, array $expected): void { $parser = new Parser($query); diff --git a/tests/Utils/TokensTest.php b/tests/Utils/TokensTest.php index 3cf690559..0fde312a3 100644 --- a/tests/Utils/TokensTest.php +++ b/tests/Utils/TokensTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\Utils\Tokens; +use PHPUnit\Framework\Attributes\DataProvider; class TokensTest extends TestCase { @@ -16,6 +17,7 @@ class TokensTest extends TestCase * * @dataProvider replaceTokensProvider */ + #[DataProvider('replaceTokensProvider')] public function testReplaceTokens(string $list, array $find, array $replace, string $expected): void { $this->assertEquals($expected, Tokens::replaceTokens($list, $find, $replace)); @@ -48,6 +50,7 @@ public static function replaceTokensProvider(): array * * @dataProvider matchProvider */ + #[DataProvider('matchProvider')] public function testMatch(Token $token, array $pattern, bool $expected): void { $this->assertSame($expected, Tokens::match($token, $pattern));