wiki.techinc.nl/tests/phpunit/bootstrap.common.php
Daimona Eaytoy 7e44adf4a9 phpunit: Set the MW_INSTALL_PATH env variable if needed
phpunit.php did that, and also the bootstrap file before
Ie20617ac80d12f99ceaeae53b852cc6ed76b3feb. I was under the impression
that wfDetectInstallPath would also set this variable, but it doesn't --
it only sets $IP and the MW_INSTALL_PATH constant.

So restore the bit of code that sets the env variable, but do that only
in the bootstrap, and not in wfDetectInstallPath, because it's
presumably not needed there.

Change-Id: Icbd718bdea3567fb85d39926bed93af72de60c9b
2023-07-17 15:28:26 +02:00

42 lines
1.4 KiB
PHP

<?php
if ( ( PHP_SAPI !== 'cli' && PHP_SAPI !== 'phpdbg' ) || defined( 'MEDIAWIKI' ) ) {
exit( 'This file is only meant to be executed indirectly by PHPUnit\'s bootstrap process' );
}
fwrite( STDERR, 'Using PHP ' . PHP_VERSION . "\n" );
define( 'MEDIAWIKI', true );
define( 'MW_ENTRY_POINT', 'cli' );
// Set a flag which can be used to detect when other scripts have been entered
// through this entry point or not.
define( 'MW_PHPUNIT_TEST', true );
if ( getenv( 'PHPUNIT_WIKI' ) ) {
$wikiName = getenv( 'PHPUNIT_WIKI' );
$bits = explode( '-', $wikiName, 2 );
define( 'MW_DB', $bits[0] );
define( 'MW_PREFIX', $bits[1] ?? '' );
define( 'MW_WIKI_NAME', $wikiName );
}
require_once __DIR__ . '/../common/TestSetup.php';
require_once __DIR__ . "/../../includes/BootstrapHelperFunctions.php";
// phpcs:ignore MediaWiki.NamingConventions.ValidGlobalName.allowedPrefix
global $IP;
$IP = wfDetectInstallPath();
// Note: unit tests don't use a settings file but some code still assumes that one exists
wfDetectLocalSettingsFile( $IP );
if ( getenv( 'MW_INSTALL_PATH' ) === false ) {
// Set the env variable for BC with maintenance scripts and the like
putenv( 'MW_INSTALL_PATH=' . $IP );
}
TestSetup::snapshotGlobals();
$GLOBALS['wgCommandLineMode'] = true;
// Start an output buffer to avoid headers being sent by constructors,
// data providers, etc. (T206476)
ob_start();