Page MenuHomePhabricator

PHPUnit data providers should be simple static functions that return plain data
Open, Needs TriagePublic

Description

Non-static data providers are executed with code similar to:

$data = ( new $testClass )->$provider();

From this we can derive the drawbacks:

  • The test case constructor is executed unnecessarily, adding to provider execution time. Note that the time taken to run a few test cases with --filter is especially sensitive to data provider execution time, since all data providers need to be executed in order to get the list to filter.
  • The object state is immediately thrown away. This can be unexpected to developers, who try to use $this for caching, or to share state between providers, or between providers and test cases.

Reviewing existing non-static data providers, I noticed the following rationales, which I consider to be weak:

  • A non-static helper is needed. Perhaps the helper is shared between the provider and the test. But usually this means the data provider is doing too much. Most of the logic and execution time for the test should be in the test itself, not in the provider.
  • The mock builder is needed. But MockBuilder takes a TestCase as a required parameter because mocks have assertions attached to them. Mocks built by the provider will be attached to the fake test case, and certain kinds of assertions will not be executed. Also, mock construction is heavyweight, implemented with eval("class ..."), so for performance reasons it should not be done in the provider.

Some providers return objects, not just plain data. This has the following problems:

  • Object construction or factories, especially Title or User construction, may access services, which is unsafe to do so early.
  • The data provided by tests needs to be formatted in a human-readable way when the test fails.
  • Object construction is often slow.

So I think that, with very few exceptions, PHPUnit data providers should be simple and fast static functions that return plain data. The test, not the provider, should be responsible for converting the data to input suitable for the method under test.

PHPUnit 10 decided to deprecate non-static data providers end of 2022 for probably exactly these reasons.

Details

Related Changes in Gerrit:
SubjectRepoBranchLines +/-
mediawiki/coremaster+289 -126
mediawiki/coremaster+32 -0
mediawiki/coremaster+6 -25
mediawiki/extensions/WikimediaEventsmaster+1 -1
mediawiki/coremaster+4 -23
mediawiki/coremaster+29 -21
mediawiki/extensions/SecurePollmaster+1 -1
mediawiki/coremaster+1 -1
mediawiki/vendormaster+7 K -7 K
mediawiki/coremaster+738 -604
mediawiki/coremaster+22 -25
mediawiki/services/parsoidmaster+87 -86
mediawiki/tools/phan/SecurityCheckPluginmaster+11 -11
AhoCorasickmaster+2 -2
design/codex-phpmain+5 -5
mediawiki/libs/IDLeDOMmain+3 -3
mediawiki/libs/IPUtilsmaster+8 -8
purtlemaster+5 -5
mediawiki/libs/RemexHtmlmaster+16 -16
mediawiki/tools/phanmaster+3 -3
RelPathmaster+2 -2
wikimedia/slimappmaster+3 -3
wikimedia/lucene-explain-parsermaster+2 -2
HtmlFormattermaster+1 -1
mediawiki/libs/JsonCodecmain+5 -5
mediawiki/libs/XMPReadermaster+2 -2
mediawiki/libs/Zestmaster+10 -10
css-sanitizermaster+2 -2
mediawiki/libs/ObjectFactorymaster+1 -1
mediawiki/libs/NormalizedExceptionmaster+1 -1
oojs/uimaster+1 -1
mediawiki/coremaster+738 -714
mediawiki/coremaster+15 -42
mediawiki/coremaster+143 -112
mediawiki/coremaster+312 -309
mediawiki/coremaster+65 -65
mediawiki/extensions/cldrmaster+2 -2
mediawiki/extensions/GeoDatamaster+1 -1
mediawiki/extensions/GlobalPreferencesmaster+1 -1
mediawiki/extensions/ConfirmEditmaster+1 -1
mediawiki/extensions/CommunityRequestsmaster+1 -1
mediawiki/extensions/Citemaster+1 -1
mediawiki/extensions/CommonsMetadatamaster+1 -1
mediawiki/skins/MinervaNeuemaster+1 -1
mediawiki/extensions/Kartographermaster+1 -1
mediawiki/extensions/WikiLambdamaster+4 -4
mediawiki/skins/Vectormaster+10 -10
mediawiki/extensions/WikimediaEventsmaster+3 -3
mediawiki/extensions/JsonConfigmaster+1 -1
mediawiki/extensions/Translatemaster+5 -5
mediawiki/extensions/WikimediaMessagesmaster+2 -2
mediawiki/extensions/TimedMediaHandlermaster+13 -12
mediawiki/extensions/ORESmaster+1 -1
mediawiki/extensions/Echomaster+2 -2
mediawiki/extensions/GlobalBlockingmaster+3 -3
mediawiki/extensions/FlaggedRevsmaster+1 -1
mediawiki/extensions/CentralAuthmaster+11 -11
mediawiki/extensions/CheckUsermaster+24 -24
mediawiki/extensions/SecurePollmaster+1 -1
mediawiki/coremaster+50 -23
mediawiki/extensions/CentralAuthmaster+1 -1
mediawiki/extensions/Sanctionsmaster+1 -1
mediawiki/extensions/AchievementBadgesmaster+1 -1
mediawiki/extensions/WikispeechREL1_39+12 -12
mediawiki/extensions/ProofreadPagemaster+10 -6
mediawiki/coremaster+97 -75
mediawiki/extensions/ParserFunctionsmaster+2 -2
mediawiki/extensions/MediaUploadermaster+17 -17
mediawiki/extensions/CollaborationKitmaster+6 -6
mediawiki/extensions/LDAPAuthorizationmaster+10 -10
mediawiki/extensions/ContentStabilizationmaster+2 -2
mediawiki/extensions/ContentDropletsmaster+4 -4
mediawiki/extensions/GoogleLoginmaster+2 -2
mediawiki/extensions/RegexBlockmaster+1 -1
mediawiki/extensions/TEImaster+14 -14
mediawiki/extensions/WikibaseQualityConstraintsmaster+101 -101
mediawiki/extensions/WikiLambdamaster+165 -165
mediawiki/extensions/NSFileRepomaster+1 -1
mediawiki/extensions/NSFileRepoREL1_39+1 -1
mediawiki/extensions/TemplateStylesmaster+1 -1
mediawiki/extensions/Translatemaster+77 -77
mediawiki/extensions/OAuthmaster+11 -11
mediawiki/extensions/WikibaseLexememaster+363 -363
mediawiki/extensions/Wikibasemaster+866 -866
mediawiki/extensions/PageFormsmaster+95 -95
mediawiki/extensions/Echomaster+57 -73
mediawiki/extensions/ArticleCreationWorkflowmaster+65 -59
mediawiki/extensions/PageCheckoutmaster+1 -1
mediawiki/extensions/EnhancedUploadmaster+1 -1
mediawiki/extensions/LDAPSyncAllmaster+1 -1
mediawiki/extensions/WikimediaBadgesmaster+37 -34
mediawiki/extensions/GrowthExperimentsmaster+120 -120
mediawiki/extensions/CentralNoticemaster+2 -2
mediawiki/extensions/WikibaseLexemeCirrusSearchmaster+5 -5
mediawiki/extensions/MachineVisionmaster+8 -15
mediawiki/skins/BlueSpiceDiscoverymaster+3 -3
mediawiki/extensions/MenuEditormaster+5 -5
mediawiki/extensions/WikibaseManifestmaster+6 -6
mediawiki/extensions/DonationInterfacemaster+13 -13
mediawiki/extensions/ProofreadPagemaster+52 -52
mediawiki/extensions/ArrayFunctionsmaster+1 -1
mediawiki/extensions/CampaignEventsmaster+73 -73
mediawiki/skins/TuleapSkinmaster+1 -1
mediawiki/extensions/Cargomaster+19 -19
mediawiki/extensions/ContentTransfermaster+1 -1
mediawiki/extensions/Link_Attributesmaster+1 -1
mediawiki/extensions/Workflowsmaster+15 -24
mediawiki/extensions/CommentStreamsmaster+1 -1
mediawiki/extensions/CreatePageUwmaster+2 -2
mediawiki/extensions/CookieWarningmaster+2 -2
mediawiki/extensions/CreateRedirectmaster+1 -1
mediawiki/extensions/EmailAuthorizationmaster+2 -2
mediawiki/extensions/DrawioEditormaster+2 -2
mediawiki/extensions/SimilarEditorsmaster+1 -1
mediawiki/extensions/SecurityApimaster+2 -2
mediawiki/extensions/UseResourcemaster+2 -2
mediawiki/extensions/Wikispeechmaster+12 -12
mediawiki/extensions/WikispeechSpeechDataCollectormaster+9 -9
mediawiki/extensions/ExternalDatamaster+14 -14
mediawiki/extensions/CategoryExplorermaster+1 -1
mediawiki/extensions/LDAPGroupsmaster+2 -2
mediawiki/extensions/Lingomaster+10 -10
mediawiki/extensions/NotesLinkmaster+1 -1
mediawiki/extensions/MobileFrontendContentProvidermaster+1 -1
mediawiki/extensions/MathSearchmaster+1 -1
mediawiki/extensions/PhpTagsMapsmaster+1 -1
mediawiki/extensions/SimpleSAMLphpmaster+2 -2
mediawiki/extensions/TitleIconmaster+1 -1
mediawiki/extensions/TuleapWikiFarmmaster+2 -2
mediawiki/extensions/TranslateSvgmaster+7 -7
mediawiki/extensions/UnlinkedWikibasemaster+1 -1
mediawiki/extensions/WikibaseMediaInfomaster+33 -33
mediawiki/extensions/EntitySchemamaster+30 -30
mediawiki/extensions/EventLoggingmaster+6 -6
mediawiki/extensions/GeoDatamaster+29 -29
mediawiki/extensions/AbuseFiltermaster+101 -101
mediawiki/extensions/Mathmaster+30 -25
mediawiki/extensions/CheckUsermaster+102 -102
mediawiki/extensions/Thanksmaster+55 -62
mediawiki/extensions/PageImagesmaster+20 -15
mediawiki/extensions/CirrusSearchmaster+134 -134
mediawiki/extensions/CommonsMetadatamaster+12 -15
mediawiki/extensions/WikibaseCirrusSearchmaster+22 -22
mediawiki/extensions/VisualEditormaster+13 -13
mediawiki/extensions/VipsScalermaster+10 -10
mediawiki/skins/WikimediaApiPortalmaster+4 -4
mediawiki/extensions/FileImportermaster+93 -92
mediawiki/extensions/EventBusmaster+14 -14
mediawiki/extensions/Wikidata.orgmaster+1 -1
mediawiki/extensions/Scribuntomaster+4 -4
mediawiki/extensions/ReadingListsmaster+20 -20
mediawiki/extensions/Flowmaster+27 -27
mediawiki/extensions/IPInfomaster+23 -23
mediawiki/extensions/LoginNotifymaster+4 -4
mediawiki/extensions/WikimediaEventsmaster+214 -234
mediawiki/extensions/MobileFrontendmaster+160 -160
mediawiki/extensions/CentralAuthmaster+12 -12
mediawiki/extensions/MassMessagemaster+31 -26
mediawiki/skins/Vectormaster+25 -25
mediawiki/extensions/MediaModerationmaster+4 -7
mediawiki/extensions/Phonosmaster+3 -3
mediawiki/extensions/GlobalBlockingmaster+2 -2
mediawiki/extensions/DiscussionToolsmaster+22 -22
mediawiki/extensions/GlobalPreferencesmaster+4 -4
mediawiki/extensions/TwoColConflictmaster+31 -31
mediawiki/extensions/CategoryTreemaster+1 -1
mediawiki/extensions/ContentTranslationmaster+7 -7
mediawiki/extensions/ChessBrowsermaster+4 -4
mediawiki/extensions/ArticlePlaceholdermaster+4 -4
mediawiki/extensions/QuickSurveysmaster+4 -4
mediawiki/extensions/LocalisationUpdatemaster+2 -2
mediawiki/extensions/SecurePollmaster+3 -3
mediawiki/extensions/PageViewInfomaster+2 -2
mediawiki/extensions/TimedMediaHandlermaster+8 -8
mediawiki/extensions/Cognatemaster+3 -3
mediawiki/extensions/PropertySuggestermaster+8 -8
mediawiki/extensions/TextExtractsmaster+6 -6
mediawiki/extensions/Wikistoriesmaster+1 -1
mediawiki/extensions/UniversalLanguageSelectormaster+1 -1
mediawiki/extensions/WikidataPageBannermaster+6 -6
mediawiki/extensions/TrustedXFFmaster+1 -1
mediawiki/extensions/Wikisourcemaster+17 -17
mediawiki/extensions/TranslationNotificationsmaster+1 -1
mediawiki/extensions/TitleBlacklistmaster+1 -1
mediawiki/extensions/SpamBlacklistmaster+2 -2
mediawiki/extensions/UploadWizardmaster+2 -2
mediawiki/extensions/TemplateDatamaster+7 -7
mediawiki/extensions/ORESmaster+16 -16
mediawiki/extensions/JsonConfigmaster+24 -23
mediawiki/extensions/Kartographermaster+22 -22
mediawiki/extensions/SecureLinkFixermaster+2 -2
mediawiki/extensions/OAuthRateLimitermaster+5 -5
mediawiki/extensions/Quizmaster+8 -8
mediawiki/extensions/Babelmaster+5 -5
mediawiki/extensions/Disambiguatormaster+1 -1
mediawiki/extensions/FlaggedRevsmaster+4 -4
mediawiki/extensions/InterwikiSortingmaster+5 -5
mediawiki/extensions/GlobalWatchlistmaster+3 -3
mediawiki/extensions/GlobalCssJsmaster+1 -2
mediawiki/extensions/GuidedTourmaster+2 -2
mediawiki/extensions/EventStreamConfigmaster+3 -3
mediawiki/extensions/ConfirmEditmaster+26 -26
mediawiki/extensions/Collectionmaster+41 -41
mediawiki/extensions/ExternalGuidancemaster+1 -1
mediawiki/extensions/Citemaster+18 -18
mediawiki/extensions/Popupsmaster+8 -8
mediawiki/extensions/FileExportermaster+1 -1
mediawiki/extensions/AntiSpoofmaster+4 -4
mediawiki/extensions/AdvancedSearchmaster+1 -1
mediawiki/skins/MinervaNeuemaster+1 -1
mediawiki/coremaster+95 -95
mediawiki/coremaster+78 -25
mediawiki/coremaster+694 -694
Show related patches Customize query in gerrit

