Help test PHP 5.5 beta1

Posted: 2013-03-22
Category: PHP

Yesterday PHP.net announced the release of PHP 5.5 Beta-1. This is a great news after the concerns that merging Zend Optimizer+ would really slow things down, but the releases are still ticking along. So, what can you do to help out? Test it, without doing any work.

If you're on Ubuntu you can run these commands:

$ sudo apt-get install re2c
$ sudo apt-get install bison

If you're on OSX then you can install using Homebrew:

$ sudo brew install re2c
$ sudo brew install bison

Thinking about running any of this on Windows makes my brain itch, so you'll have to work that out for yourself.

With those tools installed simply clone the repo, build and run tests:

$ cd /tmp
$ git clone http://git.php.net/repository/php-src.git -b PHP-5.5
$ cd php-src
$ ./buildconf
$ ./configure --disable-all --enable-debug --enable-maintainer-zts
$ make test

60% of the time, this works every time. If it fails you'll see a summary of the failed test(s)

===================================================================== FAILED TEST SUMMARY --------------------------------------------------------------------- Test fileperms() & chmod() functions: usage variation - misc. perms [ ext/standard/tests/file/006_variation2.phpt] chmod() basic fuctionality [ext/standard/tests/file/chmod_basic.phpt] ===================================================================== You may have found a problem in PHP. This report can be automatically sent to the PHP QA team at http://qa.php.net/reports and http://news.php.net/php.qa.reports This gives us a better understanding of PHP's behavior. If you don't want to send the report immediately you can choose option "s" to save it. You can then email it to [email protected] later. Do you want to send this report now? [Yns]: Y Please enter your email address. (Your address will be mangled so that it will not go out on any mailinglist in plain text): [email protected] Posting to http://qa.php.net/buildtest-process.php Thank you for helping to make PHP better.

Any errors will be reported for you, and there you have it, you've helped make PHP more stable.

If you have multiple operating systems available to you (various Vagrant boxes rocking different environments, or a work laptop) then go and run the tests there too. The more this is run on different environments the better.

Finally, if you're using PHP 5.4 on your servers, why not make a PHP 5.5 branch in your repo and test this out on a vagrant box somewhere? If your code needs changes then you can keep that branch up to date, so when PHP 5.5.0 final releases you're ready to go as soon as your servers upgrade. No harm, no foul.

PHP 5.5 looks awesome, so anything you can do to help get it stable means we all get it faster and less buggy.

Comments

Gravatar
Joe Watkins

2013-03-22

Good posting Phil :)

Just a quick note, your configure command will result in the build of a thread safe PHP ( which I would love people to test ), a standard installation on unix is not thread safe.

I would suggest those that are interested in running the tests for us run them twice, once against a thread safe build, and once against a standard PHP build.

Between the builds, one should execute "make distclean", and make test again.

Gravatar
Joe Watkins

2013-03-22

Something else just popped into my head ...

Should one not be interested in running all of the tests for every extension and you just want to verify that the extensions you use are going to work, you can run:

make test TESTS=ext/spl

for example, to run the SPL tests.

This might be preferable to running all tests for everything, for every build configuration.

PS. join this with the last if you like, sorry for the clutter :)

Gravatar
Robin Speekenbrink

2013-03-22

UIbuntu / Debian users might also want to add: sudo apt-get install autoconf gcc just to be complete ;)

Gravatar
Mark Hamstra

2013-03-22

Thanks Phil, for making it easy for developers (or CLI savvy designers!) to contribute to the php development process. It may not be much, but every test helps!

In trying to test on my MBA OS X 10.8.2, the ./buildconf was complaining about autoconf not being installed, so I had to do a quick brew install autoconf to get past that. It's running all the tests now. Considering the size of the source, I reckon it could take some time.

Gravatar
Joe Watkins

2013-03-25

You can drastically reduce build time by utilizing multiple jobs during the build. In general, you want to run as many make jobs as you have cores (or threads for those blessed with HT). On a quad without ht, issue

make -j4 make test

On a quad with HT, issue

make -j8 make test

With a standard set of extension on a quad with HT, and 2xSSD's in RAID0 (because I like living on the edge) php builds in 7 seconds flat with a populated ccache (because I compile PHP a billion times a week), probably about a minute with no cache, I can't even remember ....

Gravatar
Jordy Kroeze

2013-05-10

I use a clean Ubuntu 12.04.2 VPS I get this message:

FAILED TEST SUMMARY

Test function procnice() by substituting argument 1 with int values. [ext/standard/tests/generalfunctions/procnicevariation5.phpt]

Is there a solution to fix this, if can i skip this if it isnt a important part of PHP.

Posting comments after three months has been disabled.