On Jun 10, 2011, at 1:19 PM, Ovanes Markarian <om_boost@keywallet.com> wrote:

On Fri, Jun 10, 2011 at 5:13 PM, Gennadiy Rozental <rogeeff@gmail.com> wrote:
 
2. Managing dependency should not be a problem IMO. Boost.Test has rather simple
model and running test units in parallel should not complicate it much.
But how do you see the dependencies in the tcs? Does it make sence to run a dependent tc if the main tc already failed? There must be some split, which splits tcs and considers their dependency graphs. What happens now if e.g. there is a cyclic dependency?

To me this resembles a data-flow problem. You can parallelize wherever it fans out, join() when a given test depends on multiple antecedents (if you can express such a thing in Boost.Test). The data item being passed is the bool expressing whether all previous tests along that path have succeeded; with multiple antecedents, you && the path results. A test is run only if all its inputs are true. Failure of a test passes false to its successors.

There's even a (Vault?) data-flow library... ;-)