Eric Wilhelm wrote:
Hi all,
I was just thinking that since my tests are nicely orthogonal and yet
there's very little cpu utilization during testing, that I could
probably get them done about 20x faster if they were parallelized.
Has anyone looked at doing this with TAPx::Harness or otherwise? Is
there a big underlying assumption that I'm missing which would prevent
tests from being run concurrently in different processes (or on
different machines?)
One thing that strikes me as a problem is transitory resources used by
tests. I know I have a number of modules that will create (deleting if
they already exist) various files during their run (cleaning up at the end).
Each test is still independent (they randomize just fine) but if you ran
two at the same time they could wallop each other's data.
Short of running each test in some sort of transactional file system (do
such things exist? Are they common?) or cloning the build directory
before each test, the only solution I can imagine is some sort of thing
in the (Makefile|Build).PL that explicitly states that the tests are
allowed to run in parallel, which can then be passed on to the testing
process...
Adam K