multi-jobs run-tests.php
| From: | Raphael Geissert | Date: | Mon, 22 Feb 2010 01:11:46 +0000 |
| Subject: | multi-jobs run-tests.php | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-47014@lists.php.net to get a copy of this message | ||
Hi,
I've spent the last hours working on making run-tests.php be able to run
tests in parallel. The main reason being the time it takes to run the whole
testsuite even on multicore CPUs.
Attached is the first set of changes needed. It uses pcntl's fork and
sysvmsg to send some of the results back to the parent process.
Main functionalities still work, but the summary doesn't include failed
tests.
I plan to move away from sysvmsg because with the current implementation
killing the parent process can leave message queues open (nothing that can't
be fixed by adding a proper exit handler) and sysvmsg is not enabled by
default. Probably to something php://memory-based.
To support all the features under multi-jobs mode I think the proper fix is
to cleanup the code so that run_test() stores the state information via an
interface. This would make the code cleaner and would let multi-jobs mode
just change the state-storing interface.
How should I handle this? just by committing the changes? first sending them
here (to internals)? by contacting somebody else?
Cheers,
--
Raphael Geissert
Attachment: [text/x-patch] php_parallel_run-tests.patch
Attachment: [text/x-patch] php_parallel_run-tests.patch