wiki.techinc.nl/tests/phpunit/includes/objectcache/SqlBagOStuffServerArrayTest.php
Tim Starling bcfb90cdd7 objectcache: Simplify SqlBagOStuff class configuration
Substantive changes:

* Remove the parameters globalKeyLB and localKeyLB, not needed in
  production, probably not used anywhere.
* Add a "cluster" parameter, for production.
* Don't call markServerDown() in LoadBalancer mode.

Style changes:

* Document config parameters separately from constructor parameters, to
  clarify the role of the wiring normalisation.
* Inject a load balancer from ObjectCache to SqlBagOStuff, using a
  closure to defer construction.
* Clarify the split between LoadBalancer mode and server array mode by
  introducing a useLB property. Use it instead of special shard index
  values and array counts.
* multiPrimaryModeType wasn't needed anywhere and wasn't available in
  the constructor, so it just became a boolean multiPrimaryMode.
* Add a test covering most of the server array (!useLB) branches.

Bug: T212129
Change-Id: Ib097082efb40b514a29a42286dc362f2e3743ee4
2022-05-27 15:04:43 +00:00

21 lines
549 B
PHP

<?php
use MediaWiki\MediaWikiServices;
use Wikimedia\TestingAccessWrapper;
/**
* @group BagOStuff
* @group Database
* @covers SqlBagOStuff
*/
class SqlBagOStuffServerArrayTest extends BagOStuffTestBase {
protected function newCacheInstance() {
// Extract server config from main load balancer
$lb = MediaWikiServices::getInstance()->getDBLoadBalancer();
$servers = TestingAccessWrapper::newFromObject( $lb )->servers;
return ObjectCache::newFromParams( [
'class' => SqlBagOStuff::class,
'servers' => [ $servers[0] ]
] );
}
}