11:07:38INFO:quibble.commands:>>> Start: Start backends: <MySQL (no socket)>
11:07:38INFO:backend.MySQL:Starting MySQL
11:07:38INFO:backend.MySQL:Initializing MySQL data directory
11:07:41INFO:backend.MySQL:Waiting for MySQL socket
11:07:42INFO:backend.MySQL:Creating the wiki database and grant
11:07:42INFO:backend.MySQL:MySQL is ready
11:07:42INFO:quibble.commands:<<< Finish: Start backends: <MySQL (no socket)>, in 3.550 s
Run Post-dependency install
11:07:42INFO:quibble.commands:>>> Start: Run Post-dependency install, pre-database dependent steps in parallel (concurrency=2):
11:07:42* Install MediaWiki, db=<MySQL /workspace/db/quibble-mysql-5xhg947v/socket>
11:07:42* npm install in /workspace/src
Install MediaWiki
11:07:45INFO:quibble.commands:>>> Start: Install MediaWiki, db=<MySQL /workspace/db/quibble-mysql-5xhg947v/socket>
11:07:45php maintenance/install.php --scriptpath= --server=http://127.0.0.1:9413 --dbtype=mysql --dbname=wikidb --dbuser=wikiuser --dbpass=secret --dbserver=localhost:/workspace/db/quibble-mysql-5xhg947v/socket --with-extensions --pass=testwikijenkinspass TestWiki WikiAdmin
11:07:45PHP 7.4.33 is installed.
11:07:45ICU 67.1 is installed (supports Unicode 13.0.0).
11:07:45Found ImageMagick: /usr/bin/convert. Image thumbnailing will be enabled if you enable uploads.
11:07:45Found the Git version control software: /usr/bin/git.
11:07:45Using server name "http://localhost".
11:07:45Using server URL "http://127.0.0.1:9413".
11:07:45Warning: Your default directory for uploads (/workspace/src/images/) is not checked for vulnerability to arbitrary script execution during the CLI install.
11:07:45Warning: Requests for images in your uploads directory should answer with the HTTP header X-Content-Type-Options: nosniff to protect browsers from potentially unsafe files. It is highly recommended to configure appropriate response headers on your webserver before enabling uploads.
11:07:45The environment has been checked. You can install MediaWiki.
11:07:45Including extensions
11:07:45done
11:07:45Setting up database
11:07:45done
11:07:45Creating tables
11:07:45done
11:07:45Initializing statistics
11:07:45done
11:07:45Populating default interwiki table
11:07:45done
11:07:45Prevent running unneeded updates
11:07:45done
11:07:45Restoring MediaWiki services
11:07:45done
11:07:45Creating tables for enabled extensions
11:07:45Creating visualdata_schema_pages table...done.
11:07:45Creating visualdata_schemas table...done.
11:07:45Creating visualdata_props table...done.
11:07:45Creating visualdata_prop_tables table...done.
11:07:45Creating visualdata_links table...done.
11:07:45Creating visualdata_links_template table...done.
11:07:45Creating visualdata_text table...done.
11:07:45Creating visualdata_textarea table...done.
11:07:45Creating visualdata_date table...done.
11:07:45Creating visualdata_datetime table...done.
11:07:45Creating visualdata_time table...done.
11:07:45Creating visualdata_integer table...done.
11:07:45Creating visualdata_numeric table...done.
11:07:45Creating visualdata_boolean table...done.
11:07:45done
11:07:45Creating main page with default content
11:07:45done
11:07:45Creating administrator user account
11:07:45done
11:07:45Database was successfully set up
11:07:45MediaWiki has been successfully installed. You can now visit <http://127.0.0.1:9413> to view your wiki. If you have questions, check out our frequently asked questions list: <https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ> or use one of the support forums linked on that page.
11:07:45Copying /workspace/src/LocalSettings.php to /workspace/log/LocalSettings.php
11:07:45Copying /workspace/src/LocalSettings-installer.php to /workspace/log/LocalSettings-installer.php
11:07:45No syntax errors detected in /workspace/src/LocalSettings.php
11:07:45php maintenance/addSite.php wikidb CI --filepath=http://127.0.0.1:9413/$1 --pagepath=http://127.0.0.1:9413/index.php?title=$111:07:45Done. Reload the web server and other long-running PHP processes to refresh the local-server cache of the sites table.
11:07:45php maintenance/update.php --quick
11:07:45MediaWiki 1.44.0-alpha Updater
11:07:4511:07:45Your composer.lock file is up to date with current dependencies!
11:07:45Going to run database updates for wikidb
11:07:45Depending on the size of your database this may take a while!
11:07:45Updating category collations...
11:07:45Selecting next 100 pages from cl_from = 0... processing... 0 done.
11:07:450 rows processed
11:07:45...done.
11:07:45Modifying rd_title field of table redirect...done.
11:07:45...pl_title field does not exist in pagelinks table, skipping modify field patch.
11:07:45...tl_title field does not exist in templatelinks table, skipping modify field patch.
11:07:45Modifying il_to field of table imagelinks...done.
11:07:45Modifying ll_title field of table langlinks...done.
11:07:45Modifying iwl_title field of table iwlinks...done.
11:07:45Modifying cat_title field of table category...done.
11:07:45Modifying qc_title field of table querycache...done.
11:07:45Modifying qcc_title field of table querycachetwo...done.
11:07:45Modifying wl_title field of table watchlist...done.
11:07:45Modifying user_last_timestamp field of table user_newtalk...done.
11:07:45Modifying pt_title field of table protected_titles...done.
11:07:45Removing 'protected_titles.pt_expiry' default value.
11:07:45Removing 'ip_changes.ipc_rev_timestamp' default value.
11:07:45Modifying ir_type field of table ipblocks_restrictions...done.
11:07:45...index wl_namespace_title already set on watchlist table.
11:07:45Modifying job_title field of table job...done.
11:07:45Modifying job_timestamp field of table job...done.
11:07:45Modifying job_token_timestamp field of table job...done.
11:07:45Modifying wl_notificationtimestamp field of table watchlist...done.
11:07:45Modifying role_id field of table slot_roles...done.
11:07:45Modifying model_id field of table content_models...done.
11:07:45Modifying cl_to field of table categorylinks...done.
11:07:45Modifying log_title field of table logging...done.
11:07:45Modifying us_timestamp field of table uploadstash...done.
11:07:45...index up_property already set on user_properties table.
11:07:45...index site_global_key already set on sites table.
11:07:45...index log_type_time already set on logging table.
11:07:45Modifying fa_name field of table filearchive...done.
11:07:45Removing 'filearchive.fa_deleted_timestamp' default value.
11:07:45Removing 'filearchive.fa_timestamp' default value.
11:07:45Modifying oi_name field of table oldimage...done.
11:07:45Removing 'oldimage.oi_timestamp' default value.
11:07:45Modifying exptime field of table objectcache...done.
11:07:45...index ar_name_title_timestamp already set on archive table.
11:07:45Modifying img_name field of table image...done.
11:07:45Removing 'image.img_timestamp' default value.
11:07:45Modifying img_timestamp field of table image...done.
11:07:45...index si_key already set on site_identifiers table.
11:07:45Modifying rc_title field of table recentchanges...done.
11:07:45Removing 'recentchanges.rc_timestamp' default value.
11:07:45Modifying rc_timestamp field of table recentchanges...done.
11:07:45Modifying rc_id field of table recentchanges...done.
11:07:45...index rc_new_name_timestamp already set on recentchanges table.
11:07:45Removing 'archive.ar_timestamp' default value.
11:07:45Modifying ar_title field of table archive...done.
11:07:45Modifying page_title field of table page...done.
11:07:45Removing 'page.page_touched' default value.
11:07:45Modifying user_name field of table user...done.
11:07:45...index rev_page_timestamp already set on revision table.
11:07:45...have modtoken field in objectcache table.
11:07:45Removing 'revision.rev_timestamp' default value.
11:07:45...index oi_timestamp already set on oldimage table.
11:07:45...index page_name_title already set on page table.
11:07:45...index ct_rc_tag_id already set on change_tag table.
11:07:45Converting djvu metadata...
11:07:45Finished refreshing file metadata for 0 files. 0 needed to be refreshed, 0 did not need to be but were refreshed anyways, and 0 refreshes were suspicious.
11:07:45...done.
11:07:45...page_restrictions table does not contain pr_user field.
11:07:45Modifying fa_id field of table filearchive...done.
11:07:45Modifying img_major_mime field of table image...done.
11:07:45...linktarget table already exists.
11:07:45...rev_page_id key doesn't exist.
11:07:45Modifying pr_page field of table page_restrictions...done.
11:07:45Modifying pp_page field of table page_props...done.
11:07:45Modifying ir_value field of table ipblocks_restrictions...done.
11:07:45...have tl_target_id field in templatelinks table.
11:07:45...user_autocreate_serial table already exists.
11:07:45Modifying ir_ipb_id field of table ipblocks_restrictions...done.
11:07:45...ipblocks table does not exist, skipping modify field patch.
11:07:45Modifying user_editcount field of table user...done.
11:07:45Running MigrateRevisionActorTemp...
11:07:45revision_actor_temp does not exist, so nothing to do.
11:07:45done.
11:07:45...revision_actor_temp doesn't exist.
11:07:45Running UpdateRestrictions...
11:07:45Migration is not needed.
11:07:45done.
11:07:45...page table does not contain page_restrictions field.
11:07:45Running migrateLinksTable.php on templatelinks...
11:07:45Old fields don't exist. There is no need to run this script
11:07:45done.
11:07:45...tl_namespace field does not exist in templatelinks table, skipping modify field patch.
11:07:45...templatelinks table does not contain tl_title field.
11:07:45...have el_to_path field in externallinks table.
11:07:45...have user_is_temp field in user table.
11:07:45Running MigrateRevisionCommentTemp...
11:07:45revision_comment_temp does not exist, so nothing to do.
11:07:45done.
11:07:45...revision_comment_temp doesn't exist.
11:07:45Running MigrateExternallinks...
11:07:45Old fields don't exist. There is no need to run this script
11:07:45done.
11:07:45...el_to field does not exist in externallinks table, skipping modify field patch.
11:07:45...have pl_target_id field in pagelinks table.
11:07:45...externallinks table does not contain el_to field.
11:07:45Running FixInconsistentRedirects...
11:07:45Fixing inconsistent redirects ...
11:07:45Estimated redirect page count: 1
11:07:450/0
11:07:45Done, updated 0 of 0 rows.
11:07:45done.
11:07:45Modifying img_size field of table image...done.
11:07:45Modifying fa_size field of table filearchive...done.
11:07:45Modifying oi_size field of table oldimage...done.
11:07:45Modifying us_size field of table uploadstash...done.
11:07:45...have uas_year field in user_autocreate_serial table.
11:07:45...block_target table already exists.
11:07:45...cl_collation_ext key doesn't exist.
11:07:45Running PopulateUserIsTemp...
11:07:45done.
11:07:45...site_type key doesn't exist.
11:07:45...iwl_prefix_from_title key doesn't exist.
11:07:45Running migrateLinksTable.php on pagelinks...
11:07:45Old fields don't exist. There is no need to run this script
11:07:45done.
11:07:45Modifying rev_id field of table revision...done.
11:07:45Modifying rc_id field of table recentchanges...done.
11:07:45Modifying ct_rc_id field of table change_tag...done.
11:07:45Running MigrateBlocks...
11:07:45No ipblocks table, skipping migration to block_target.
11:07:45done.
11:07:45...ipblocks doesn't exist.
11:07:45...pagelinks table does not contain pl_title field.
11:07:45Modifying page_links_updated field of table page...done.
11:07:45Changing table options of 'searchindex'.
11:07:45...index PRIMARY already set on searchindex table.
11:07:45...site_stats is populated...done.
11:07:45Checking existence of old default messages...done.
11:07:45Adding empty categories with description pages...
11:07:45Removing empty categories without description pages...
11:07:45Category cleanup complete.
11:07:45Fixing log entries with log_title starting with 'User:#'
11:07:45done.
11:07:45Purging caches...done.
11:07:4511:07:45Done in 1.6 s.
11:07:45php maintenance/rebuildLocalisationCache.php --lang en
11:07:45Rebuilding en...
11:07:451 languages rebuilt out of 1
11:07:45<<< Finish: Install MediaWiki, db=<MySQL /workspace/db/quibble-mysql-5xhg947v/socket>, in 3.500 s
11:07:4511:07:52DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 10s elapsed, 1/2 completed
npm install in /workspace/src
11:07:53INFO:quibble.commands:>>> Start: npm install in /workspace/src
11:07:53npm warn deprecated @types/easy-table@1.2.0: This is a stub types definition. easy-table provides its own type definitions, so you do not need this installed.
11:07:53npm warn deprecated har-validator@5.1.5: this library is no longer supported
11:07:53npm warn deprecated date-format@0.0.2: 0.x is no longer supported. Please upgrade to 4.x or higher.
11:07:53npm warn deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
11:07:53npm warn deprecated formidable@1.2.6: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau11:07:53npm warn deprecated domexception@4.0.0: Use your platform's native DOMException instead
11:07:53npm warn deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
11:07:53npm warn deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/314211:07:53npm warn deprecated superagent@6.1.0: Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at <https://github.com/visionmedia/superagent/releases>. Thanks to @shadowgate15, @spence-s, and @niftylettuce. Superagent is sponsored by Forward Email at <https://forwardemail.net>.
11:07:5311:07:53added 1449 packages, and audited 1451 packages in 11s
11:07:5311:07:53160 packages are looking for funding
11:07:53 run `npm fund` for details
11:07:5311:07:5316 vulnerabilities (1 low, 4 moderate, 11 high)
11:07:5311:07:53To address issues that do not require attention, run:
11:07:53 npm audit fix
11:07:5311:07:53To address all issues (including breaking changes), run:
11:07:53 npm audit fix --force
11:07:5311:07:53Run `npm audit` for details.
11:07:53<<< Finish: npm install in /workspace/src, in 10.954 s
11:07:5311:07:53INFO:quibble.commands:<<< Finish: Run Post-dependency install, pre-database dependent steps in parallel (concurrency=2):
11:07:53* Install MediaWiki, db=<MySQL /workspace/db/quibble-mysql-5xhg947v/socket>
11:07:53* npm install in /workspace/src, in 11.054 s
PHPUnit unit tests
11:08:01INFO:quibble.commands:>>> Start: PHPUnit Prepare Parallel Run (Composer)
11:08:02> MediaWiki\Composer\PhpUnitSplitter\PhpUnitXmlManager::listTestsNotice
11:08:0211:08:02Running `phpunit --list-tests-xml` to get a list of expected tests ...
11:08:0211:08:02> phpunit '--list-tests-xml=tests-list-extensions.xml' '--testsuite=extensions'
11:08:02Using PHP 7.4.33
11:08:02Running with MediaWiki settings because there might be integration tests
11:08:03PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:0311:08:03Wrote list of tests that would have been run to tests-list-extensions.xml
11:08:03> MediaWiki\Composer\PhpUnitSplitter\PhpUnitXmlManager::splitTestsListExtensions
11:08:0311:08:03Created modified `phpunit.xml` with test suite groups
11:08:03INFO:quibble.util:Copying /workspace/src/phpunit.xml to /workspace/log/phpunit-parallel.xml
11:08:03INFO:quibble.commands:<<< Finish: PHPUnit Prepare Parallel Run (Composer), in 1.897 s
PHPUnit extensions suite (without database or standalone) parallel run (Composer)
11:08:03INFO:quibble.commands:>>> Start: PHPUnit extensions suite (without database or standalone) parallel run (Composer)
11:08:04> MediaWiki\Composer\ComposerLaunchParallel::launchTestsDatabaseless
11:08:04Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_0' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_0_databaseless.result.cache'' ...
11:08:04Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_1' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_1_databaseless.result.cache'' ...
11:08:04Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_2' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_2_databaseless.result.cache'' ...
11:08:04Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_3' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_3_databaseless.result.cache'' ...
11:08:04Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_5' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_5_databaseless.result.cache'' ...
11:08:04Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_4' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_4_databaseless.result.cache'' ...
11:08:04Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_6' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_6_databaseless.result.cache'' ...
11:08:05> phpunit '--testsuite' 'split_group_4' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_4_databaseless.result.cache'
11:08:05Using PHP 7.4.33
11:08:05Running with MediaWiki settings because there might be integration tests
11:08:05PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:0511:08:05..................... 21 / 21 (100%)
11:08:0511:08:05Time: 00:00.056, Memory: 32.50 MB
11:08:0511:08:05OK (21 tests, 31 assertions)
11:08:05Worker exited with status 0
11:08:05> phpunit '--testsuite' 'split_group_3' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_3_databaseless.result.cache'
11:08:05Using PHP 7.4.33
11:08:05Running with MediaWiki settings because there might be integration tests
11:08:05PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:0511:08:05................................ 32 / 32 (100%)
11:08:0511:08:05Time: 00:00.130, Memory: 40.50 MB
11:08:0511:08:05OK (32 tests, 34 assertions)
11:08:05Worker exited with status 0
11:08:05> phpunit '--testsuite' 'split_group_2' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_2_databaseless.result.cache'
11:08:05Using PHP 7.4.33
11:08:05Running with MediaWiki settings because there might be integration tests
11:08:05PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:0511:08:05............................................ 44 / 44 (100%)
11:08:0511:08:05Time: 00:00.210, Memory: 48.50 MB
11:08:0511:08:05OK (44 tests, 124 assertions)
11:08:0511:08:0511:08:05You should really speed up these slow tests (>100ms)...
11:08:05 1. 143ms to run MediaWiki\\Skins\\Vector\\Tests\\Integration\\SkinVectorTest::testGetTemplateData
11:08:05Worker exited with status 0
11:08:06> phpunit '--testsuite' 'split_group_0' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_0_databaseless.result.cache'
11:08:06Using PHP 7.4.33
11:08:06Running with MediaWiki settings because there might be integration tests
11:08:06PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:0611:08:06................................................................. 65 / 69 ( 94%)
11:08:06.... 69 / 69 (100%)
11:08:0611:08:06Time: 00:00.472, Memory: 40.50 MB
11:08:0611:08:06OK (69 tests, 89 assertions)
11:08:0611:08:0611:08:06You should really speed up these slow tests (>100ms)...
11:08:06 1. 104ms to run AbstractSchemaValidationTest::testSchemasPassValidation with data set "maintenance/tables.json"
11:08:06Worker exited with status 0
11:08:07> phpunit '--testsuite' 'split_group_1' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_1_databaseless.result.cache'
11:08:07Using PHP 7.4.33
11:08:07Running with MediaWiki settings because there might be integration tests
11:08:07PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:0711:08:07................................ 32 / 32 (100%)
11:08:0711:08:07Time: 00:01.456, Memory: 52.50 MB
11:08:0711:08:07OK (32 tests, 54 assertions)
11:08:0711:08:0711:08:07You should really speed up these slow tests (>100ms)...
11:08:07 1. 627ms to run MediaWiki\\Skins\\Vector\\Tests\\Structure\\BundleSizeTest::testBundleSize with data set "skins.vector.styles.legacy"
11:08:07 2. 512ms to run MediaWiki\\Skins\\Vector\\Tests\\Structure\\BundleSizeTest::testBundleSize with data set "skins.vector.styles"
11:08:07 3. 102ms to run MediaWiki\\Tests\\Structure\\BundleSizeTest::testBundleSize with data set "mediawiki.page.ready"
11:08:07Worker exited with status 0
11:08:07> phpunit '--testsuite' 'split_group_6' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_6_databaseless.result.cache'
11:08:07Using PHP 7.4.33
11:08:07Running with MediaWiki settings because there might be integration tests
11:08:07PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:0711:08:07............................................................... 63 / 800 ( 7%)
11:08:07............................................................... 126 / 800 ( 15%)
11:08:07............................................................... 189 / 800 ( 23%)
11:08:07............................................................... 252 / 800 ( 31%)
11:08:07............................................................... 315 / 800 ( 39%)
11:08:07............................................................... 378 / 800 ( 47%)
11:08:07............................................................... 441 / 800 ( 55%)
11:08:07............................................................... 504 / 800 ( 63%)
11:08:07............................................................... 567 / 800 ( 70%)
11:08:07............................................................... 630 / 800 ( 78%)
11:08:07............................................................... 693 / 800 ( 86%)
11:08:07............................................................... 756 / 800 ( 94%)
11:08:07............................................ 800 / 800 (100%)
11:08:0711:08:07Time: 00:02.267, Memory: 42.50 MB
11:08:0711:08:08OK (800 tests, 8649 assertions)
11:08:0811:08:0811:08:08You should really speed up these slow tests (>100ms)...
11:08:08 1. 222ms to run MediaWiki\\Tests\\Structure\\SettingsTest::testConfigGeneration with data set "docs/config-schema.yaml"
11:08:08 2. 210ms to run MediaWiki\\Tests\\Structure\\SettingsTest::testConfigGeneration with data set "includes/MainConfigNames.php"
11:08:08 3. 209ms to run AutoLoaderStructureTest::testAutoloadOrder
11:08:08 4. 197ms to run MediaWiki\\Tests\\Structure\\SettingsTest::testConfigGeneration with data set "includes/config-schema.php"
11:08:08 5. 197ms to run MediaWiki\\Tests\\Structure\\SettingsTest::testConfigGeneration with data set "docs/config-vars.php"
11:08:08 6. 185ms to run AutoLoaderStructureTest::testAutoLoadConfig
11:08:08Worker exited with status 0
11:08:21> phpunit '--testsuite' 'split_group_5' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone,Database' '--cache-result-file=.phpunit_group_5_databaseless.result.cache'
11:08:21Using PHP 7.4.33
11:08:21Running with MediaWiki settings because there might be integration tests
11:08:21PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:2111:08:21............................................................. 61 / 3036 ( 2%)
11:08:21............................................................. 122 / 3036 ( 4%)
11:08:21............................................................. 183 / 3036 ( 6%)
11:08:21............................................................. 244 / 3036 ( 8%)
11:08:21............................................................. 305 / 3036 ( 10%)
11:08:21............................................................. 366 / 3036 ( 12%)
11:08:21............................................................. 427 / 3036 ( 14%)
11:08:21............................................................. 488 / 3036 ( 16%)
11:08:21............................................................. 549 / 3036 ( 18%)
11:08:21............................................................. 610 / 3036 ( 20%)
11:08:21............................................................. 671 / 3036 ( 22%)
11:08:21............................................................. 732 / 3036 ( 24%)
11:08:21............................................................. 793 / 3036 ( 26%)
11:08:21............................................................. 854 / 3036 ( 28%)
11:08:21............................................................. 915 / 3036 ( 30%)
11:08:21............................................................. 976 / 3036 ( 32%)
11:08:21............................................................. 1037 / 3036 ( 34%)
11:08:21............................................................. 1098 / 3036 ( 36%)
11:08:21............................................................. 1159 / 3036 ( 38%)
11:08:21............................................................. 1220 / 3036 ( 40%)
11:08:21............................................................. 1281 / 3036 ( 42%)
11:08:21............................................................. 1342 / 3036 ( 44%)
11:08:21............................................................. 1403 / 3036 ( 46%)
11:08:21............................................................. 1464 / 3036 ( 48%)
11:08:21............................................................. 1525 / 3036 ( 50%)
11:08:21............................................................. 1586 / 3036 ( 52%)
11:08:21............................................................. 1647 / 3036 ( 54%)
11:08:21............................................................. 1708 / 3036 ( 56%)
11:08:21............................................................. 1769 / 3036 ( 58%)
11:08:21............................................................. 1830 / 3036 ( 60%)
11:08:21............................................................. 1891 / 3036 ( 62%)
11:08:21............................................................. 1952 / 3036 ( 64%)
11:08:21............................................................. 2013 / 3036 ( 66%)
11:08:21............................................................. 2074 / 3036 ( 68%)
11:08:21............................................................. 2135 / 3036 ( 70%)
11:08:21............................................................. 2196 / 3036 ( 72%)
11:08:21............................................................. 2257 / 3036 ( 74%)
11:08:21............................................................. 2318 / 3036 ( 76%)
11:08:21............................................................. 2379 / 3036 ( 78%)
11:08:21............................................................. 2440 / 3036 ( 80%)
11:08:21............................................................. 2501 / 3036 ( 82%)
11:08:21............................................................. 2562 / 3036 ( 84%)
11:08:21............................................................. 2623 / 3036 ( 86%)
11:08:21............................................................. 2684 / 3036 ( 88%)
11:08:21............................................................. 2745 / 3036 ( 90%)
11:08:21............................................................. 2806 / 3036 ( 92%)
11:08:21............................................................. 2867 / 3036 ( 94%)
11:08:21............................................................. 2928 / 3036 ( 96%)
11:08:21............................................................. 2989 / 3036 ( 98%)
11:08:21............................................... 3036 / 3036 (100%)
11:08:2111:08:21Time: 00:15.397, Memory: 178.50 MB
11:08:2111:08:21OK (3036 tests, 3047 assertions)
11:08:2111:08:2111:08:21You should really speed up these slow tests (>100ms)...
11:08:21 1. 413ms to run ScopeStructureTest::testAutoloadNoFileScope with data set "/workspace/src/includes/languages/data/ZhConversion.php"
11:08:21 2. 187ms to run ScopeStructureTest::testAutoloadNoFileScope with data set "/workspace/src/includes/HookContainer/HookRunner.php"
11:08:21 3. 164ms to run ScopeStructureTest::testAutoloadNoFileScope with data set "/workspace/src/includes/parser/Parser.php"
11:08:21 4. 119ms to run ScopeStructureTest::testAutoloadNoFileScope with data set "/workspace/src/includes/editpage/EditPage.php"
11:08:21 5. 117ms to run ScopeStructureTest::testAutoloadNoFileScope with data set "/workspace/src/includes/Revision/RevisionStore.php"
11:08:21 6. 105ms to run ScopeStructureTest::testAutoloadNoFileScope with data set "/workspace/src/includes/MediaWikiServices.php"
11:08:21Worker exited with status 0
11:08:21INFO:quibble.commands:<<< Finish: PHPUnit extensions suite (without database or standalone) parallel run (Composer), in 17.526 s
Run phpbench
11:08:21INFO:quibble.commands:>>> Start: Run phpbench
11:08:21INFO:quibble.commands:Run phpbench
11:08:21INFO:quibble.commands:No phpbench entry found in composer.json
11:08:21INFO:quibble.commands:<<< Finish: Run phpbench, in 0.001 s
11:08:21INFO:quibble.commands:>>> Start: Run Qunit tests
11:08:21INFO:quibble.use_headless:Display: <None>
11:08:21DEBUG:quibble.chromium_flags:Flags: ['--autoplay-policy=no-user-gesture-required', '--disable-pushstate-throttle', '--no-sandbox', '--headless', '--disable-gpu', '--remote-debugging-port=9222']
11:08:21WARNING:backend.ChromeWebDriver:[1730545701.256][SEVERE]: bind() failed: Cannot assign requested address (99)
11:08:21Running "assert-mw-env" task
11:08:2111:08:21Running "karma:firefox" (karma) task
11:08:2102 11 2024 11:08:21.778:DEBUG [config]: No config file specified.
11:08:2102 11 2024 11:08:21.781:WARN [config]: "/" is proxied, you should probably change urlRoot to avoid conflicts
11:08:2102 11 2024 11:08:21.783:DEBUG [karma-server]: Final config Config {
11:08:21 LOG_DISABLE: 'OFF',
11:08:21 LOG_ERROR: 'ERROR',
11:08:21 LOG_WARN: 'WARN',
11:08:21 LOG_INFO: 'INFO',
11:08:21 LOG_DEBUG: 'DEBUG',
11:08:21 frameworks: [ 'qunit' ],
11:08:21 protocol: 'http:',
11:08:21 port: 9876,
11:08:21 listenAddress: '0.0.0.0',
11:08:21 hostname: 'localhost',
11:08:21 httpsServerConfig: {},
11:08:21 basePath: '/workspace/src',
11:08:21 files: [
11:08:21 UrlPattern {
11:08:21 pattern: 'http://127.0.0.1:9413//index.php?title=Special:JavaScriptTest/qunit/export',
11:08:21 served: false,
11:08:21 included: true,
11:08:21 watched: false,
11:08:21 nocache: false,
11:08:21 weight: [ 1, 0, 0, 0, 0, 1 ],
11:08:21 type: 'js',
11:08:21 isBinary: undefined,
11:08:21 integrity: undefined
11:08:21 }
11:08:21 ],
11:08:21 browserConsoleLogOptions: { level: 'debug', format: '%b %T: %m', terminal: true },
11:08:21 customContextFile: null,
11:08:21 customDebugFile: null,
11:08:21 customClientContextFile: null,
11:08:21 exclude: [],
11:08:21 logLevel: 'DEBUG',
11:08:21 colors: true,
11:08:21 autoWatch: false,
11:08:21 autoWatchBatchDelay: 250,
11:08:21 restartOnFileChange: false,
11:08:21 usePolling: true,
11:08:21 reporters: [ 'mocha' ],
11:08:21 singleRun: true,
11:08:21 browsers: [ 'FirefoxHeadless' ],
11:08:21 captureTimeout: 60000,
11:08:21 pingTimeout: 5000,
11:08:21 proxies: { '/': { target: 'http://127.0.0.1:9413/', changeOrigin: true } },
11:08:21 proxyValidateSSL: true,
11:08:21 preprocessors: [Object: null prototype] {},
11:08:21 preprocessor_priority: {},
11:08:21 urlRoot: '/',
11:08:21 upstreamProxy: undefined,
11:08:21 reportSlowerThan: 0,
11:08:21 loggers: [
11:08:21 {
11:08:21 type: 'console',
11:08:21 layout: { type: 'pattern', pattern: '%[%d{DATETIME}:%p [%c]: %]%m' }
11:08:21 }
11:08:21 ],
11:08:21 transports: [ 'polling', 'websocket' ],
11:08:21 forceJSONP: false,
11:08:21 plugins: [
11:08:21 '@wikimedia/karma-firefox-launcher',
11:08:21 'karma-*',
11:08:21 [Object: null prototype] {
11:08:21 'launcher:ChromeCustom': [ 'factory', [Function (anonymous)] ]
11:08:21 }
11:08:21 ],
11:08:21 client: {
11:08:21 args: [],
11:08:21 useIframe: true,
11:08:21 runInParent: false,
11:08:21 captureConsole: true,
11:08:21 clearContext: true,
11:08:21 allowedReturnUrlPatterns: [ '^https?://' ],
11:08:21 qunit: { autostart: false }
11:08:21 },
11:08:21 defaultClient: {
11:08:21 args: [],
11:08:21 useIframe: true,
11:08:21 runInParent: false,
11:08:21 captureConsole: true,
11:08:21 clearContext: true,
11:08:21 allowedReturnUrlPatterns: [ '^https?://' ],
11:08:21 qunit: { autostart: false }
11:08:21 },
11:08:21 browserDisconnectTimeout: 2000,
11:08:21 browserDisconnectTolerance: 0,
11:08:21 browserNoActivityTimeout: 60000,
11:08:21 processKillTimeout: 2000,
11:08:21 concurrency: Infinity,
11:08:21 failOnEmptyTestSuite: true,
11:08:21 retryLimit: 2,
11:08:21 detached: false,
11:08:21 crossOriginAttribute: false,
11:08:21 browserSocketTimeout: 20000,
11:08:21 background: false,
11:08:21 customLaunchers: {
11:08:21 ChromeCustom: {
11:08:21 base: 'ChromeHeadless',
11:08:21 flags: [
11:08:21 '--autoplay-policy=no-user-gesture-required',
11:08:21 '--disable-pushstate-throttle',
11:08:21 '--no-sandbox',
11:08:21 '--headless',
11:08:21 '--disable-gpu',
11:08:21 '--remote-debugging-port=9222'
11:08:21 ]
11:08:21 }
11:08:21 }
11:08:21}
11:08:2102 11 2024 11:08:21.784:DEBUG [plugin]: Loading plugin @wikimedia/karma-firefox-launcher.
11:08:2102 11 2024 11:08:21.788:DEBUG [plugin]: Loading karma-* from /workspace/src/node_modules
11:08:2102 11 2024 11:08:21.807:DEBUG [plugin]: Loading plugin /workspace/src/node_modules/karma-chrome-launcher.
11:08:2102 11 2024 11:08:21.813:DEBUG [plugin]: Loading plugin /workspace/src/node_modules/karma-mocha-reporter.
11:08:2102 11 2024 11:08:21.830:DEBUG [plugin]: Loading plugin /workspace/src/node_modules/karma-qunit.
11:08:2102 11 2024 11:08:21.831:DEBUG [plugin]: Loading inline plugin defining launcher:ChromeCustom.
11:08:2102 11 2024 11:08:21.837:DEBUG [web-server]: Instantiating middleware
11:08:2102 11 2024 11:08:21.837:DEBUG [reporter]: Trying to load reporter: mocha
11:08:2102 11 2024 11:08:21.839:DEBUG [reporter]: Trying to load color-version of reporter: mocha (mocha_color)
11:08:2102 11 2024 11:08:21.839:DEBUG [reporter]: Couldn't load color-version.
11:08:2111:08:21START:11:08:2102 11 2024 11:08:21.850:INFO [karma-server]: Karma v6.4.1 server started at http://localhost:9876/11:08:2102 11 2024 11:08:21.851:INFO [launcher]: Launching browsers FirefoxHeadless with concurrency unlimited
11:08:2102 11 2024 11:08:21.855:INFO [launcher]: Starting browser FirefoxHeadless
11:08:2102 11 2024 11:08:21.855:DEBUG [launcher]: null -> BEING_CAPTURED
11:08:2102 11 2024 11:08:21.856:DEBUG [temp-dir]: Creating temp dir at /tmp/karma-78950183
11:08:2102 11 2024 11:08:21.857:DEBUG [launcher]: firefox http://localhost:9876/?id=78950183 -profile /tmp/karma-78950183 -no-remote -wait-for-browser -headless --start-debugger-server 6000
11:08:2302 11 2024 11:08:23.316:DEBUG [web-server]: serving: /workspace/src/node_modules/karma/static/client.html
11:08:2302 11 2024 11:08:23.753:DEBUG [web-server]: serving: /workspace/src/node_modules/karma/static/karma.js
11:08:2302 11 2024 11:08:23.850:DEBUG [web-server]: serving: /workspace/src/node_modules/karma/static/favicon.ico
11:08:2302 11 2024 11:08:23.868:DEBUG [karma-server]: A browser has connected on socket bLaB6SfxZyj1sykNAAAB
11:08:2302 11 2024 11:08:23.871:DEBUG [web-server]: upgrade /socket.io/?EIO=4&transport=websocket&sid=f07vVtm2TgsfugY5AAAA
11:08:2302 11 2024 11:08:23.872:DEBUG [proxy]: NOT upgrading proxyWebSocketRequest /socket.io/?EIO=4&transport=websocket&sid=f07vVtm2TgsfugY5AAAA
11:08:2302 11 2024 11:08:23.934:DEBUG [Firefox 115.0 (Linux x86_64)]: undefined -> CONNECTED
11:08:2302 11 2024 11:08:23.935:INFO [Firefox 115.0 (Linux x86_64)]: Connected on socket bLaB6SfxZyj1sykNAAAB with id 78950183
11:08:2302 11 2024 11:08:23.936:DEBUG [launcher]: BEING_CAPTURED -> CAPTURED
11:08:2302 11 2024 11:08:23.936:DEBUG [launcher]: FirefoxHeadless (id 78950183) captured in 2.085 secs
11:08:2302 11 2024 11:08:23.936:DEBUG [Firefox 115.0 (Linux x86_64)]: CONNECTED -> CONFIGURING
11:08:2302 11 2024 11:08:23.989:DEBUG [middleware:karma]: custom files null null null
11:08:2302 11 2024 11:08:23.989:DEBUG [middleware:karma]: Serving static request /context.html
11:08:2302 11 2024 11:08:23.991:DEBUG [web-server]: serving: /workspace/src/node_modules/karma/static/context.html
11:08:2402 11 2024 11:08:24.071:DEBUG [middleware:source-files]: Requesting /base/node_modules/qunit/qunit/qunit.css?dbaee396ca3e6cd14067471c048590f9d650be87
11:08:2402 11 2024 11:08:24.072:DEBUG [middleware:source-files]: Fetching /workspace/src/node_modules/qunit/qunit/qunit.css
11:08:2402 11 2024 11:08:24.073:DEBUG [web-server]: serving (cached): /workspace/src/node_modules/qunit/qunit/qunit.css
11:08:2402 11 2024 11:08:24.076:DEBUG [middleware:source-files]: Requesting /base/node_modules/qunit/qunit/qunit.js?8235115d2e299369f216e0e1f7919be9faadf32d
11:08:2402 11 2024 11:08:24.077:DEBUG [middleware:source-files]: Fetching /workspace/src/node_modules/qunit/qunit/qunit.js
11:08:2402 11 2024 11:08:24.077:DEBUG [web-server]: serving (cached): /workspace/src/node_modules/qunit/qunit/qunit.js
11:08:2402 11 2024 11:08:24.083:DEBUG [middleware:source-files]: Requesting /base/node_modules/karma-qunit/lib/adapter.js?5e1aa67d9adc9aab151547c9cc815cbb9ddfb70e
11:08:2402 11 2024 11:08:24.084:DEBUG [middleware:source-files]: Fetching /workspace/src/node_modules/karma-qunit/lib/adapter.js
11:08:2402 11 2024 11:08:24.084:DEBUG [web-server]: serving (cached): /workspace/src/node_modules/karma-qunit/lib/adapter.js
11:08:2402 11 2024 11:08:24.086:DEBUG [web-server]: serving: /workspace/src/node_modules/karma/static/context.js
11:08:2502 11 2024 11:08:25.118:DEBUG [middleware:source-files]: Requesting /load.php?modules=jquery%7Cmediawiki.base&version=1pi3c
11:08:2502 11 2024 11:08:25.119:DEBUG [middleware:source-files]: Fetching /load.php
11:08:2502 11 2024 11:08:25.120:DEBUG [proxy]: proxying request - /load.php?modules=jquery%7Cmediawiki.base&version=1pi3c to 127.0.0.1:9413
11:08:2502 11 2024 11:08:25.140:DEBUG [middleware:source-files]: Requesting /load.php?modules=jquery.client%2ChighlightText%2ClengthLimit%2CmakeCollapsible%2Ctablesorter%2CtextSelection%7Cjquery.makeCollapsible.styles%7Cjquery.tablesorter.styles%7Cmediawiki.ForeignApi%2CString%2CTitle%2CUri%2Capi%2Ccldr%2Ccookie%2Cdeflate%2Cexperiments%2Cinspect%2CjqueryMsg%2Clanguage%2CmessagePoster%2Cqunit-testrunner%2Crouter%2Cstorage%2Ctemplate%2Ctoc%2Cuser%2Cutil%2CvisibleTimeout%2Cwidgets%7Cmediawiki.ForeignApi.core%7Cmediawiki.language.months%2Ctestdata%7Cmediawiki.libs.pluralruleparser%7Cmediawiki.page.ready%7Cmediawiki.rcfilters.filters.ui%7Cmediawiki.template.mustache%7Cmediawiki.widgets.MediaSearch%2CTable%2Cstyles%7Coojs%2Coojs-ui-core%2Coojs-ui-widgets%2Csinonjs%7Coojs-ui-core.icons%2Cstyles%7Coojs-ui-widgets.icons%7Coojs-ui-windows.icons%7Coojs-ui.styles.icons-content%2Cicons-editing-advanced%2Cicons-editing-core%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-media%2Cicons-moderation%2Cindicators%7Cskins.vector.clientPreferences%7Ctest.MediaWiki%2CVector&version=1gqmb
11:08:2502 11 2024 11:08:25.140:DEBUG [middleware:source-files]: Fetching /load.php
11:08:2502 11 2024 11:08:25.140:DEBUG [proxy]: proxying request - /load.php?modules=jquery.client%2ChighlightText%2ClengthLimit%2CmakeCollapsible%2Ctablesorter%2CtextSelection%7Cjquery.makeCollapsible.styles%7Cjquery.tablesorter.styles%7Cmediawiki.ForeignApi%2CString%2CTitle%2CUri%2Capi%2Ccldr%2Ccookie%2Cdeflate%2Cexperiments%2Cinspect%2CjqueryMsg%2Clanguage%2CmessagePoster%2Cqunit-testrunner%2Crouter%2Cstorage%2Ctemplate%2Ctoc%2Cuser%2Cutil%2CvisibleTimeout%2Cwidgets%7Cmediawiki.ForeignApi.core%7Cmediawiki.language.months%2Ctestdata%7Cmediawiki.libs.pluralruleparser%7Cmediawiki.page.ready%7Cmediawiki.rcfilters.filters.ui%7Cmediawiki.template.mustache%7Cmediawiki.widgets.MediaSearch%2CTable%2Cstyles%7Coojs%2Coojs-ui-core%2Coojs-ui-widgets%2Csinonjs%7Coojs-ui-core.icons%2Cstyles%7Coojs-ui-widgets.icons%7Coojs-ui-windows.icons%7Coojs-ui.styles.icons-content%2Cicons-editing-advanced%2Cicons-editing-core%2Cicons-editing-styling%2Cicons-interactions%2Cicons-layout%2Cicons-media%2Cicons-moderation%2Cindicators%7Cskins.vector.clientPreferences%7Ctest.MediaWiki%2CVector&version=1gqmb to 127.0.0.1:9413
11:08:26Firefox 115.0 (Linux x86_64) WARN: 'This page is using the deprecated ResourceLoader module "mediawiki.Uri".
11:08:26[1.43] Please use browser native URL.'
11:08:2702 11 2024 11:08:27.399:DEBUG [Firefox 115.0 (Linux x86_64)]: CONFIGURING -> EXECUTING
11:08:27 testrunner11:08:27✔ assert.htmlEqual11:08:27 Vector (integration)11:08:27✔ Client preferences: Behaves same for all users11:08:27 mediawiki11:08:27✔ Initial check11:08:27✔ mw.format11:08:27✔ mw.now11:08:27 mw.Message11:08:27✔ Construct11:08:27✔ plain()11:08:27✔ escaped()11:08:27✔ parse()11:08:27✔ exists()11:08:27✔ toString() non-existing11:08:27✔ jqueryMsg / Magic words11:08:27✔ mw.msg()11:08:27 mw.Map11:08:27✔ Store simple string key11:08:27✔ Store number-like key11:08:27✔ get()11:08:27✔ values11:08:27✔ set()11:08:27✔ exists()11:08:27✔ Avoid prototype pollution11:08:27 mw.loader11:08:27✔ .using( .., Function callback ) Promise11:08:27✔ Prototype method as module name11:08:27✔ .using() - Error: Circular dependency [Set]11:08:27WARN: 'Skipped unavailable module test.load.circleC'
11:08:27✔ .load() - Error: Circular dependency11:08:27WARN: 'Skipped unavailable module test.load.circleDirect'
11:08:27✔ .load() - Error: Circular dependency (direct)11:08:27✔ .using() - Error: Unregistered11:08:27✔ .load() - Error: Unregistered11:08:27WARN: 'Skipped unavailable module test.load.missingdep'
11:08:27✔ .load() - Error: Missing dependency11:08:27✔ .implement( styles={ "css": [text, ..] } )11:08:2702 11 2024 11:08:27.528:DEBUG [middleware:source-files]: Requesting /api.php
11:08:2702 11 2024 11:08:27.528:DEBUG [middleware:source-files]: Fetching /api.php
11:08:2702 11 2024 11:08:27.529:DEBUG [proxy]: proxying request - /api.php to 127.0.0.1:9413
11:08:27✔ .implement( styles={ "url": { <media>: [url, ..] } } )11:08:27✔ .implement( messages before script )11:08:27✔ .implement( styles with @import )11:08:27✔ .implement( dependency with styles )11:08:27✔ .implement( only scripts )11:08:27✔ .implement( only messages )11:08:27✔ .implement( empty )11:08:27✔ .implement() [packageFiles long paths]11:08:27✔ .implement() [packageFiles with parent files]11:08:27✔ .implement( name with @ )11:08:27✔ .addSource()11:08:27✔ .register() - ES6 support always true11:08:27✔ .batchRequest() - Module version combines for given batch11:08:27✔ .batchRequest() - Module version combined based on sorted order11:08:27✔ Broken indirect dependency11:08:27✔ Out-of-order implementation11:08:27✔ Missing dependency11:08:27✔ Dependency handling11:08:27✔ Network failure11:08:27✔ Skip-function handling11:08:27✔ .load() [protocol-relative URL T32825]11:08:27✔ .load() [absolute URL]11:08:27✔ importScript()11:08:27✔ importStylesheet()11:08:27✔ Empty string module name - T2880411:08:28✔ Executing race - T11223211:08:28✔ Stale response caching - T11758711:08:28✔ No storing of group=private responses11:08:28✔ No storing of group=user responses11:08:28✔ mw.loader.store.load - Disallowed localStorage11:08:28✔ mw.loader.store.load - Invalid JSON11:08:28✔ mw.loader.store.load - Unusable JSON11:08:28✔ mw.loader.store.load - Expired JSON11:08:28✔ mw.loader.store.load - Good JSON11:08:28✔ require()11:08:28✔ require() in debug mode11:08:2802 11 2024 11:08:28.075:DEBUG [middleware:source-files]: Requesting /load.php?modules=site.styles&version=131ff
11:08:2802 11 2024 11:08:28.075:DEBUG [middleware:source-files]: Fetching /load.php
11:08:2802 11 2024 11:08:28.075:DEBUG [proxy]: proxying request - /load.php?modules=site.styles&version=131ff to 127.0.0.1:9413
11:08:28✔ Implicit dependencies11:08:28✔ .getScript() - success11:08:2802 11 2024 11:08:28.124:DEBUG [middleware:source-files]: Requesting /this-is-not-found.txt
11:08:2802 11 2024 11:08:28.124:DEBUG [middleware:source-files]: Fetching /this-is-not-found.txt
11:08:2802 11 2024 11:08:28.125:DEBUG [proxy]: proxying request - /this-is-not-found.txt to 127.0.0.1:9413
11:08:28✔ .getScript() - failure11:08:28 mw.requestIdleCallback11:08:28✔ callback11:08:28✔ nested11:08:28✔ timeRemaining11:08:28✔ native11:08:28 startup/jscompat11:08:28✔ Unicode variable name11:08:28✔ textarea strips newline (T14130) [0]11:08:28✔ textarea strips newline (T14130) [1]11:08:28✔ textarea strips newline (T14130) [2]11:08:28✔ textarea strips newline (T14130) [3]11:08:28 startup/clientprefs11:08:28✔ clientprefs() [default behaviour]11:08:28✔ clientprefs() [default behaviour on skin with clientprefs]11:08:28✔ clientprefs() [toggle feature with boolean suffix]11:08:28✔ clientprefs() [toggle feature with number suffix]11:08:28✔ clientprefs() [toggle feature with word suffix]11:08:28✔ clientprefs() [ignore key without clientpref suffix]11:08:28✔ clientprefs() [ignore value with dashes]11:08:28✔ clientprefs() [toggle multiple features]11:08:28 jquery.highlightText11:08:28✔ highlightText() [0]11:08:28✔ highlightText() [1]11:08:28✔ highlightText() [2]11:08:28✔ highlightText() [3]11:08:28✔ highlightText() [4]11:08:28✔ highlightText() [5]11:08:28✔ highlightText() [6]11:08:28✔ highlightText() [7]11:08:28✔ highlightText() [8]11:08:28✔ highlightText() [9]11:08:28✔ highlightText() [10]11:08:28✔ highlightText() [11]11:08:28✔ highlightText() [12]11:08:28✔ highlightText() [13]11:08:28✔ highlightText() [14]11:08:28✔ highlightText() [15]11:08:28✔ highlightText() [16]11:08:28✔ highlightText() [17]11:08:28✔ highlightText() [18]11:08:28✔ highlightText() [19]11:08:28✔ highlightText() [20]11:08:28✔ highlightText() [21]11:08:28✔ highlightText() [22]11:08:28✔ highlightText() [23]11:08:28✔ highlightText() [24]11:08:28✔ highlightText() [25]11:08:28✔ highlightText() [26]11:08:28✔ highlightText() [27]11:08:28✔ highlightText() [28]11:08:28✔ highlightText() [29]11:08:28✔ highlightText() [30]11:08:28✔ highlightText() [31]11:08:28✔ highlightText() [32]11:08:28✔ highlightText() [33]11:08:28✔ highlightText() [34]11:08:28✔ highlightText() [35]11:08:28 jquery.lengthLimit11:08:28✔ byteLimit() [Plain text input]11:08:28✔ byteLimit() [Plain text input. Calling byteLimit with no parameters and no maxlength attribute (T38310)]11:08:28✔ byteLimit() [Limit using the maxlength attribute]11:08:28✔ byteLimit() [Limit using a custom value]11:08:28✔ byteLimit() [Limit using a custom value, overriding maxlength attribute]11:08:28✔ byteLimit() [Limit using a custom value (multibyte)]11:08:28✔ byteLimit() [Limit using a custom value (multibyte, outside BMP)]11:08:28✔ byteLimit() [Limit using a custom value (multibyte) overlapping a byte]11:08:28✔ byteLimit() [Pass the limit and a callback as input filter]11:08:28✔ byteLimit() [Limit using the maxlength attribute and pass a callback as input filter]11:08:28✔ byteLimit() [Truncate with exceeded limit and filter callback]11:08:28✔ byteLimit() [Input filter that increases the length]11:08:28✔ byteLimit() [Input filter of which the base exceeds the limit]11:08:28✔ byteLimit() [Unpaired surrogates do not crash]11:08:28✔ Confirm properties and attributes set11:08:28✔ Trim from insertion when limit exceeded11:08:28✔ Do not cut up false matching substrings in emoji insertions11:08:28 jquery.makeCollapsible11:08:28✔ testing hooks/triggers11:08:28✔ basic div operation11:08:28✔ basic table operation11:08:28✔ table support [table with caption]11:08:28✔ table support [table with caption and thead]11:08:28✔ basic list operation [ul]11:08:28✔ basic list operation [ol]11:08:28✔ basic operation when synchronous (options.instantHide)11:08:28✔ mw-made-collapsible data added11:08:28✔ mw-collapsible added when missing11:08:28✔ mw-collapsed added when missing11:08:28✔ initial collapse (mw-collapsed class)11:08:28✔ initial collapse (options.collapsed)11:08:28✔ clicks on links inside toggler pass through11:08:28✔ click on non-link inside toggler counts as trigger11:08:28✔ collapse/expand text (data-collapsetext, data-expandtext)11:08:28✔ collapse/expand text (options.collapseText, options.expandText)11:08:28✔ predefined toggle button and text (.mw-collapsible-toggle/.mw-collapsible-text)11:08:28✔ cloned collapsibles can be made collapsible again11:08:28✔ collapsibles in cloned elements are controlled by toggle clones11:08:28✔ reveal hash fragment11:08:28✔ T168689 - nested collapsible divs should keep independent state11:08:28✔ placeholder element for toggle11:08:28✔ T364712 - toggle moved outside of collapsible should still work11:08:28 jquery.tablesorter11:08:28✔ Planets: initial sort ascending by name11:08:28✔ Planets: initial sort descending by radius11:08:28✔ Planets: ascending by name11:08:28✔ Planets: ascending by name (again)11:08:28✔ Planets: ascending by name (multiple clicks)11:08:28✔ Planets: descending by name11:08:28✔ Planets: return to initial sort11:08:28✔ Planets: ascending radius11:08:28✔ Planets: descending radius11:08:28✔ Sorting multiple columns by passing sort list11:08:28✔ Sorting multiple columns by programmatically triggering sort()11:08:28✔ Reset to initial sorting by triggering sort() without any parameters11:08:28✔ Sort via click event after having initialized the tablesorter with initial sorting11:08:28✔ Multi-sort via click event after having initialized the tablesorter with initial sorting11:08:28✔ Reset sorting making table appear unsorted11:08:28✔ Sorting with colspanned headers: spanned column11:08:28✔ Sorting with colspanned headers: sort spanned column twice11:08:28✔ Sorting with colspanned headers: subsequent column11:08:28✔ Sorting with colspanned headers: sort subsequent column twice11:08:28✔ Basic planet table: one unsortable column11:08:28✔ T30775: German-style (dmy) short numeric dates11:08:28✔ T30775: American-style (mdy) short numeric dates11:08:28✔ IPv4 address sorting (T19141)11:08:28✔ IPv4 address reverse sorting (T19141)11:08:28✔ Accented Characters with custom collation11:08:28✔ Accented Characters Swedish locale11:08:28✔ Digraphs with custom collation11:08:28✔ Rowspan not exploded on init11:08:28✔ Basic planet table: same value for multiple rows via rowspan11:08:28✔ Basic planet table: same value for multiple rows via rowspan (sorting initially)11:08:28✔ Basic planet table: Same value for multiple rows via rowspan II11:08:28✔ Complex date parsing I11:08:28✔ Currency parsing I11:08:28✔ Handling of .sortbottom11:08:28✔ Handling of .sorttop11:08:28WARN: '(sort-rowspan-error)'
11:08:28✔ Rowspan invalid value (T265503)11:08:28✔ Test sort buttons not added to .sorttop row11:08:28✔ Test detection routine11:08:28✔ T34047 - caption must be before thead11:08:28✔ data-sort-value attribute, when available, should override sorting position11:08:28✔ T10115: sort numbers with commas (ascending)11:08:28✔ T10115: sort numbers with commas (descending)11:08:28✔ T34888 - Tables inside a tableheader cell11:08:28✔ Correct date sorting I11:08:28✔ Correct date sorting II11:08:28✔ ISO date sorting11:08:28✔ Sorting images using alt text11:08:28✔ Sorting images using alt text (complex)11:08:28✔ Sorting images using alt text (with format autodetection)11:08:28✔ T40911 - The row with the largest amount of columns should receive the sort indicators11:08:28✔ rowspans in table headers should prefer the last row when rows are equal in length11:08:28✔ holes in the table headers should not throw JS errors11:08:28✔ td cells in thead should not be taken into account for longest row calculation11:08:28✔ Rowspan exploding with row headers11:08:28✔ Rowspan exploding with row headers and colspans11:08:28✔ Rowspan exploding with colspanned cells11:08:28✔ Rowspan exploding with colspanned cells (2)11:08:28✔ Rowspan exploding with rightmost rows spanning most11:08:28✔ Rowspan exploding with rightmost rows spanning most (2)11:08:28✔ Rowspan exploding with row-and-colspanned cells11:08:28✔ Rowspan exploding with uneven rowspan layout11:08:28✔ T105731 - incomplete rows in table body11:08:28✔ bug T114721 - use of expand-child class11:08:28✔ T29745 - References ignored in sortkey11:08:28✔ T311145 - style tags ignored in sortkey11:08:28 jquery.tablesorter > parsers11:08:28✔ Textual keys11:08:28✔ IPv411:08:28✔ MDY Dates using mdy content language11:08:28✔ MDY Dates using dmy content language11:08:28✔ Very old MDY dates11:08:28✔ MDY Dates11:08:28✔ DMY Dates11:08:28✔ Clobbered Dates11:08:28✔ MY Dates11:08:28✔ Y Dates11:08:28✔ Currency11:08:28✔ Currency with european separators11:08:28✔ T114604 - Breaking tfoot with rowspans11:08:28 jquery.textSelection11:08:28✔ encapsulateText [Adding sig to end of text]11:08:28✔ encapsulateText [Adding bold to empty]11:08:28✔ encapsulateText [Adding bold to existing text]11:08:28✔ encapsulateText [ownline option: adding new h2]11:08:28✔ encapsulateText [ownline option: turn a whole line into new h2]11:08:28✔ encapsulateText [ownline option: turn a partial line into new h2]11:08:28✔ encapsulateText [splitlines option: no selection, insert new list item]11:08:28✔ encapsulateText [splitlines option: single partial line selection, insert new list item]11:08:28✔ encapsulateText [splitlines option: multiple lines]11:08:28✔ getCaretPosition [initial]11:08:28✔ getCaretPosition [forced empty selection]11:08:28✔ getCaretPosition [small selection]11:08:28 mediawiki.base/errorLogger11:08:28✔ installGlobalHandler11:08:28✔ logError11:08:28 mediawiki.base11:08:28✔ mw.hook - add() and fire()11:08:28✔ mw.hook - "hasOwnProperty" as hook name11:08:28✔ mw.hook - Number of arguments11:08:28✔ mw.hook - Variadic firing data and array data type11:08:28✔ mw.hook - Chainable11:08:28✔ mw.hook - Memory from before11:08:28✔ mw.hook - functions always registered before firing11:08:28✔ mw.hook - Multiple consumers with memory between fires11:08:28✔ mw.hook - Memory is not wiped when consumed.11:08:28✔ mw.hook - Unregistering handler.11:08:28✔ mw.hook - Limit impact of consumer errors T22335211:08:28✔ mw.hook - Variadic add and remove11:08:28✔ mw.log.makeDeprecated()11:08:28✔ mw.log.deprecate()11:08:28✔ RLQ.push11:08:28 mediawiki.base/html11:08:28✔ escape11:08:28✔ element()11:08:28✔ element( tagName )11:08:28✔ element( tagName, attrs )11:08:28✔ element( tagName, attrs, content )11:08:28 mediawiki.base/track11:08:28✔ track11:08:28✔ trackSubscribe11:08:28✔ trackUnsubscribe11:08:28✔ trackError11:08:28 mediawiki.jqueryMsg11:08:28✔ Replace11:08:28✔ Plural11:08:28✔ Gender11:08:28✔ Case changing11:08:28✔ Grammar11:08:28✔ Formal11:08:28✔ Variables11:08:28✔ Bi-di11:08:28✔ Match PHP parser11:08:28✔ Links11:08:28✔ CaseSensitiveNamespaces11:08:28✔ LocalizedNamespaces11:08:28✔ Replacements in links11:08:28✔ Curly brace transformation11:08:28✔ Int11:08:28✔ Ns11:08:28✔ mw.Message.prototype.parser monkey-patch11:08:28✔ mw.Message.prototype.parser monkey-patch HTML-escape11:08:28✔ formatnum11:08:28✔ HTML11:08:28✔ Nowiki11:08:28✔ Behavior in case of invalid wikitext11:08:28✔ Non-string parameters to various functions11:08:28✔ Do not allow javascript: urls11:08:28✔ Do not allow arbitrary style11:08:28✔ Integration11:08:28✔ setParserDefaults11:08:28 mediawiki.messagePoster11:08:28✔ register11:08:28 mediawiki.String11:08:28✔ byteLength() [lowercase a-z]11:08:28✔ byteLength() [uppercase A-Z]11:08:28✔ byteLength() [numbers 0-9]11:08:28✔ byteLength() [an asterisk]11:08:28✔ byteLength() [3 spaces]11:08:28✔ byteLength() [U+0024 Dollar]11:08:28✔ byteLength() [U+00A2 Cent]11:08:28✔ byteLength() [U+20AC Euro]11:08:28✔ byteLength() [U+24B62 Han surrogate]11:08:28✔ charAt() [simple]11:08:28✔ charAt() UTF-16 text11:08:28✔ lcFirst() [empty string]11:08:28✔ lcFirst() [slash is unchanged]11:08:28✔ lcFirst() [ASCII uppercase]11:08:28✔ lcFirst() [ASCII lowercase unchanged]11:08:28✔ lcFirst() [first surrogate only]11:08:28✔ lcFirst() [first surrogate with char]11:08:28✔ lcFirst() [second surrogate only]11:08:28✔ lcFirst() [second surrogate with char]11:08:28✔ lcFirst() [from U+10C80 (Old Hungarian capital A) to U+10CC0 (Old Hungarian small A)]11:08:28✔ ucFirst() [empty string]11:08:28✔ ucFirst() [slash is unchanged]11:08:28✔ ucFirst() [ASCII uppercase unchanged]11:08:28✔ ucFirst() [ASCII lowercase]11:08:28✔ ucFirst() [first surrogate only]11:08:28✔ ucFirst() [first surrogate with char]11:08:28✔ ucFirst() [second surrogate only]11:08:28✔ ucFirst() [second surrogate with char]11:08:28✔ ucFirst() [from U+10CC0 (Old Hungarian small A) to U+10C80 (Old Hungarian capital A)]11:08:28✔ trimByteLength() [simple ASCII]11:08:28✔ trimByteLength() [multibyte input]11:08:28✔ trimByteLength() [multibyte outside BMP]11:08:28✔ trimByteLength() [multibyte overlapping a byte]11:08:28✔ trimByteLength() [at limit with shortening input filter]11:08:28✔ trimByteLength() [exceed limit with shortening input filter]11:08:28✔ trimByteLength() [below limit with expanding input filter]11:08:28✔ trimByteLength() [trim from insertion point 0]11:08:28✔ trimByteLength() [trim from insertion point 1]11:08:28✔ trimByteLength() [Do not cut up false matching substrings in emoji insertions]11:08:28✔ trimByteLength() [Unpaired surrogates do not crash]11:08:28 mediawiki.storage11:08:28✔ set/get(Object) with storage support11:08:28✔ set/get(Object) with storage methods disabled11:08:28✔ set/get(Object) with storage object disabled11:08:28✔ set/get with expiry - partial failure11:08:28 mediawiki.template11:08:28✔ add11:08:28✔ compile11:08:28✔ get11:08:28 mediawiki.template.mustache11:08:28✔ render11:08:28 mediawiki.inspect11:08:28✔ .getModuleSize() - scripts11:08:28 mediawiki.router11:08:28✔ instance11:08:28 mediawiki.Title11:08:28✔ constructor11:08:28✔ newFromText11:08:28✔ makeTitle11:08:28✔ Basic parsing11:08:28✔ Transformation11:08:28✔ Namespace detection and conversion11:08:28✔ isTalkPage/getTalkPage/getSubjectPage11:08:28✔ wantSignaturesNamespace11:08:28✔ Throw error on invalid title11:08:28✔ phpCharToUpper11:08:28✔ Case-sensivity11:08:28✔ toString / toText11:08:28✔ getExtension11:08:28✔ exists11:08:28✔ getUrl11:08:28✔ newFromImg11:08:28✔ getRelativeText11:08:28✔ normalizeExtension11:08:28✔ newFromUserInput11:08:28✔ newFromUserInput with invalid file name for upload11:08:28✔ newFromUserInput with misplaced parameter11:08:28✔ newFromUserInput with invalid file name, but not for upload11:08:28✔ newFromFileName11:08:28✔ makeTitle for non existent namespace11:08:28 mediawiki.toc11:08:28✔ Use toggle11:08:28✔ Initially hidden11:08:28 mediawiki.Uri11:08:28✔ new mw.Uri( string ) with HTTP value [strict mode]11:08:28✔ new mw.Uri( string ) with HTTP value [non-strict mode]11:08:28✔ new mw.Uri( string ) with overrideKeys [0]11:08:28✔ new mw.Uri( string ) with overrideKeys [1]11:08:28✔ new mw.Uri( string ) with non-HTTP values11:08:28✔ new mw.Uri( Object )11:08:28✔ new mw.Uri( empty )11:08:28✔ Setting properties11:08:28✔ .getQueryString()11:08:28✔ arrayParams11:08:28✔ .clone()11:08:28✔ .toString() after query manipulation11:08:28✔ Variable defaultUri11:08:28✔ Advanced URL11:08:28✔ Parse a uri with an @ symbol in the path and query11:08:28✔ Handle protocol-relative URLs11:08:28✔ T3765811:08:28 mediawiki.user11:08:28✔ options11:08:28✔ getters (anonymous)11:08:28✔ getters (logged-in)11:08:28✔ getGroups (callback)11:08:28✔ getGroups (Promise)11:08:29✔ getRights (callback)11:08:29✔ getRights (Promise)11:08:29✔ generateRandomSessionId11:08:29✔ generateRandomSessionId (fallback)11:08:29✔ getPageviewToken11:08:29✔ sessionId11:08:29 mediawiki.user > clientPrefs11:08:29✔ get() [from HTML element]11:08:29✔ get() [never read from cookie]11:08:29✔ set() [valid preferences]11:08:29✔ set() [invalid preferences]11:08:29✔ set() [invalid characters]11:08:29✔ set() [create cookie on change]11:08:29✔ set() [always store values]11:08:29✔ set() [throw if registered user]11:08:29 mediawiki.util11:08:29✔ rawurlencode11:08:29✔ escapeIdForAttribute11:08:29✔ escapeIdForLink11:08:29✔ percentDecodeFragment [0]11:08:29✔ percentDecodeFragment [1]11:08:29✔ percentDecodeFragment [2]11:08:29✔ percentDecodeFragment [3]11:08:29✔ percentDecodeFragment [4]11:08:29✔ percentDecodeFragment [5]11:08:29✔ percentDecodeFragment [6]11:08:29✔ percentDecodeFragment [7]11:08:29✔ percentDecodeFragment [8]11:08:29✔ percentDecodeFragment [9]11:08:29✔ percentDecodeFragment [10]11:08:29✔ percentDecodeFragment [11]11:08:29✔ percentDecodeFragment [12]11:08:29✔ wikiUrlencode [0]11:08:29✔ wikiUrlencode [1]11:08:29✔ wikiUrlencode [2]11:08:29✔ wikiUrlencode [3]11:08:29✔ wikiUrlencode [4]11:08:29✔ wikiUrlencode [5]11:08:29✔ wikiUrlencode [6]11:08:29✔ wikiUrlencode [7]11:08:29✔ wikiUrlencode [8]11:08:29✔ wikiUrlencode [9]11:08:29✔ wikiUrlencode [10]11:08:29✔ getUrl11:08:29✔ wikiScript11:08:29✔ addCSS11:08:29✔ getParamValue11:08:29✔ getArrayParam11:08:29✔ messageBox11:08:29✔ addPortlet does not append to DOM if no `before` is provided11:08:29✔ addPortlet returns null if bad selector given11:08:29✔ addPortlet appends to DOM if before provided11:08:29✔ addPortletLink (Vector list)11:08:29✔ addPortletLink (Minerva list)11:08:29✔ addPortletLink (nextNode option)11:08:29✔ addPortletLink (accesskey option)11:08:29✔ addPortletLink (nested list)11:08:29✔ validateEmail11:08:29✔ isIPv4Address invalid [0]11:08:29✔ isIPv4Address invalid [1]11:08:29✔ isIPv4Address invalid [2]11:08:29✔ isIPv4Address invalid [3]11:08:29✔ isIPv4Address invalid [4]11:08:29✔ isIPv4Address invalid [5]11:08:29✔ isIPv4Address invalid [6]11:08:29✔ isIPv4Address invalid [7]11:08:29✔ isIPv4Address invalid [8]11:08:29✔ isIPv4Address valid [0]11:08:29✔ isIPv4Address valid [1]11:08:29✔ isIPv6Address invalid [0]11:08:29✔ isIPv6Address invalid [1]11:08:29✔ isIPv6Address invalid [2]11:08:29✔ isIPv6Address invalid [3]11:08:29✔ isIPv6Address invalid [4]11:08:29✔ isIPv6Address invalid [5]11:08:29✔ isIPv6Address invalid [6]11:08:29✔ isIPv6Address invalid [7]11:08:29✔ isIPv6Address invalid [8]11:08:29✔ isIPv6Address invalid [9]11:08:29✔ isIPv6Address invalid [10]11:08:29✔ isIPv6Address invalid [11]11:08:29✔ isIPv6Address invalid [12]11:08:29✔ isIPv6Address invalid [13]11:08:29✔ isIPv6Address invalid [14]11:08:29✔ isIPv6Address invalid [15]11:08:29✔ isIPv6Address invalid [16]11:08:29✔ isIPv6Address valid [0]11:08:29✔ isIPv6Address valid [1]11:08:29✔ isIPv6Address valid [2]11:08:29✔ isIPv6Address valid [3]11:08:29✔ isIPv6Address valid [4]11:08:29✔ isIPv6Address valid [5]11:08:29✔ isIPv6Address valid [6]11:08:29✔ isIPv6Address valid [7]11:08:29✔ isIPv6Address valid [8]11:08:29✔ isIPv6Address valid [9]11:08:29✔ isIPv6Address valid [10]11:08:29✔ isIPv6Address valid [11]11:08:29✔ isIPv6Address valid [12]11:08:29✔ isIPv6Address valid [13]11:08:29✔ isIPv6Address valid [14]11:08:29✔ isIPv6Address valid [15]11:08:29✔ isIPv6Address valid [16]11:08:29✔ isIPv6Address valid [17]11:08:29✔ isIPv6Address valid [18]11:08:29✔ isIPv6Address valid [19]11:08:29✔ isIPv6Address valid [20]11:08:29✔ isIPv6Address valid [21]11:08:29✔ isIPv6Address valid [22]11:08:29✔ isIPv6Address valid [23]11:08:29✔ isIPv6Address valid [24]11:08:29✔ parseImageUrl [Hashed thumb with shortened path]11:08:29✔ parseImageUrl [Hashed thumb with sha1-ed path]11:08:29✔ parseImageUrl [Normal hashed directory thumbnail]11:08:29✔ parseImageUrl [Normal hashed directory thumbnail with complex thumbnail parameters]11:08:29✔ parseImageUrl [Width-like filename component]11:08:29✔ parseImageUrl [Width-like filename component in non-ASCII filename]11:08:29✔ parseImageUrl [Commons thumbnail]11:08:29✔ parseImageUrl [Full image]11:08:29✔ parseImageUrl [thumb.php-based thumbnail]11:08:29✔ parseImageUrl [thumb.php-based thumbnail with px width]11:08:29✔ parseImageUrl [thumb.php-based BC thumbnail]11:08:29✔ parseImageUrl [Commons unhashed thumbnail]11:08:29✔ parseImageUrl [Commons unhashed thumbnail with complex thumbnail parameters]11:08:29✔ parseImageUrl [Unhashed local file]11:08:29✔ parseImageUrl [Empty string]11:08:29✔ parseImageUrl [String with only alphabet characters]11:08:29✔ parseImageUrl [Not a file path]11:08:29✔ parseImageUrl [Space characters]11:08:29✔ parseImageUrl [no dynamic thumbnail generation]11:08:29✔ escapeRegExp [normal]11:08:29✔ escapeRegExp [specials] [0]11:08:29✔ escapeRegExp [specials] [1]11:08:29✔ escapeRegExp [specials] [2]11:08:29✔ escapeRegExp [specials] [3]11:08:29✔ escapeRegExp [specials] [4]11:08:29✔ escapeRegExp [specials] [5]11:08:29✔ escapeRegExp [specials] [6]11:08:29✔ escapeRegExp [specials] [7]11:08:29✔ escapeRegExp [specials] [8]11:08:29✔ escapeRegExp [specials] [9]11:08:29✔ escapeRegExp [specials] [10]11:08:29✔ escapeRegExp [specials] [11]11:08:29✔ escapeRegExp [specials] [12]11:08:29✔ escapeRegExp [specials] [13]11:08:29✔ escapeRegExp [specials] [14]11:08:29✔ debounce(Function, timeout)11:08:29✔ debounce(Function, timeout, immediate=true)11:08:29✔ debounce(timeout, Function) [old signature]11:08:29✔ init (.mw-body-primary)11:08:29✔ init (first of multiple .mw-body)11:08:29✔ init (#mw-content-text fallback)11:08:29✔ init (body fallback)11:08:29✔ sanitizeIP [IPv6 with "::" and 2 words]11:08:29✔ sanitizeIP [IPv6 with "::" and 3 words]11:08:29✔ sanitizeIP [IPv6 with "::" and 4 words]11:08:29✔ sanitizeIP [IPv6 with "::" and 5 words]11:08:29✔ sanitizeIP [IPv6 with "::" and 6 words]11:08:29✔ sanitizeIP [IPv6 with "::" and 7 words]11:08:29✔ sanitizeIP [IPv6 with "::" and 2 words (Teredo)]11:08:29✔ sanitizeIP [IPv6 with "::" and 5 words (Teredo)]11:08:29✔ sanitizeIP [IPv6 with "::" and 6 words (Teredo)]11:08:29✔ sanitizeIP [IPv6 range with "::" and 6 words (Teredo)]11:08:29✔ sanitizeIP [IPv4 no change]11:08:29✔ sanitizeIP [IPv4 strip leading 0s]11:08:29✔ sanitizeIP [IPv4 strip multiple leading 0s]11:08:29✔ sanitizeIP [IPv4 don't strip meaningful trailing 0s]11:08:29✔ sanitizeIP [IPv4 strip meaningless multiple 0s]11:08:29✔ sanitizeIP [IPv4 range strip meaningless multiple 0s]11:08:29✔ sanitizeIP [Not an IP]11:08:29✔ sanitizeIP [Empty string]11:08:29✔ sanitizeIP [IPv4 trim whitespace from start and end of the string]11:08:29✔ sanitizeIP [IPv6 starts with ::]11:08:29✔ sanitizeIP [IPv6 remove leading zeros from each block.]11:08:29✔ sanitizeIP [IPv6 :: at the end]11:08:29✔ sanitizeIP [Non-IP string]11:08:29✔ sanitizeIP [Non-string]11:08:29✔ prettifyIP [IPv6 change to lowercase]11:08:29✔ prettifyIP [IPv4 no change]11:08:29✔ prettifyIP [IPv4 range strip meaningless multiple 0s]11:08:29✔ prettifyIP [Empty string]11:08:29✔ prettifyIP [IPv6 range Replace consecutive zeros with :: ]11:08:29✔ prettifyIP [IPv6 middle only consecutive zeros with ::]11:08:29✔ prettifyIP [IPv6 first longer consecutive zeros with ::]11:08:29✔ prettifyIP [IPv6 last longer consecutive zeros with ::]11:08:29✔ prettifyIP [IPv6 first of equal length consecutive zeros with ::]11:08:29✔ isTemporaryUser [prefix mismatch]11:08:29✔ isTemporaryUser [prefix match]11:08:29✔ isTemporaryUser [suffix only match]11:08:29✔ isTemporaryUser [suffix only mismatch]11:08:29✔ isTemporaryUser [prefix and suffix match]11:08:29✔ isTemporaryUser [prefix and suffix mismatch]11:08:29✔ isTemporaryUser [prefix and suffix zero length match]11:08:29✔ isTemporaryUser [prefix and suffix overlapping]11:08:29✔ isTemporaryUser [multiple patterns prefix match]11:08:29✔ isTemporaryUser [multiple patterns prefix mismatch]11:08:29✔ isTemporaryUser [multiple patterns suffix match]11:08:29✔ isTemporaryUser [multiple patterns suffix mismatch]11:08:29✔ isTemporaryUser [multiple patterns prefix and suffix match]11:08:29✔ isTemporaryUser [Auto create temporary user disabled]11:08:29✔ isTemporaryUser [null username]11:08:29✔ isTemporaryUser matchPattern null [prefix mismatch]11:08:29✔ isTemporaryUser matchPattern null [prefix match]11:08:29✔ isInfinity11:08:29 mediawiki.util: jquery.accessKeyLabel11:08:29✔ getAccessKeyPrefix11:08:29✔ updateTooltipAccessKeys - current browser11:08:29✔ updateTooltipAccessKeys - no access key11:08:29✔ updateTooltipAccessKeys - with access key11:08:29✔ updateTooltipAccessKeys with label element11:08:29✔ updateTooltipAccessKeys with label element as parent11:08:29 mediawiki.api11:08:29✔ get()11:08:29✔ post()11:08:29✔ API error errorformat=bc11:08:29✔ API error errorformat!=bc11:08:29✔ FormData support11:08:29✔ Converting arrays to pipe-separated (string)11:08:29✔ Converting arrays to pipe-separated (mw.Title)11:08:29✔ Converting arrays to pipe-separated (misc primitives)11:08:29✔ Omitting false booleans11:08:29✔ getToken() - cached11:08:29✔ getToken() - uncached11:08:29✔ getToken() - error11:08:29✔ getToken() - no query11:08:29WARN: 'Use of the "email" token is deprecated. Use "csrf" instead.'
11:08:29✔ getToken() - deprecated11:08:29✔ badToken()11:08:29WARN: 'Use of the "options" token is deprecated. Use "csrf" instead.'
11:08:29WARN: 'Use of the "options" token is deprecated. Use "csrf" instead.'
11:08:29WARN: 'Use of the "options" token is deprecated. Use "csrf" instead.'
11:08:29✔ badToken( legacy )11:08:29✔ postWithToken( tokenType, params )11:08:29✔ postWithToken( tokenType, params with assert )11:08:29✔ postWithToken( tokenType, params, ajaxOptions )11:08:29✔ postWithToken() - badtoken11:08:29✔ postWithToken() - badtoken-cached11:08:29✔ #abort11:08:29 mediawiki.api.category11:08:29✔ .getCategoriesByPrefix()11:08:29✔ .isCategory("")11:08:29✔ .isCategory("#")11:08:29✔ .isCategory("mw:")11:08:29✔ .isCategory("|")11:08:29✔ .getCategories("")11:08:29✔ .getCategories("#")11:08:29✔ .getCategories("mw:")11:08:29✔ .getCategories("|")11:08:30 mediawiki.api.edit11:08:30✔ edit( title, transform String )11:08:30✔ edit( mw.Title, transform String )11:08:30✔ edit( title, transform Promise )11:08:30✔ edit( title, transform Object )11:08:30✔ edit( invalid-title, transform String )11:08:30✔ create( title, content )11:08:30 mediawiki.api.messages11:08:30✔ .getMessages()11:08:30✔ .getMessages() with a long string11:08:30 mediawiki.api.options11:08:30✔ saveOption11:08:30✔ saveOptions without Unit Separator11:08:30✔ saveOptions with Unit Separator11:08:30✔ saveOptions (anonymous)11:08:30✔ .parse( string )11:08:30✔ .parse( Object.toString )11:08:30✔ .parse( mw.Title )11:08:30 mediawiki.api.upload11:08:30✔ Basic functionality11:08:30 mediawiki.api.watch11:08:30✔ .watch( string )11:08:30✔ .watch( Array ) - single11:08:30✔ .watch( Array ) - multi11:08:30 mediawiki.rest11:08:30✔ get()11:08:30✔ get() respects ajaxOptions url11:08:30✔ post()11:08:30✔ put()11:08:30✔ delete()11:08:30✔ http error11:08:30✔ #abort11:08:30 mediawiki.ForeignApi11:08:30✔ origin is included in GET requests11:08:30✔ origin is included in POST requests11:08:30✔ origin is not included in same-origin GET requests11:08:31✔ origin is not included in same-origin POST requests11:08:31 mediawiki.ForeignRest11:08:31✔ get()11:08:31✔ post()11:08:31✔ http error11:08:31 mediawiki.rcfilters - FiltersViewModel11:08:31✔ Setting up filters11:08:31✔ Default filters11:08:31✔ Parameter minimal state11:08:31✔ Parameter states11:08:31✔ Cleaning up parameter states11:08:31✔ Finding matching filters11:08:31✔ getParametersFromFilters11:08:31✔ getParametersFromFilters (custom object)11:08:31✔ getFiltersFromParameters11:08:31✔ sanitizeStringOptionGroup11:08:31✔ Filter interaction: subsets11:08:31✔ Filter interaction: full coverage11:08:31✔ Filter interaction: conflicts11:08:31✔ Filter highlights11:08:31✔ emptyAllFilters11:08:31✔ areVisibleFiltersEmpty11:08:31 mediawiki.rcfilters - FilterItem11:08:31✔ Initializing filter item11:08:31✔ Emitting events11:08:31✔ get/set boolean value11:08:31✔ get/set any value11:08:31 mediawiki.rcfilters - SavedQueryItemModel11:08:31✔ Initializing and getters11:08:31✔ Default11:08:31 mediawiki.rcfilters - SavedQueriesModel11:08:31✔ Initializing queries11:08:31✔ Adding new queries11:08:31✔ Manipulating queries11:08:31✔ Testing invert property11:08:31 mediawiki.rcfilters - UriProcessor11:08:31✔ getVersion11:08:31✔ getUpdatedUri11:08:31✔ updateModelBasedOnQuery11:08:31✔ isNewState11:08:31✔ _getNormalizedQueryParams11:08:31✔ _normalizeTargetInUri11:08:31 mediawiki.widgets.APIResultsQueue11:08:31✔ Query providers11:08:31✔ Abort providers11:08:31 mediawiki.widgets.NamespaceInputWidget11:08:31✔ NamespaceInputWidget initialization11:08:31✔ NamespaceInputWidget 'include' config parameter11:08:31 mediawiki.widgets.TableWidget11:08:31✔ TableWidgetModel initialization11:08:31✔ TableWidgetModel#getRowProperties11:08:31✔ TableWidget#setValue11:08:31 ✔ TableWidget#insertColumn/insertRow (skipped)11:08:31 ✔ TableWidget#removeColumn (skipped)11:08:31 ✔ TableWidget#removeRow by index (skipped)11:08:31 ✔ TableWidget#removeRow by key (skipped)11:08:31✔ TableWidget populate text inputs11:08:31 mediawiki.language11:08:31✔ mw.language getData and setData11:08:31✔ mw.language.convertNumber11:08:31✔ mw.language.convertNumber - digitTransformTable11:08:31✔ List to text test11:08:31✔ mw.language.bcp4711:08:31 mediawiki.cookie11:08:31✔ set( key, value )11:08:31✔ set( key, value, expires )11:08:31✔ set( key, value, options )11:08:31✔ get( key ) - no values11:08:31✔ get( key ) - with value11:08:31✔ get( key, prefix )11:08:31 mediawiki.deflate11:08:31✔ deflate [foobar]11:08:31✔ deflate [Unicode]11:08:31✔ deflate [Non BMP unicode]11:08:32✔ deflate [5MB data]11:08:32 mediawiki.experiments11:08:32✔ getBucket( experiment, token )11:08:32 mediawiki.visibleTimeout11:08:32✔ visibleTimeoutId is always a positive integer11:08:32✔ basic usage when visible11:08:32✔ basic usage - fallback assumes visible11:08:32✔ can cancel timeout11:08:32✔ start hidden and become visible11:08:32✔ timeout is cumulative11:08:3202 11 2024 11:08:32.445:DEBUG [Firefox 115.0 (Linux x86_64)]: EXECUTING -> CONNECTED
11:08:3202 11 2024 11:08:32.448:DEBUG [launcher]: CAPTURED -> BEING_KILLED
11:08:3202 11 2024 11:08:32.449:DEBUG [launcher]: BEING_KILLED -> BEING_FORCE_KILLED
11:08:3202 11 2024 11:08:32.449:DEBUG [Firefox 115.0 (Linux x86_64)]: CONNECTED -> DISCONNECTED
11:08:3211:08:32Finished in 5.047 secs / 4.724 secs @ 11:08:32 GMT+0000 (Coordinated Universal Time)11:08:3211:08:32SUMMARY:11:08:32✔ 738 tests completed11:08:32ℹ 4 tests skipped11:08:3202 11 2024 11:08:32.452:DEBUG [karma-server]: Run complete, exiting.
11:08:3202 11 2024 11:08:32.453:DEBUG [launcher]: Disconnecting all browsers
11:08:3202 11 2024 11:08:32.454:DEBUG [launcher]: BEING_FORCE_KILLED -> BEING_FORCE_KILLED
11:08:3202 11 2024 11:08:32.454:DEBUG [proxy]: Destroying proxy agents
11:08:3202 11 2024 11:08:32.495:DEBUG [launcher]: Process FirefoxHeadless exited with code null and signal SIGTERM
11:08:3202 11 2024 11:08:32.496:DEBUG [temp-dir]: Cleaning temp dir /tmp/karma-78950183
11:08:3202 11 2024 11:08:32.517:DEBUG [launcher]: Finished all browsers
11:08:3202 11 2024 11:08:32.517:DEBUG [launcher]: BEING_FORCE_KILLED -> FINISHED
11:08:3202 11 2024 11:08:32.517:DEBUG [launcher]: FINISHED -> FINISHED
11:08:3211:08:32Done.
11:08:32INFO:quibble.commands:<<< Finish: Run Qunit tests, in 11.293 s
PHPUnit extensions suite (with database) parallel run (Composer)
11:08:32INFO:quibble.commands:>>> Start: PHPUnit extensions suite (with database) parallel run (Composer)
11:08:33> MediaWiki\Composer\ComposerLaunchParallel::launchTestsDatabase
11:08:33Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_6' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_6_database.result.cache'' ...
11:08:33Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_1' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_1_database.result.cache'' ...
11:08:33Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_0' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_0_database.result.cache'' ...
11:08:33Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_2' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_2_database.result.cache'' ...
11:08:33Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_3' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_3_database.result.cache'' ...
11:08:33Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_5' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_5_database.result.cache'' ...
11:08:33Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_4' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_4_database.result.cache'' ...
11:08:33Running command ''composer' 'run' '--timeout=0' 'phpunit:entrypoint' '--' '--testsuite' 'split_group_7' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_7_database.result.cache'' ...
11:08:34> phpunit '--testsuite' 'split_group_1' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_1_database.result.cache'
11:08:34Using PHP 7.4.33
11:08:34Running with MediaWiki settings because there might be integration tests
11:08:34PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:3411:08:34No tests executed!
11:08:34Worker exited with status 0
11:08:34> phpunit '--testsuite' 'split_group_6' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_6_database.result.cache'
11:08:34Using PHP 7.4.33
11:08:34Running with MediaWiki settings because there might be integration tests
11:08:34PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:3411:08:34No tests executed!
11:08:34Worker exited with status 0
11:08:34> phpunit '--testsuite' 'split_group_7' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_7_database.result.cache'
11:08:34Using PHP 7.4.33
11:08:34Running with MediaWiki settings because there might be integration tests
11:08:34PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:3411:08:34No tests executed!
11:08:34Worker exited with status 0
11:08:35> phpunit '--testsuite' 'split_group_2' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_2_database.result.cache'
11:08:35Using PHP 7.4.33
11:08:35Running with MediaWiki settings because there might be integration tests
11:08:35PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:3511:08:35No tests executed!
11:08:35Worker exited with status 0
11:08:37> phpunit '--testsuite' 'split_group_0' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_0_database.result.cache'
11:08:37Using PHP 7.4.33
11:08:37Running with MediaWiki settings because there might be integration tests
11:08:37PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:3711:08:37............................................................... 63 / 145 ( 43%)
11:08:37............................................................... 126 / 145 ( 86%)
11:08:37................... 145 / 145 (100%)
11:08:3711:08:37Time: 00:02.627, Memory: 77.50 MB
11:08:3711:08:37OK (145 tests, 145 assertions)
11:08:3711:08:3711:08:37You should really speed up these slow tests (>100ms)...
11:08:37 1. 238ms to run SpecialPageFatalTest::testSpecialPageDoesNotFatal with data set "Version"
11:08:37 2. 192ms to run SpecialPageFatalTest::testSpecialPageDoesNotFatal with data set "BrokenRedirects"
11:08:37 3. 179ms to run SpecialPageFatalTest::testSpecialPageDoesNotFatal with data set "Preferences"
11:08:37 4. 158ms to run SpecialPageFatalTest::testSpecialPageDoesNotFatal with data set "Tags"
11:08:37 5. 106ms to run SpecialPageFatalTest::testSpecialPageDoesNotFatal with data set "PasswordPolicies"
11:08:37Worker exited with status 0
11:08:37> phpunit '--testsuite' 'split_group_5' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_5_database.result.cache'
11:08:37Using PHP 7.4.33
11:08:37Running with MediaWiki settings because there might be integration tests
11:08:37PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:3711:08:37............................................................... 63 / 537 ( 11%)
11:08:37............................................................... 126 / 537 ( 23%)
11:08:37............................................................... 189 / 537 ( 35%)
11:08:37............................................................... 252 / 537 ( 46%)
11:08:37............................................................... 315 / 537 ( 58%)
11:08:37............................................................... 378 / 537 ( 70%)
11:08:37............................................................... 441 / 537 ( 82%)
11:08:37............................................................... 504 / 537 ( 93%)
11:08:37................................. 537 / 537 (100%)
11:08:3711:08:37Time: 00:02.090, Memory: 70.50 MB
11:08:3711:08:37OK (537 tests, 9018 assertions)
11:08:3711:08:3711:08:37You should really speed up these slow tests (>100ms)...
11:08:37 1. 236ms to run DatabaseIntegrationTest::testAutomaticSqlGeneration with data set #1
11:08:37 2. 217ms to run DatabaseIntegrationTest::testAutomaticSqlGeneration with data set #0
11:08:37 3. 196ms to run DatabaseIntegrationTest::testAutomaticSqlGeneration with data set #2
11:08:37 4. 151ms to run ApiStructureTest::testDocumentationExists with data set "Module main with MiserMode=false"
11:08:37Worker exited with status 0
11:08:37> phpunit '--testsuite' 'split_group_4' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_4_database.result.cache'
11:08:37Using PHP 7.4.33
11:08:37Running with MediaWiki settings because there might be integration tests
11:08:37PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:08:3711:08:37............................................................... 63 / 160 ( 39%)
11:08:37............................................................... 126 / 160 ( 78%)
11:08:37.................................. 160 / 160 (100%)
11:08:3711:08:37Time: 00:02.453, Memory: 70.50 MB
11:08:3711:08:37OK (160 tests, 1442 assertions)
11:08:3711:08:3711:08:37You should really speed up these slow tests (>100ms)...
11:08:37 1. 650ms to run ContentHandlerFunctionalTest::testPreloadTransform
11:08:37 2. 601ms to run ContentHandlerFunctionalTest::testGetParserOutput
11:08:37 3. 451ms to run ContentHandlerFunctionalTest::testPreSaveTransform
11:08:37 4. 284ms to run ContentHandlerFunctionalTest::testMakeEmptyContent
11:08:37Worker exited with status 0
11:09:12> phpunit '--testsuite' 'split_group_3' '--exclude-group' 'Broken,ParserFuzz,Stub,Standalone' '--group' 'Database' '--cache-result-file=.phpunit_group_3_database.result.cache'
11:09:12Using PHP 7.4.33
11:09:12Running with MediaWiki settings because there might be integration tests
11:09:12PHPUnit 9.6.19 by Sebastian Bergmann and contributors.
11:09:1211:09:12............................................................. 61 / 1509 ( 4%)
11:09:12............................................................. 122 / 1509 ( 8%)
11:09:12............................................................. 183 / 1509 ( 12%)
11:09:12............................................................. 244 / 1509 ( 16%)
11:09:12............................................................. 305 / 1509 ( 20%)
11:09:12............................................................. 366 / 1509 ( 24%)
11:09:12............................................................. 427 / 1509 ( 28%)
11:09:12............................................................. 488 / 1509 ( 32%)
11:09:12............................................................. 549 / 1509 ( 36%)
11:09:12............................................................. 610 / 1509 ( 40%)
11:09:12............................................................. 671 / 1509 ( 44%)
11:09:12............................................................. 732 / 1509 ( 48%)
11:09:12............................................................. 793 / 1509 ( 52%)
11:09:12............................................................. 854 / 1509 ( 56%)
11:09:12............................................................. 915 / 1509 ( 60%)
11:09:12............................................................. 976 / 1509 ( 64%)
11:09:12............................................................. 1037 / 1509 ( 68%)
11:09:12............................................................. 1098 / 1509 ( 72%)
11:09:12............................................................. 1159 / 1509 ( 76%)
11:09:12............................................................. 1220 / 1509 ( 80%)
11:09:12............................................................. 1281 / 1509 ( 84%)
11:09:12............................................................. 1342 / 1509 ( 88%)
11:09:12............................................................. 1403 / 1509 ( 92%)
11:09:12............................................................. 1464 / 1509 ( 97%)
11:09:12............................................. 1509 / 1509 (100%)
11:09:1211:09:12Time: 00:37.322, Memory: 157.00 MB
11:09:1211:09:12OK (1509 tests, 3626 assertions)
11:09:1211:09:1211:09:12You should really speed up these slow tests (>100ms)...
11:09:12 1. 3137ms to run ResourcesTest::testResourceFiles
11:09:12 2. 998ms to run ResourcesTest::testRespond with data set #368
11:09:12 3. 994ms to run ResourcesTest::testRespond with data set #118
11:09:12 4. 725ms to run ResourcesTest::testRespond with data set #873
11:09:12 5. 678ms to run ResourcesTest::testRespond with data set #1373
11:09:12 6. 665ms to run ResourcesTest::testRespond with data set #623
11:09:12 7. 663ms to run ResourcesTest::testRespond with data set #1123
11:09:12 8. 640ms to run ResourcesTest::testRespond with data set #373
11:09:12 9. 637ms to run ResourcesTest::testRespond with data set #123
11:09:12 10. 623ms to run ResourcesTest::testRespond with data set #230
11:09:12...and there are 56 more above your threshold hidden from view
11:09:12Worker exited with status 0
11:09:12INFO:quibble.commands:<<< Finish: PHPUnit extensions suite (with database) parallel run (Composer), in 39.705 s
PHPUnit Parallel Notice
11:09:12INFO:quibble.commands:>>> Start: PHPUnit Parallel Notice
11:09:12INFO:quibble.commands:NOTICE: These tests have been executed with PHPUnit Parallel enabled.
11:09:12INFO:quibble.commands:If you encounter unexpected test failures or notice incomplete execution of test suites, please let us know!
11:09:12INFO:quibble.commands:For more information, and to report parallel-testing-related failures, please visit https://phabricator.wikimedia.org/T36119011:09:12INFO:quibble.commands:<<< Finish: PHPUnit Parallel Notice, in 0.000 s