Related Objects

StatusSubtypeAssignedTask
StalledNone
StalledNone
OpenNone
OpenNone
OpenNone
OpenNone
ResolvedUmherirrender
OpenNone
ResolvedUmherirrender
ResolvedUmherirrender
Resolved mszabo
Resolvedtstarling
ResolvedUmherirrender
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedPhysikerwelt
ResolvedTgr
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedNone
ResolvedUmherirrender
ResolvedNone
ResolvedNone
ResolvedkarapayneWMDE
ResolvedAudreyPenven_WMDE
ResolvedAudreyPenven_WMDE
ResolvedLucas_Werkmeister_WMDE
ResolvedLucas_Werkmeister_WMDE
ResolvedUmherirrender
Resolvedthiemowmde
ResolvedLucas_Werkmeister_WMDE
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
Resolved mszabo
ResolvedxSavitar
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
OpenNone

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change #1141471 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[design/codex-php@main] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141471

Change #1141472 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[css-sanitizer@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141472

Change #1141473 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[HtmlFormatter@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141473

Change #1141474 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/libs/IDLeDOM@main] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141474

Change #1141475 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/libs/IPUtils@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141475

Change #1141476 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/libs/JsonCodec@main] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141476

Change #1141477 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[wikimedia/lucene-explain-parser@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141477

