Boost logo

Boost Interest :

Subject: Re: [Boost-cmake] Testing dependencies
From: Brad King (brad.king_at_[hidden])
Date: 2009-06-08 09:17:12


David Abrahams wrote:
> I just realized we need a feature (surprise!)
>
> When I'm working on a Boost library, I need to be able to fire off all
> the tests of libraries that depend on the one I'm changing, to make sure
> I'm not breaking anything in the library collection before I check in.

We discussed this at length during the BoostCon meeting, right?
Currently CTest always runs all tests, which is *sufficient* to catch
breakages. The problem is that it is not *necessary* to run all tests.

This is the incremental re-testing feature. CTest is not aware of any
build-system dependencies since they are all stored in platform-specific
ways. Making it aware would require implementing most of a build-system
in CTest.

The solution to this problem was the last step of those we outlined on
the board near the end of the meeting. We need to convert all tests to
normal build rules using custom commands created by CMake. Then full
build-system dependencies are available and incremental re-testing is
possible.

This is what Troy's custom-target-per-test approach last year tried to
do, but it was not scalable. Instead all tests for each library need
to be combined into one custom target that uses custom commands to
drive tests. I can provide more details when the time comes.

However, the major step before that is to package all tests for each
library into test-driver executables. This is useful whether using
bjam or CMake because it drastically reduces the total link time
and disk space used for building tests.

-Brad


Boost-cmake list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk