/** * @note This method is intended for testing purposes * @param bool $value Whether to *always* defer updates, even in CLI mode * @since 1.27 */ public static function forceDeferral($value) { self::$forceDeferral = $value; }
public function testAsyncWrites() { $be = TestingAccessWrapper::newFromObject(new FileBackendMultiWrite(array('name' => 'localtesting', 'wikiId' => wfWikiId() . mt_rand(), 'backends' => array(array('name' => 'multitesting0', 'class' => 'MemoryFileBackend', 'isMultiMaster' => false), array('name' => 'multitesting1', 'class' => 'MemoryFileBackend', 'isMultiMaster' => true)), 'replication' => 'async'))); DeferredUpdates::forceDeferral(true); $p = 'container/test-cont/file.txt'; $be->quickCreate(array('dst' => "mwstore://localtesting/{$p}", 'content' => 'cattitude')); $this->assertEquals(false, $be->backends[0]->getFileContents(array('src' => "mwstore://multitesting0/{$p}")), "File not yet written to backend 0"); $this->assertEquals('cattitude', $be->backends[1]->getFileContents(array('src' => "mwstore://multitesting1/{$p}")), "File already written to backend 1"); DeferredUpdates::doUpdates(); DeferredUpdates::forceDeferral(false); $this->assertEquals('cattitude', $be->backends[0]->getFileContents(array('src' => "mwstore://multitesting0/{$p}")), "File now written to backend 0"); }