Skip to content

Add support for PHPUnit 10, 11, 12 and 13 - #20405

Merged
MauricioFauth merged 15 commits into
phpmyadmin:QA_5_2from
MauricioFauth:phpunit-13-support
Jul 31, 2026
Merged

Add support for PHPUnit 10, 11, 12 and 13#20405
MauricioFauth merged 15 commits into
phpmyadmin:QA_5_2from
MauricioFauth:phpunit-13-support

Conversation

@MauricioFauth

@MauricioFauth MauricioFauth commented Jul 29, 2026

Copy link
Copy Markdown
Member

@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 48.27%. Comparing base (393d71b) to head (8ae96b8).
⚠️ Report is 10 commits behind head on QA_5_2.

Additional details and impacted files
@@             Coverage Diff              @@
##             QA_5_2   #20405      +/-   ##
============================================
+ Coverage     48.15%   48.27%   +0.11%     
  Complexity    17244    17244              
============================================
  Files           607      607              
  Lines         72679    72678       -1     
============================================
+ Hits          34999    35085      +86     
+ Misses        37680    37593      -87     
Flag Coverage Δ
dbase-extension 49.09% <ø> (?)
recode-extension 49.03% <ø> (-0.05%) ⬇️
unit-7.2-ubuntu-latest 49.00% <ø> (?)
unit-7.4-ubuntu-latest ?
unit-8.0-ubuntu-latest 49.48% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@MauricioFauth
MauricioFauth force-pushed the phpunit-13-support branch 2 times, most recently from a03155b to 48e6114 Compare July 29, 2026 16:41
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
@MauricioFauth
MauricioFauth force-pushed the phpunit-13-support branch 3 times, most recently from 32ad9f3 to 79cb929 Compare July 30, 2026 03:05

@williamdes williamdes left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you so much for this PR !
Beware we have https://salsa.debian.org/php-team/pear/rector-poc to do auto migration. that said there is work to do because it strips phpdoc annotations. But if you can workaround that it will help. Or maybe next time

@MauricioFauth

Copy link
Copy Markdown
Member Author

Thank you so much for this PR ! Beware we have https://salsa.debian.org/php-team/pear/rector-poc to do auto migration. that said there is work to do because it strips phpdoc annotations. But if you can workaround that it will help. Or maybe next time

I'm using Rector as well, but it doesn't fix everything and it doesn't get it right all the time.

Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Psalm needs to be removed to install PHPUnit >= 10.

Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
@MauricioFauth
MauricioFauth marked this pull request as ready for review July 30, 2026 21:44
@MauricioFauth MauricioFauth self-assigned this Jul 30, 2026
@liviuconcioiu

Copy link
Copy Markdown
Contributor

@MauricioFauth nice work! Just a few errors, if compiled locales are missing. Probably those tests should be skiped.

E:\GitHub\phpmyadmin>composer run phpunit
> @php phpunit --color=always
PHPUnit 13.2.6 by Sebastian Bergmann and contributors.

Runtime:       PHP 8.5.9
Configuration: E:\GitHub\phpmyadmin\phpunit.xml.dist
Random Seed:   1785477832

.............................................................   61 / 3183 (  1%)
.............................................................  122 / 3183 (  3%)
...................................D..................D..D...  183 / 3183 (  5%)
.............................................................  244 / 3183 (  7%)
.............................................................  305 / 3183 (  9%)
.............................................................  366 / 3183 ( 11%)
.............................................................  427 / 3183 ( 13%)
.............................................................  488 / 3183 ( 15%)
...........................................................D.  549 / 3183 ( 17%)
.............................................................  610 / 3183 ( 19%)
.............................................................  671 / 3183 ( 21%)
.............................................................  732 / 3183 ( 22%)
.............................................................  793 / 3183 ( 24%)
.............................................................  854 / 3183 ( 26%)
.........................................................D...  915 / 3183 ( 28%)
.............................................................  976 / 3183 ( 30%)
..........................................................D.. 1037 / 3183 ( 32%)
............................................................. 1098 / 3183 ( 34%)
............................................................. 1159 / 3183 ( 36%)
.............................D............................... 1220 / 3183 ( 38%)
................SS.S.SSS..................................... 1281 / 3183 ( 40%)
............................................................. 1342 / 3183 ( 42%)
......................DDDDDDDD............................... 1403 / 3183 ( 44%)
............................................................. 1464 / 3183 ( 45%)
............................................................. 1525 / 3183 ( 47%)
............................................................. 1586 / 3183 ( 49%)
............................................................. 1647 / 3183 ( 51%)
............................................................. 1708 / 3183 ( 53%)
........................DDD.....D....D....................... 1769 / 3183 ( 55%)
............................................................. 1830 / 3183 ( 57%)
............................................................. 1891 / 3183 ( 59%)
............................................................. 1952 / 3183 ( 61%)
............................................................. 2013 / 3183 ( 63%)
............................................................. 2074 / 3183 ( 65%)
............................................................. 2135 / 3183 ( 67%)
............................................................. 2196 / 3183 ( 68%)
............................................................. 2257 / 3183 ( 70%)
............................................................. 2318 / 3183 ( 72%)
.......................D.D...D............................... 2379 / 3183 ( 74%)
..................................SESESESESESESESESESESESESES 2440 / 3183 ( 76%)
ESESESESESESESESESESESESESESESESE..DDDDDDDDDDDDDDDDD......... 2501 / 3183 ( 78%)
............................................................. 2562 / 3183 ( 80%)
.....................................................S.S..... 2623 / 3183 ( 82%)
......S................................................S..... 2684 / 3183 ( 84%)
....S........................................................ 2745 / 3183 ( 86%)
............S.................D.D...DD.D.D...D.D.DD.D.DDD.... 2806 / 3183 ( 88%)
...DD.DD..................................................... 2867 / 3183 ( 90%)
............................................................. 2928 / 3183 ( 91%)
............................................................. 2989 / 3183 ( 93%)
............................................................. 3050 / 3183 ( 95%)
............................................................. 3111 / 3183 ( 97%)
............................................................. 3172 / 3183 ( 99%)
...........                                                   3183 / 3183 (100%)..............................

