Commit graph

611 commits

Author SHA1 Message Date
Aaron Schulz
eb92ac5557 * Added FileBackend::parentStoragePath() convenience function for getting parent directories.
* In StoreBatchTest: sed proper clean() function to remove temp dirs (follows up r109641). Also removed some commented out code.
* Fixed temp dir leakage in FileBackendTest.
2012-01-20 22:46:35 +00:00
Platonides
3f76d9e2b0 Fix folder leakage. 2012-01-20 20:15:26 +00:00
Platonides
fe5a57bd2e If you are going to leak folders, at least give them your surname. 2012-01-20 19:46:27 +00:00
Sam Reed
ec4604de3d Documentation and whitespace
Clearing another w/c
2012-01-19 14:56:18 +00:00
Alexandre Emsenhuber
de67af20d0 $wgLanguageCode goes with $wgContLang, not $wgLang. This was breaking ApiBlockTest because $wgContLang->getCode() != $wgLanguageCode. 2012-01-19 10:05:38 +00:00
Aaron Schulz
d0fc7d5d89 Renamed 'overwriteDest' FileBackend operation parameter to just 'overwrite', which is shorter and more consistent with 'overwriteSame' 2012-01-19 02:24:49 +00:00
Antoine Musso
3ceb767b83 MWDebugTest: clear log before running tests
Some other test could have added their own logs, for example
deprecated notice. In that case, the first test will fail because
the log array already has some content :-b
2012-01-18 15:58:25 +00:00
Antoine Musso
79c979b4e8 tests: mark tests requiring a database connection 2012-01-18 15:50:00 +00:00
Antoine Musso
19854b4e28 enable MWDebug tests
The first ones were failing because the test suite ran on gallium without
MWDebug being initialized. This is now the case since r109033.

The second part was failling because PHPUnit on gallium does not have
the assertCount() method. Use a assertEquals() / count() workaround instead.


Tests added by 108873
Reverts r108877
2012-01-16 13:56:18 +00:00
Antoine Musso
acffbd72e5 test with MWDebug enabled (made possible by r109032) 2012-01-16 13:50:17 +00:00
Antoine Musso
01b3af3ac6 Skip BrokenRedirectsPage query test under MySQL
The MySQL backend, when using temporary tables, does not support referencing
a table which was already open.
http://bugs.mysql.com/bug.php?id=10327

This patch skip BrokenRedirectsPage on MySQL as reported on r102411.
2012-01-16 10:33:24 +00:00
Aaron Schulz
c4a01a7afd In FileOp/FileBackend:
* Added SHA-1 to FileOp::attemptBatch $predicates (since concatenate was removed from FileOp). This lets us get rid of temp file backups, as the remaining failure case is just the backend medium going down (the ops would break in that case anyway). Doing so reduces RTTs and backup file I/O overhead. This also simplifies expiry object support by avoiding having to stash the expiry values of temp backup objects somewhere.
* Improved precheck() and attempt() status logic in FileOp::attemptBatch() a bit. Use separate $subStatus var to check if each op is OK.
* A few minor code cleanups and comment tweaks.
* Fixed MoveFileOp bug found in unit tests when the source/dest are the same and an overwriteDest/overwriteSame param is given (the file would just get deleted). Improved CopyFileOp in this case too.
Other:
* Added more unit tests.
2012-01-15 22:45:14 +00:00
Aaron Schulz
b51c4a3328 Removed call to ParserTest::setUp() which was unnecessary. Also, the called function leaks globals anyway atm. 2012-01-13 23:39:48 +00:00
Aaron Schulz
36c143110a In FileBackend:
* Made secure() call doPrepare() for caller dummy proofing (especially those that don't check the status).
In FSFileBackend:
* Removed redundant wfMkdirParents() calls in FSFileBackend, we already have prepare() for this purpose. This also keeps it's behavior more consistent with the other backends.
* Made use of 'backend-fail-store' message in doStoreInternal().
Other:
* Updated unit tests and renamed $src => $source in some functions for consistency.
* Added some documentation comments and @since tags.
2012-01-13 23:30:46 +00:00
Antoine Musso
d7520ca760 Disable MWDebug tests for now
PHPUnit is too old on gallium so assertCount() is not recognized
The other two tests are broken for an unknown reason.
2012-01-13 23:26:26 +00:00
Antoine Musso
0f02086990 some tests for MWDebug
Really incomplete. We need better testing.

Added two new public methods so we can get or clear the internal logs.
2012-01-13 23:07:52 +00:00
Aaron Schulz
76298accc0 * Added 'basePath' config param to FSFileBackend and tweaked it to behave more similarly to the backends with real containers (e.g. everything else). Resolution to absolute paths is now deferred after resolveStoragePath(), using resolveToFSPath().
* Fixed whitespace in FSFileIterator.
2012-01-12 18:44:00 +00:00
Antoine Musso
ee868909e9 swap assertEquals parameters in TemplateCategoriesTest
First parameter is expected, second is the result
2012-01-12 16:42:33 +00:00
Antoine Musso
ca27814f63 bug 33583 search ns user pref ignored!
r106780 to fix bug 33270 introduced a new bug that prevented selected
namespaces for search to be applied. This patch fix the issue.

Credits to Brad Jorsch
2012-01-12 09:03:38 +00:00
Max Semenik
6d87a6ea8f Revert r108603, which was itself a revert of r107376, r107994. Before considering something unneeded, please ask first ;) 2012-01-11 20:19:55 +00:00
Antoine Musso
f5f1b6d0bb Reverts MySQL stored procedure support
This is reverting the work done by MaxSem to support stored procedures
and stored function in MySQL. The reasons are:
 - it is not needed yet
 - tests are not functionals
 - alter the stable include/db/Database.php and drop support for ';;'

So please create a branch to work on it and merge it back in trunk
once we have branched 1.19 :-)

I have opened bug 33654 to track this enhancement request.

Reverts r107376, r107994.
2012-01-11 09:46:21 +00:00
Antoine Musso
44b06f908e reverts Concurrency works
trunk is frozen pending stabilisation so we can release MediaWiki 1.19.
Those changes introduces API changes and new SQL tables, so that sounds like
new feature we do not have time to review right now.

Please reapply changes in branches/concurrency and have code review handled
there. Once the branch has been reviewed, please hold. Once trunk is stable
enough and 1.19 got branched, you are welcome to merge the branch in trunk.

Note: we can have a Jenkins jobs setup to run the branch tests if you need.

Reverts:
r108595 r108591 r108585 r108584 108572 r108564 108560 r108559
2012-01-11 09:05:56 +00:00
Ian Baker
65de21c0d4 Commenting these tests out so that CI can run, since I need to leave and nobody uses this code yet.
These fail only on sqlite, and only when run with the entire suite (they're fine when run individually).
Skipping ApiBlockTest allows ApiConcurrencyTest to run, oddly enough.
Clearly, this will need to be fixed ASAP.  I'll take care of it on Thursday when I'm back online, or possibly
before.
2012-01-11 02:48:28 +00:00
Ian Baker
27ed15ba5c Fixed concurrency issues related to mysql default locking mode, per Roan's comments. Fixed other little bugs Roan pointed out also.
followup to r108559
2012-01-11 01:10:27 +00:00
Sam Reed
0284615485 Add svn:keywords Id
Trim trailing whitespace

Add explicit member variables
2012-01-10 23:12:00 +00:00
Ian Baker
b3c84ce261 MERGE branches/concurrency 108301:108557 into trunk 2012-01-10 23:03:03 +00:00
Antoine Musso
f0493a88a0 move parser fuzz test to ParserFuzz group
Somehow fixes bug 29493:
« Put parser fuzz tests in @group and disable by default »
2012-01-10 20:50:34 +00:00
Antoine Musso
0323c900f7 StoreBatchText note about using custom repo
follow up r108308
2012-01-10 14:26:17 +00:00
Platonides
4fc7769069 Revert r108358. It's a good fellow and we like to keep it. 2012-01-09 22:33:00 +00:00
Antoine Musso
2721648de3 Break wfBCP47, wfBaseName and wfTimestamp tests
They are now in their own files. Rewrite wfTimestamp tests to use
data providers like it should.

Originally commited without history by ^demon as r108420
2012-01-09 16:30:32 +00:00
Antoine Musso
13427e7448 revert r108420, will split with history 2012-01-09 16:21:13 +00:00
Chad Horohoe
3bdc1d5e99 * Drop old parserTests.php way of running parser tests. You can run parser tests via --group Parser or specifying
the includes/parser/MediaWikiParserTest.php test case
* Drop now unused various test recorder options -- phpunit outputs its data in lots of machine-readable formats, use those if you need to work with
  test data
* There's still a lot of duplication between NewParserTest::setUp() and MediaWikiTestCase, but hey one step at a time ;-)
* All tests pass for me (make phpunit && make parser)
2012-01-09 15:18:07 +00:00
Antoine Musso
2622e95bba reindent SpecialSearchTest.php (follow r198400) 2012-01-09 14:42:02 +00:00
Chad Horohoe
6cc1277748 Remove no-op codepath 2012-01-09 13:04:05 +00:00
Antoine Musso
b549176edf test skeleton for Special:Search
Only two tests for now. A third one was written for r106780 / bug 33583
but is disabled to avoid breaking Jenkins.
2012-01-09 11:41:13 +00:00
Aaron Schulz
3cd02f7a38 * r107986: Added readOnly checks to prepare(), secure(), and clean() in FileBackendBase.
* Added some prepare()/clean() tests.
2012-01-09 00:20:28 +00:00
Aaron Schulz
50a7097436 * Fixed 'success' value of doOperations() Status to match documentation.
* Made 'success', 'successCount', and 'failCount' fields reflect the overall operation in FileBackendMultiWrite::doOperationsInternal(). This makes it match up with single-write backends.
* Made FileBackend::clearCache() part of the public API.
2012-01-08 22:10:53 +00:00
Chad Horohoe
95d52efc32 * Drop old parserTests.php way of running parser tests. You can run parser tests via --group Parser or specifying
the includes/parser/MediaWikiParserTest.php test case
* Drop now unused various test recorder options -- phpunit outputs its data in lots of machine-readable formats, use those if you need to work with
  test data
* There's still a lot of duplication between NewParserTest::setUp() and MediaWikiTestCase, but hey one step at a time ;-)
* All tests pass for me (make phpunit && make parser)
2012-01-08 17:28:13 +00:00
Chad Horohoe
d455b3b267 Another @group Broken 2012-01-08 16:40:05 +00:00
Chad Horohoe
35a5be8617 @group Broken rather than marking incomplete 2012-01-08 16:38:59 +00:00
Aaron Schulz
94c3039106 * Follow-up r107170: Moved FileBackend::concatenate() outside of doOperations() as it's own separate operation. It does not mutate storage files like the others and having it in doOperations() broke FileBackendMultiWrite. This change also makes overriding doOperationsInternal() easier (suching as using a custom batch operation storage API).
* Added sanity check to FileBackendMultiWrite constructor.
* Moved FileBackend::create() function up a bit.
2012-01-08 09:25:15 +00:00
Aaron Schulz
360e3376bf In FileBackend:
* Added getFileSize()/getFileStat() functions. Refactored some functions to use the stat function for better reuse and caching/consistency.
* Refactored streamFile() to allow for subclasses to avoid local file copying with less duplication. Also make last-modified check actually work since we always get the timestamp of the original file.
* Renamed 'ignoreErrors' parameter to 'force'.
In FileBackendMultiWrite:
* Simplified how read ops are done (use 'master' backend for consistency).
* Added consistency check to doOperationsInternal() to check if the files are synced.
* Various fixes after testing.
In StreamFile:
* Split out prepareForStream() function from stream() in StreamFile for code reuse.
In FileBackendTest:
* Properly cover FileBackendMultiWrite in tests.
* Various test improvements.
2012-01-08 08:40:00 +00:00
Platonides
81bdbc0592 Calls to editToken() that r103294 missed. 2012-01-07 23:26:35 +00:00
Platonides
a26f9bd70f r102411 fixup. Close register globals vuln, and document
why is there that require_once.
2012-01-07 22:42:05 +00:00
Alexandre Emsenhuber
40c98e0ad1 * Don't select (even twice for PHPUnit tests) "FOR UPDATE", but use the master database directly instead
* Also pass the line number
* Removed useless usage of $title when throwing the exception about invalid since that variable is always null
* Added $ignoreDuplicate parameter to ParserTest::addArticle()
2012-01-07 12:19:10 +00:00
Aaron Schulz
6a1bb85f80 r108300: updated parserTest.inc tests and re-enabled testBug29408() 2012-01-07 09:26:11 +00:00
Aaron Schulz
d010652a6d Dependency inject the repo/backend for proper testing rather than relying on the wiki config 2012-01-07 06:13:01 +00:00
Aaron Schulz
73e83a48b9 * Fixed bogus dollar signs left in $tmpGlobals array keys in r108300.
* Various documentation cleanups.
2012-01-07 03:46:54 +00:00
Aaron Schulz
7d923a9360 In FileBackend/FileOp:
* Replaced 'media' portion of container names with the repo name. This makes it easy for multiple repos to use the same backend without 'wikiId' hacks. Full container names are now like <wiki>-<repo>-<zone> (or <repo>-<zone> if 'wikiId' is set to an empty string).
* Restricted isValidContainerName() more in light of Azure portability and shorted shard suffix.
* Bumped $maxCacheSize to 75 storage paths.
* Code comment cleanups and additions.
Unit tests:
* Updated related tests and marked testBug29408() as broken (I can't find the problem).
* Reduced leakage in UploadFromUrlTestSuite a bit.
2012-01-07 01:33:23 +00:00
Aaron Schulz
78f5e5a63e Fixes for r106752:
* Make sure FSFileIterator::current() directly returns the string path and that it is relative to the directory being searched.
* Fixed silly bug in testGetFileList that masked any bugs.
* Added a few code comments.
2012-01-06 05:15:51 +00:00