
On Aug 8, 2007, at 10:23 AM, David Abrahams wrote:
Bill just sent me this clarification privately: they can handle parallel *builds* (with some caveats I didn't really understand that made it sound somewhat unreliable), just not parallel (runtime) *tests*. Why these two kinds of action should be treated so differently is a bit of a mystery to me.
It's a different model. The CMake/CTest way of handling tests is to first do a full build of the source tree, including any additional test executables. CMake does the build, and it's exactly the same build that a user would do (although most users would opt not to build extra testing-only executables). That "build" step can be parallelized. CTest then runs the test suite, invoking those test executables and recording the results. This step is still serial. It's not conclusive proof that parallel builds will always work, but while we were working on the CMake-based build system, I was using "make -j4" for the build step of nightly regression testing on a 2- core machine. It made a big difference in regression-testing time, and we never saw any builds broken or any output mangled. - Doug