Change #1141478 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/libs/NormalizedException@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141478

Change #1141479 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/libs/ObjectFactory@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141479

Change #1141481 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[oojs/ui@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141481

Change #1141482 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/tools/phan@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141482

Change #1141483 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[purtle@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141483

Change #1141484 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[RelPath@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141484

Change #1141485 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/libs/RemexHtml@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141485

Change #1141486 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/tools/phan/SecurityCheckPlugin@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141486

Change #1141487 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[wikimedia/slimapp@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141487

Change #1141488 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/libs/XMPReader@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141488

Change #1141489 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/libs/Zest@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141489

Change #1141481 merged by jenkins-bot:

[oojs/ui@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141481

Change #1141478 merged by jenkins-bot:

[mediawiki/libs/NormalizedException@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141478

Change #1141491 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/services/parsoid@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141491

Change #1141479 merged by jenkins-bot:

[mediawiki/libs/ObjectFactory@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141479

Change #1141472 merged by jenkins-bot:

[css-sanitizer@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141472

Change #1141489 merged by jenkins-bot:

[mediawiki/libs/Zest@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141489

Change #1141488 merged by jenkins-bot:

[mediawiki/libs/XMPReader@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141488

Change #1141476 merged by jenkins-bot:

[mediawiki/libs/JsonCodec@main] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141476

Change #1141473 merged by jenkins-bot:

[HtmlFormatter@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141473

Change #1141281 merged by jenkins-bot:

[mediawiki/core@master] tests: Remove two data provider in LanguageCodeTest

https://gerrit.wikimedia.org/r/1141281

Change #1141486 merged by jenkins-bot:

[mediawiki/tools/phan/SecurityCheckPlugin@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141486

Change #1141482 merged by jenkins-bot:

[mediawiki/tools/phan@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141482

Change #1141487 merged by jenkins-bot:

[wikimedia/slimapp@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141487

Change #1141484 merged by jenkins-bot:

[RelPath@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141484

Change #1141485 merged by jenkins-bot:

[mediawiki/libs/RemexHtml@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141485

Change #1141483 merged by jenkins-bot:

[purtle@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141483

Change #1141477 merged by jenkins-bot:

[wikimedia/lucene-explain-parser@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141477

Change #1141475 merged by jenkins-bot:

[mediawiki/libs/IPUtils@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141475

Change #1141474 merged by jenkins-bot:

[mediawiki/libs/IDLeDOM@main] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141474

Change #1141471 merged by jenkins-bot:

[design/codex-php@main] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141471

Change #1141470 merged by jenkins-bot:

[AhoCorasick@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141470

Change #1141491 merged by jenkins-bot:

[mediawiki/services/parsoid@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1141491

Change #1141352 merged by jenkins-bot:

[mediawiki/core@master] tests: Make PHPUnit data provider static (callbacks)

https://gerrit.wikimedia.org/r/1141352

Created patch sets to change data provider to static functions or created sub tasks, if more complicated. For the moment all known data provider should be static or have a task pending across wmf deployed core, skins, extensions and libs.

There is no linting yet to avoid new non-static data provider (see T333745: CodeSniffer should detect non-static data provider in phpunit tests and report them or https://gerrit.wikimedia.org/r/c/mediawiki/core/+/902766)

In most of the created patch set I only addressed the "static function" part of this task, some are also fully using plain data now.
The "plain data" part of this task maybe gets addressed with or as part of T358451: Disallow access to globals and MediaWikiServices during the execution of PHPUnit data providers.
If "plain data" means only scalar types, there are also pre-existing static data provider violating this, for example by using closures/arrow functions or light weight classes without service access.

Created patch sets to change data provider to static functions or created sub tasks, if more complicated. For the moment all known data provider should be static or have a task pending across wmf deployed core, skins, extensions and libs.

Thanks very much for doing this!

Change #1141975 had a related patch set uploaded (by Arlolra; author: Arlolra):

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.21.0-a28

https://gerrit.wikimedia.org/r/1141975

Change #1141975 merged by jenkins-bot:

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.21.0-a28

https://gerrit.wikimedia.org/r/1141975

Change #1147064 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/SecurePoll@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1147064

Change #1147065 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1147065

Change #1147065 merged by jenkins-bot:

[mediawiki/core@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1147065

Change #1147064 merged by jenkins-bot:

[mediawiki/extensions/SecurePoll@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1147064

Change #1147099 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] tests: Remove non-static fallback in AuthenticationRequestTestCase

https://gerrit.wikimedia.org/r/1147099

Change #1147101 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] tests: Remove non-static fallback in HookRunnerTestBase

https://gerrit.wikimedia.org/r/1147101

Change #1147122 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] tests: Make PHPUnit data provider static in LanguageNameUtilsTestTrait

https://gerrit.wikimedia.org/r/1147122

Change #1147122 merged by jenkins-bot:

[mediawiki/core@master] tests: Make PHPUnit data provider static (traits)

https://gerrit.wikimedia.org/r/1147122

Change #1149838 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/WikimediaEvents@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1149838

Change #1147099 merged by jenkins-bot:

[mediawiki/core@master] tests: Remove non-static fallback in AuthenticationRequestTestCase

https://gerrit.wikimedia.org/r/1147099

Change #1149838 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@master] tests: Make PHPUnit data provider static

https://gerrit.wikimedia.org/r/1149838

Change #1147101 merged by jenkins-bot:

[mediawiki/core@master] tests: Remove non-static fallback in HookRunnerTestBase

https://gerrit.wikimedia.org/r/1147101

Change #1156368 had a related patch set uploaded (by VolkerE; author: VolkerE):

[mediawiki/core@master] Update OOUI to v0.52.0

https://gerrit.wikimedia.org/r/1156368

Change #1156368 merged by jenkins-bot:

[mediawiki/core@master] Update OOUI to v0.52.0

https://gerrit.wikimedia.org/r/1156368