Commit graph

756 commits

Author SHA1 Message Date
Aaron
87d3f10396 [FileBackend] MultiWrite code improvements and sanity checks.
* 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
2012-07-18 03:21:55 +00:00
Aaron Schulz
878f5aae5c [FileBackend] Factored out code into ProcessCacheLRU class.
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
2012-07-12 17:09:23 +00:00
robin
72ebf55665 Use Xml::languageSelector in SpecialAllmessages
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
2012-07-10 13:43:38 -04:00
Antoine Musso
12e608e3d5 converts '@fixme' to '@todo FIXME'
@fixme is simply not recognized by doxygen whereas @todo is used to
generate a nice ... todo list!!

Change-Id: If956c0a164373126ce48b791d45c56962034eecd
2012-07-10 17:16:46 +02:00
Max Semenik
27a4d74bd7 (bug 36495) Sanitizer: Convert align to margin/float outside tables.
Change-Id: I108cbd100cff6bade011b14d74b5bca82f2a1e5f
2012-07-03 08:54:46 +02:00
Antoine Musso
86021805a4 Revert "(bug 32297) Use symbolic names, not offsets for a default timezone."
This reverts commit 3056b8dfd2.

Change-Id: I29cf9a5389709b30f869072ed836cb5b85ba5106
2012-07-02 13:12:16 +02:00
Siebrand
5e18423043 Merge "(bug 32297) Use symbolic names, not offsets for a default timezone." 2012-07-01 15:10:08 +00:00
Tim Starling
5dd1bbd640 Merge "[FileBackend] Rewrote FileBackendStoreShardListIterator to actually work." 2012-06-29 06:23:42 +00:00
Aaron Schulz
4bbb51b326 Merge "Disable unneeded database requisite of generateRandomImages.php" 2012-06-28 18:04:57 +00:00
Aaron Schulz
8d2b9a2a4f Merge "helpers to get subjects/talk namespaces" 2012-06-28 17:54:03 +00:00
Aaron Schulz
ee33b414db Merge "Class renaming didn't went into change 12729" 2012-06-28 05:20:57 +00:00
Antoine Musso
e06ad28e7a helpers to get subjects/talk namespaces
Introduce two new methods to easily get array of namespaces indices
which are subjects or talks:

 MWNamespace::getSubjectNamespaces()
 MWNamespace::getTalkNamespaces()

Change-Id: I975db344afd97713521713a708368d37cd633c50
2012-06-26 22:25:59 +02:00
Platonides
de01120467 Disable unneeded database requisite of generateRandomImages.php
Change-Id: I56a2d7baa21a6082e088db3e6a41381b92168eed
2012-06-26 19:02:55 +02:00
Reedy
c06a92adbe Merge "Change some NS_IMAGE to NS_FILE" 2012-06-25 13:55:27 +00:00
Hashar
6e9ebaf9cc Merge "JavaScriptMinifierTest: Increase test coverage" 2012-06-25 13:53:14 +00:00
umherirrender
a9a71011ff Change some NS_IMAGE to NS_FILE
Change-Id: Id530c88d24df1a47a2f6565911184008b67fe04d
2012-06-24 21:50:10 +02:00
Platonides
1896e83ff2 Class renaming didn't went into change 12729
Change-Id: I0e5eff79a41662c89d111eaf0f13c35d9a689dde
2012-06-23 23:04:57 +02:00
Platonides
a05c1a1ab7 WikiPage::preSaveTransform() was deprecated in r103228 (018d885f)
Hide the warning on the tests and add tests for the Parser method.

Change-Id: I939bf59206da1dd45e33db2251e92d9792a0a767
2012-06-23 20:28:51 +02:00
daniel
62ac6f3722 Make session persist between calls to doApiRequest
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
2012-06-22 23:22:34 +02:00
daniel
7d3d38748a Fix session handling in API test cases.
* 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
2012-06-21 22:29:19 +02:00
Timo Tijhof
41759f322c PHP test suite for CSSMin
Change-Id: Ic9195614acfd616ccdff57cfc666aa4dfa71fb96
2012-06-20 14:28:09 +02:00
Timo Tijhof
c33087beaa JavaScriptMinifierTest: Increase test coverage
* 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
2012-06-20 05:18:39 +02:00
Aaron
0bcd30cc63 [FileBackend] Rewrote FileBackendStoreShardListIterator to actually work.
* Beefed up the relevant file backend unit tests.

Change-Id: I62e741fada1197a7fa253a418829dd8f4728a9cd
2012-06-13 10:25:23 -07:00
jeroendedauw
7127713c78 Added some extra tests for ORMRow class
Change-Id: I672c88d42168a3daf405e6f0a4f204c15a4489ad
2012-06-07 13:18:49 +02:00
awjrichards
c29fd59775 Big oops - merged to wrong branch.
Revert "Revert to arbitrarily old point before initial remote branch creation to help clean up"

This reverts commit ee0d3d330f
2012-06-05 22:58:54 +00:00
awjrichards
ee0d3d330f Revert to arbitrarily old point before initial remote branch creation to help clean up
Change-Id: I41a3d1e55d3ea9dffa42451237fe065f9334361d
2012-06-02 08:43:04 -07:00
Demon
0593465614 Merge "[FileBackend] Purge Swift process cache before container delete for sanity." 2012-06-04 20:46:32 +00:00
Platonides
e4b2dea3c4 Use canonical class name. Include ORMRowTest.php
Change-Id: Ia6bc39492056bb3aa3a1a17097b71b70d1344e50
2012-06-03 15:22:31 +02:00
Aaron Schulz
c20f708ffd Merge "PHP >= 5.4.0 started taking advantage of $limit optimization of wfDebugBacktrace(), which we weren't treating right." 2012-06-02 16:58:41 +00:00
Reedy
9aa347f430 Merge "Added base class for testing ORMRow deriving classes and added a mock implementation in order to test the abstract parent class itself" 2012-06-01 14:29:07 +00:00
Platonides
2e506c4809 PHP >= 5.4.0 started taking advantage of $limit optimization of wfDebugBacktrace(),
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
2012-05-31 17:32:33 +02:00
Max Semenik
aa305c06fe mobile sub-directories for mobile-related code
Move DeviceDetection.php and DeviceDetectionTest.php

Change-Id: Ia4aaf7ad499dd2021ef9d2ebf7f6d829e8fc4656
2012-05-29 16:48:28 +02:00
Platonides
d97b7d6bc1 tests covering WebRequest->getAcceptLang()
Change-Id: I981574e854bc43aba2bd5def7cb6b1b665c5b6ca
2012-05-29 14:45:34 +02:00
jeroendedauw
298c8b4786 Added base class for testing ORMRow deriving classes and added a mock implementation in order to test the abstract parent class itself
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
2012-05-28 17:35:05 +02:00
Aaron Schulz
6435a6e737 [FileBackend] Purge Swift process cache before container delete for sanity.
* Also tweaked some documentation.

Change-Id: I89369d6211de216193ae1d895356137cacded5d7
2012-05-25 03:41:12 -07:00
Platonides
9180ab0b7c Make it work in wikis not configured in English.
(hardcodes message values)
 php phpunit.php includes/WikiPageTest.php

Change-Id: I4b93d983f467fd281695be5ac778d30db0b09c17
2012-05-23 23:09:15 +02:00
Aaron Schulz
723b886429 [FileBackend] Avoid an extra RTT on Swift listing operations.
* Also tweaked timestamp tolerance in tests, intended for Swift
* Also made a few tweaks to speed up tests a bit

Change-Id: Ibdee36d3bf86089b027dc74bb2582acc1ab4b96b
2012-05-22 10:53:48 -07:00
daniel
fa132be893 fix for Ibe3e88fa: restoring doDeleteUpdates().
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
2012-05-18 18:58:21 +02:00
Aaron
957f09b8a4 [FileBackend] Added doQuickOperations() function for things like purging thumbnails.
* 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
2012-05-16 10:30:34 -07:00
Reedy
df7b1cc716 Merge "[IP] Added an IP::prettifyIP() function for displaying IPs." 2012-05-15 19:10:51 +00:00
Tim Starling
6e49b1a966 Merge "[FileBackend] Added support for concurrent file write operations." 2012-05-14 07:23:29 +00:00
Aaron Schulz
8c8b289955 Merge "Introducing LinksUpdateTest." 2012-05-13 17:24:34 +00:00
daniel
50ee1d23e5 Introducing LinksUpdateTest.
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
2012-05-13 17:07:10 +02:00
Reedy
c68ca4228e Merge "Integrating mobile device detection class into MW core" 2012-05-11 22:50:35 +00:00
Aaron
456177bdee [IP] Added an IP::prettifyIP() function for displaying IPs.
Change-Id: I53b3fe70bd0091ef02740f2b8950c36a0e4cf32e
2012-05-11 10:53:14 -07:00
umherirrender
e9fa97f76e Add unit test for MWNamespace::isNonincludable
rename MWNamespace::isNonincludableNamespace
to MWNamespace::isNonincludable, because "Namespace" is already in the
class name

Change-Id: Ie982835c7dc84cb10c823996e5360cc1b342f704
2012-05-11 19:52:34 +02:00
awjrichards
8653accc60 Integrating mobile device detection class into MW core
Change-Id: Ic7bbeba746ea37a92c1df5dbaa1fb4fd08da130c
2012-05-09 14:28:16 -07:00
Aaron
23a0490b78 [FileBackend] Added support for concurrent file write operations.
* 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
2012-05-09 05:37:41 -07:00
Aaron Schulz
a9e028e5a8 [FileBackend] File locking fixes.
* 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
2012-05-08 01:51:57 -07:00
Aaron Schulz
bc2b3e055c Merge "Adding $this->tablesUsed to RevisionStorageTest." 2012-05-07 22:53:13 +00:00