User:MarkAHershberger/Weekly reports/2010-W04

This week was spent on the usual, testing and repairing code.

= Chunked Uploading =

I still haven't finished up the work on the Chunked Uploading API. I need to contact Michael Dale and find out exactly how mwEmbed interacts with chunked uploading as well as figure out how much of the js2 code is needed for chunked uploading support.

= PHPUnit vs Warnings =

I spent some time confused over TimStarling's warnings that fopen wouldn't throw exceptions when I was clearly seeing it throwing exceptions during my use of the tests I wrote under PHPUnit.

Then I read the documentation for exceptions and understood what was happening.

PHPUnit was quietly (and, one could argue, usefully, for testing purporses) turning warnings into exceptions which I was then able to try {} catch {}. So the try/catch that worked during unit testing would fail in actual use. Score (for those keeping track):


 * Tim's Experience: ∞-1
 * PHPUnit: ∞/2

PHPUnit has helped me catch some problems (more on that in a bit), but Tim's observations and recommendations are spot on.

= Old PHP =

I wrapped up the week by setting up some old versions of PHP on virtual machines for testing. PHP 5.0x on Windows XP and PHP 5.1 on Centos 4

Mediawiki from trunk is unbearable on PHP 5.0x (and I can't blame Windows for that). Installer.php turns on E_STRICT for error_reporting, and PHP 5.0x includes a note recommending against using “var” in favor of “public”. Which is all fine and good except, well, there are a lot of “vars” in the code. PHP 5.1+ removes this warning.

Further, PHP 5.0x doesn't support date_default_timezone_get or date_default_timezone_set. These problems, combined with the already-discovered 64bit problems with 5.0x should sound the death knell for support for such ancient (circa 2005) versions of PHP. YAY!

While testing on older versions of PHP, I found a couple of problems with HttpFunctions.php. Some older versions of PHP don't have the same stream arguments -- timeout for example -- so I had to work around those problems.

To my avid reader (all one of you): I promise to write more next week.

= Raw Notes =

25

 * Worked on API testing for chunked Uploading & Login
 * Trying to understand phpUnit dependencies so I can use HttpRequest for API tests.

26

 * Trying to understand how user setup works.
 * Maybe found a bug in how users are added? are non-camelCase users ok?

27

 * Got the parser tests running under phpUnit
 * Actually got the instantiation tests for HttpUnit working

28

 * Dealing with parsertests memory issues
 * Writing API tests
 * Bringing in JS2/mwEmbed work

29

 * Cleaning up fixm from last week ("../data" and fopen warnings)
 * Found a few idiosyncratic problems with fopen on older versions of php
 * made tests work on older versions of phpunit