* Automatically override a few sub-backend settings in FileBackendMultiWrite.
We should ignore locking, journaling, or read-only settings of sub-backends.
Journaling is now done just for master sub-backend paths (under the proxy backend name).
We don't need to log for each sub-backend, which is a waste of disk space.
* Changed FileBackendMultiWrite::doOperationsInternal() to be similiar to the
other write functions. It now uses doOperations() of the sub-backends rather
than manual code. This makes settings like 'concurrency' easier to manage;
we might want to have some sub-backends with varying setings for that.
* Made FileBackendMultiWrite::doQuickOperationsInternal() compliant with docs.
* Added CHECK_SHA1 option for consistency checking.
* Fixed function visibility in two places.
* Improved multiwrite backend tests by calling consistencyCheck().
Change-Id: Iac7bfe10c77ecd069fb9ef0ec26a01512f5f4eea
Factor out duplicated code into the new ProcessCacheLRU. It is a fixed
size an per process cache which invalidate the least recently used cache
key.
Change-Id: Ib4475f21879ef6286ce2a28f248acd296fdbd45d
Improve Xml::languageSelector: add parameters to change label message and id/name of the select tag.
Use languageSelector in SpecialAllmessages (less code duplication)
Patchset 10 July: add tests per MaxSem; add version for new parameters and change the message parameter to require a Message object per Nikerabbit
Change-Id: I7fbb29ee2dc37a2b6a5e2cfc88207a0b47b83e9b
@fixme is simply not recognized by doxygen whereas @todo is used to
generate a nice ... todo list!!
Change-Id: If956c0a164373126ce48b791d45c56962034eecd
Introduce two new methods to easily get array of namespaces indices
which are subjects or talks:
MWNamespace::getSubjectNamespaces()
MWNamespace::getTalkNamespaces()
Change-Id: I975db344afd97713521713a708368d37cd633c50
Make sure the global session data in $wgRequest is used for doApiRequest
per default, and return it's content among with the request's results.
Previously, an empty session was used per default, and the local context's
session data would get out of sync with $wgRequest.
This change allows for the following assumptions to hold in test cases:
* within the same function, changes to the session made by one api call
will be visible to subsequent api calls.
* the session data returned by doApiRequest is the actual status of the
session as manipulated by the api call. This session data can be passed
to subsequent api calls.
Note that the session data is still reset for every call to a test
function.
Change-Id: Ia20cf0ccfcdca736dd5da3444b14fbdd1c5def46
* Use the API module's own context to check edit tokens.
* Use the global session if none is provided to doApiRequest.
* Fix ApiFlockTest to not pass an empty session, so the tokens from
the global request can be used.
Change-Id: I2bff2390f43beb984b1b451bcf4e41271b2f054f
* Per https://bugzilla.wikimedia.org/show_bug.cgi?id=27395#c1
adding test cases for things that broke in the past:
- bug 26931
- bug 27046
* Added various other small tests that seem fitting in their context
* Moved testBug32548Exponent to below the data provider (like most
other tests iirc).
Change-Id: I7a4df097108ec05bc58d5a110329e13ff9587c8a
which we weren't treating right.
* $limit in wfDebugBacktrace() is the number of returned frames,
we thus need to take into account the wfDebugBacktrace() frame, which
is sliced from debug_backtrace().
* wfGetCaller() needs to add a level for itself.
* MWDebug::warning() was logging itself as the warning issuer,
which is useless (the call a few lines before was right, though)
MWDebugTest.php changed accordingly.
* Removed double call to wfGetCaller( $callerOffset + 1 )
* Documented the meaning of wfGetCaller() parameter
* Added unit test
Change-Id: Ief50f4c810bad8b03bb2bf9dc6d945d9acb29851
Patchset 2: attempt to fix sql error when using sqlite
Patchset 3: for great justice
Patchset 4: sqlite, not postgres... /facepalm
Patchset 5: joy, more sql divergence...
Patchset 7: handle inconsistencies in MWs database abstraction layer
Change-Id: I1948c4ad815008321801c93584eb249c1f597560
* Also tweaked timestamp tolerance in tests, intended for Swift
* Also made a few tweaks to speed up tests a bit
Change-Id: Ibdee36d3bf86089b027dc74bb2582acc1ab4b96b
When generalizing LinksUpdate to DataUpdate and introducing
WikiPage::getDeletionUpdates(), WikiPage::doDeleteUpdates()
was removed, even though it was still used by Title::moveToInternal().
This patch restores WikiPage::doDeleteUpdates(), using the
new logic based on WikiPage::getDeletionUpdates() to implement it.
Change-Id: I12a49d5ca3ccb6bb9cbb63dde436bcf2a7d8a985
* doQuickOperations() lets us do things like purge thumbnails as fast as possible.
Stat calls, SHA1 checks, and RTTs in general are avoided. It also avoids the
slowness of lazy population of thumbnail SHA1s in Swift (for those made by rewrite.py).
* Removed supportedOperations() to avoid the extra complexity.
* Made a few variable type and exception documentation cleanups.
* Cleaned up unit test file removal a bit and made some functions private.
Change-Id: I6922368c6af7752a6927d96402519132203108a1
This test case is intended to test the updating of various links
tables using a LinksUpdate object, based on the information in
a ParserOutput object.
Patch set 3: Suggestions by Aaron:
factored assertSelect() out into MediaWikiTestCase.
Force sorting of result set under testing.
Change-Id: I2d01e67ee7396080a04e5dff637aca0dc159c65d
rename MWNamespace::isNonincludableNamespace
to MWNamespace::isNonincludable, because "Namespace" is already in the
class name
Change-Id: Ie982835c7dc84cb10c823996e5360cc1b342f704
* FS backends work via popen() and basic shell commands.
* Swift backends use the custom SwiftCloudFiles async features.
* Refactored storagePathsRead()/storagePathsChanged() to normalize the paths
for correct dependency detection in FileOpBatch.
* Cleaned up SwiftFileBackend exception handling to make debugging easier.
* Added a quick and dirty performance testing script.
* Updated unit tests to include a run with parallelize=implicit.
* Improved file test failure output a bit.
Change-Id: I6a5ed743c30c598e0dd7301dbdb3631c460332fd
* Fixed unlocking logic in FSLockManager for case when an EX lock was made, then an SH one, and then the EX one was "unlocked"
* Avoid hiding useful unlink() warnings in FSLockManager
* Reduced locking use in test cleanup code
* Added a simple testLockCalls() test function
* Made a few cleanups & fixes to backend tests
Change-Id: I1110d9b537c450d9feca5a2fb35519c22435e81d