Time: 01:17.222, Memory: 118.00 MB

There were 30 errors:

1) PhpMyAdmin\Tests\LanguageTest::testAllAvailable
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

2) PhpMyAdmin\Tests\LanguageTest::testGettext#0 with data ('en')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

3) PhpMyAdmin\Tests\LanguageTest::testSortedLanguages
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

4) PhpMyAdmin\Tests\LanguageTest::testGet
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

5) PhpMyAdmin\Tests\LanguageTest::testLanguages
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

6) PhpMyAdmin\Tests\LanguageTest::testMySQLLocale
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

7) PhpMyAdmin\Tests\LanguageTest::testList
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

8) PhpMyAdmin\Tests\LanguageTest::testSelect#7 with data ('', '', '', '', '', '', 'cs', 'cs')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

9) PhpMyAdmin\Tests\LanguageTest::testSelect#2 with data ('', 'cs', 'en', '', '', '', '', 'cs')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

10) PhpMyAdmin\Tests\LanguageTest::testSelect#3 with data ('', '', 'cs', '', '', '', '', 'cs')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

11) PhpMyAdmin\Tests\LanguageTest::testSelect#1 with data ('', 'cs', '', '', '', '', '', 'cs')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

12) PhpMyAdmin\Tests\LanguageTest::testSelect#13 with data ('', '', '', '', 'ar-AE,ar;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'ar')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

13) PhpMyAdmin\Tests\LanguageTest::testSelect#16 with data ('', '', '', '', 'en-GB,en;q=0.7,pt;q=0.3', '', 'pt', 'en_GB')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

14) PhpMyAdmin\Tests\LanguageTest::testSelect#20 with data ('', '', '', '', 'zh-HK,zh;q=0.7,en;q=0.3', '', 'en', 'zh_TW')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

15) PhpMyAdmin\Tests\LanguageTest::testSelect#11 with data ('', '', '', '', 'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'pt_BR')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

16) PhpMyAdmin\Tests\LanguageTest::testSelect#10 with data ('', '', '', '', 'pt-PT,pt;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'pt')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

17) PhpMyAdmin\Tests\LanguageTest::testSelect#19 with data ('', '', '', '', 'zh-CN,zh;q=0.7,en;q=0.3', '', 'en', 'zh_CN')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

18) PhpMyAdmin\Tests\LanguageTest::testSelect#18 with data ('', '', '', '', 'zh,en;q=0.5', '', 'en', 'zh_CN')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

19) PhpMyAdmin\Tests\LanguageTest::testSelect#9 with data ('', '', '', '', 'pt;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'pt')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

20) PhpMyAdmin\Tests\LanguageTest::testSelect#8 with data ('', '', '', '', '', '', '', 'en')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

21) PhpMyAdmin\Tests\LanguageTest::testSelect#17 with data ('', '', '', '', 'en-US,en;q=0.7,pt;q=0.3', '', 'pt', 'en')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

22) PhpMyAdmin\Tests\LanguageTest::testSelect#6 with data ('', '', '', '', '', 'Mozilla/5.0 (Linux; U; Androi...M FOX)', '', 'tr')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

23) PhpMyAdmin\Tests\LanguageTest::testSelect#5 with data ('', '', '', '', 'cs,en-US;q=0.7,en;q=0.3', '', '', 'cs')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

24) PhpMyAdmin\Tests\LanguageTest::testSelect#15 with data ('', '', '', '', 'en,pt;q=0.5', '', 'pt', 'en')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

25) PhpMyAdmin\Tests\LanguageTest::testSelect#4 with data ('', '', '', 'cs', '', '', '', 'cs')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

26) PhpMyAdmin\Tests\LanguageTest::testSelect#14 with data ('', '', '', '', 'ar-LY,ar;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'ar_LY')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

27) PhpMyAdmin\Tests\LanguageTest::testSelect#0 with data ('cs', 'en', '', '', '', '', '', 'cs')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

28) PhpMyAdmin\Tests\LanguageTest::testSelect#12 with data ('', '', '', '', 'ar;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'ar')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

29) PhpMyAdmin\Tests\LanguageTest::testSelect#21 with data ('', '', '', '', 'zh-TW,zh;q=0.7,en;q=0.3', '', 'en', 'zh_TW')
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

30) PhpMyAdmin\Tests\LanguageTest::testAvailable
Error: Call to a member function getLanguage() on null

E:\GitHub\phpmyadmin\test\classes\LanguageTest.php:50
E:\GitHub\phpmyadmin\vendor\phpunit\phpunit\phpunit:104
E:\GitHub\phpmyadmin\vendor\bin\phpunit:122

ERRORS!
Tests: 3213, Assertions: 12791, Errors: 30, PHPUnit Deprecations: 59, Skipped: 42.
Script @php phpunit --color=always handling the phpunit event returned with error code 2

Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.com.br>
@MauricioFauth MauricioFauth added this to the 5.2.4 milestone Jul 31, 2026
@MauricioFauth
MauricioFauth merged commit 0ac0af5 into phpmyadmin:QA_5_2 Jul 31, 2026
58 checks passed
@MauricioFauth
MauricioFauth deleted the phpunit-13-support branch July 31, 2026 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants