User:MarkAHershberger/Weekly reports/2010-W08

=Tests=

I spent a good part of last week working on the PHPUnit tests.

DB Config
Until last week, there were several tests that failed for unknown reasons when run together with “phpunit” that didn't fail when they were run by themselves. In an effor to begin the creation of a complete, usable test suite, I tracked most of these down to database dependencies.

In particular the PHPUnit wrapper for the ParserTests sets up the database before running any of the tests. This DB setup was different from the default configuration when the tests ran by themselves. In some cases, I fixed the ParserTests DB setup for PHPUnit. In others, adjusted tests to sense when they were being run along with the ParserTests and, when they were, be marked incomplete.

The proper solution is to make sure the DB setup is always the same — whether the tests are run by themselves or in the suite. I'll look to doing that in the comming weeks.

CodeReview Integration
In preparation for integrating the PHPUnit tests into CodeReview, I set up my own CodeReview instance. TimStarling suggested that failing tests be noted as a comment for each revision. This would make integration much easier. In thinking about how to set up multiple test instances, I had already come to the conclusion that the test-running instances would need to be completely autonomous, only feeding back data (i.e. test failures) at the completion of each test run.

This de-coupling could be used so that, depending on the length of the test run, not all commits need to be tested. The CodeReview instance, since it is only a listener for test results, not a coordinator of build-bots, can be kept fairly simple.

Code Coverage
I also began looking at the code coverage reports that PHPUnit produces. Initially, I thought that it would be useful to link directly to these on the CR site, but, upon reflection, I think creating a code-coverage agregator or extension would be a better use.

=Release Work=

Towards the end of the week, I focused on fixing several fixme problems in CodeReview. Other than the outstanding problem with PHPUnit memory usage problems, the only remaining (pure-PHP) problems are a few commits (r60743, r61856, r61857) related to the search updates that philip made.

=Misc=

I also spent some personal time this week on mediawiki-related projects that might be of interest.

Image Directory Upload Script
A friend of mine has a client that wants to upload a directory of images to their MW instance. After some quick looking around (and asking on #mediawiki), I couldn't find a script that does this. I ended up writing him a rough script using the new Upload API in MW 1.16. This helped me understand a little more about how API programming works (as well as helping my friend).

Emacs interface
Seven months ago, a potential user of the mediawiki.el interface for Emacs that I maintain asked me about inegrating some of the features from wikipedia-mode.el into mediawiki.el. After putting it off for a while, I spent the past weekend cleaning up some of the code and figuring out what I could cannibalize. Its still pretty rough — I'll clean it up over the next few days — but the improvements are impressive.

= Raw Notes =


 * Started going through the tests, finding out what is causing them to fail when they run with the parsertests.
 * Found some places that depend on db setup, but, when run with parsertests the db wasn't fully set up. Fixed that for one or two tables.
 * Learning more about the internals of MW by writing tests that cover different areas.


 * Got rid of some errors in tests
 * Started setting up a codereview instance to see if phpunit tests can be integrated.