Setting up development environment
run-tests.php is a PHP script so all you really need is a fairly standard development environment. This is a brief set of instructions. If you just want to run the code this page is not for you - look here
Installing PHP
- Download the PHP 5.4.0 source tar
- Extract into /the/place/you/keep/php/source
- cd /the/place/you/keep/phpsource/
- configure --with-zlib --enable-pcntl --exec-prefix=/usr/local/minimalphp
- make
- sudo make install
This gets a recent copy of PHP installed in /usr/local/minimalphp/bin/php. Note: you do not _need_ zlib, a couple of the unit test use it in testing the --GZIP_POST-- and --DEFLATE_POST-- sections. You can skip these tests with a configuration variable. You also only need pcntl for running tests in parallel. So, in fact your configure command here could be --disable-all. This would be enough to run the run-tests.php and its unit tests.
Installing other things
The run-tests.php code is unit tested using PHPUnit. The unit tests can be run individually but the easiest way to run them all is from a build.xml file driven by phing.
Code documentation is generated using Doxygen and unit test code coverage comes from Xdebug.
You don't need any of these things if all you want to do is run the code. You do need them if you want to make changes and test your changes.
So, in summary, install:
- PHPUnit (which you should be able to install using pear)
- Phing (likewise)
- Doxygen (download, extract, configure, make sudo make install)
- Xdebug 2.2.0 (download and build). Follow the Xdebug instructions carefully - make sure that your php.ini is pointing to the right xdebug.so.
Getting the development version of parallel run-tests.php
git clone http://git.php.net/repository/phpruntests.git
Under the phpruntests directory you will find all the source code under the directory /src and all of the unit tests under the directory /tests. The main program is called run-tests.php. The main program is located in the directory /src.
Assuming that you have installed all the tools above, yo may want to run
phing doc
first. This will generate class documentation in a sub directory called _docs. It may be useful to look at that in conjunction with the source code and documentation on this wiki.
Checking that the code is working
The source code comes with a set of PHPUnit test cases and a QA test suite, all of this is controlled in a build.xml file.
Before running the tests you must set up a configuration file. You will find phpdefinitions.txt.sample in the phpruntests directory. Copy it to phpdefinitions.txt and modify the settings to suit those on your system.
Unit tests
phing test
QA
phing qa
This will run unit tests first and the go on to run a standard test bucket, first with the old version of run-tests.php and the with the new version (in sequential mode). A php script is used to compare the results of the new and old versions. Look in phpruntests/_compare for a results file.
At the moment (18th May 2012) you can expect a few differences in the output from the old and new versions of run-tests.php. These are mainly due to REDIRECTTEST not being implemented and a few other small differences in tests which need to be fixed.