Motivation
MW_ENTRY_POINT is defined in many places.
Running integration tests cause the conflict in defining MW_ENTRY_POINT between Setup.php (which loaded directly using require) and Maintenance.php which is lazily loaded by class loader later than Setup.php.
Maintenance.php:
define( 'MW_ENTRY_POINT', 'cli' );
Setup.php:
// Define MW_ENTRY_POINT if it's not already, so that config code can check the // value without using defined() if ( !defined( 'MW_ENTRY_POINT' ) ) { /** * The entry point, which may be either the script filename without the * file extension, or "cli" for maintenance scripts, or "unknown" for any * entry point that does not set the constant. */ define( 'MW_ENTRY_POINT', 'unknown' ); }
All above make the very first test marked as 'risky' and might lead to undefined/unexpected behaviour.
FAILURES! Tests: 42, Assertions: 407, Failures: 1, Risky: 1. Script phpunit --colors=always --testsuite=core:integration,extensions:integration,skins:integration handling the phpunit:integration event returned with error code 1
Expected result:
Conflict should be avoided and tests shouldn't be marked as risky.
Two options are possible:
- Explicitly define the order of loading.
- Get rid off the MW_ENTRY_POINT constant.
Note
MW_ENTRY_POINT isn't used anywhere except edwardspec / mediawiki-moderation
https://codesearch.wmflabs.org/search/?q=MW_ENTRY_POINT&i=nope&files=&repos=
Additional info
1) DatabaseSqliteTest::testAddQuotes with data set #0 ('', '''') This test printed output: Notice: Constant MW_ENTRY_POINT already defined in /Users/peter/work/Wiki/gerrit/mediawiki/maintenance/Maintenance.php on line 26 Call Stack: 0.0169 401160 1. {main}() /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/phpunit:0 0.0288 2044280 2. PHPUnit\TextUI\Command::main(???) /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/phpunit:61 0.0288 2044392 3. PHPUnit\TextUI\Command->run(???, ???) /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/src/TextUI/Command.php:159 0.0940 6323680 4. PHPUnit\TextUI\TestRunner->doRun(???, ???, ???) /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/src/TextUI/Command.php:200 0.1936 9490312 5. PHPUnit\Framework\TestSuite->run(???) /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:621 0.1985 9490840 6. PHPUnit\Framework\TestSuite->run(???) /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/src/Framework/TestSuite.php:597 0.2002 9491368 7. PHPUnit\Framework\TestSuite->run(???) /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/src/Framework/TestSuite.php:597 0.2812 15764680 8. PHPUnit\Framework\DataProviderTestSuite->run(???) /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/src/Framework/TestSuite.php:597 0.2816 15765208 9. DatabaseSqliteTest->run(???) /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/src/Framework/TestSuite.php:597 1.0107 32098896 10. DatabaseSqliteTest->run(???) /Users/peter/work/Wiki/gerrit/mediawiki/tests/phpunit/MediaWikiIntegrationTestCase.php:417 1.0108 32098896 11. PHPUnit\Framework\TestResult->run(???) /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/src/Framework/TestCase.php:756 1.0112 32110288 12. DatabaseSqliteTest->runBare() /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/src/Framework/TestResult.php:691 1.0120 32129064 13. DatabaseSqliteTest->mediaWikiSetUp() /Users/peter/work/Wiki/gerrit/mediawiki/vendor/phpunit/phpunit/src/Framework/TestCase.php:1024 1.0162 32120416 14. spl_autoload_call(???) /Users/peter/work/Wiki/gerrit/mediawiki/tests/phpunit/MediaWikiIntegrationTestCase.php:547 1.0162 32120456 15. AutoLoader::autoload(???) /Users/peter/work/Wiki/gerrit/mediawiki/tests/phpunit/MediaWikiIntegrationTestCase.php:547 1.0178 32322936 16. require('/Users/peter/work/Wiki/gerrit/mediawiki/maintenance/Maintenance.php') /Users/peter/work/Wiki/gerrit/mediawiki/includes/AutoLoader.php:109 1.0178 32322936 17. define(???, ???) /Users/peter/work/Wiki/gerrit/mediawiki/maintenance/Maintenance.php:26