Boost logo

Boost Testing :

From: Anthony Williams (anthony_w.geo_at_[hidden])
Date: 2006-10-20 03:43:07

Roland Schwarz <roland.schwarz_at_[hidden]> writes:

> Anthony Williams wrote:
>> I just tried to start a run of regression tests against HEAD, and I keep
>> getting failures in bjam for the vc-6_5 and borland-5_8_2 toolsets, whilst
>> processing the jamfiles, before actually building anything.
> ...
>> * rule split-target-subvariant ( target-var properties-var toolset-var variant-var : subvariant )
>> * called with: ( sv-target sv-properties sv-toolset sv-variant : )
>> * missing argument subvariant
>> g:\boost\head\boost\tools/build/v1\boost-base.jam:2032:see definition of rule 'split-target-subvariant' being called
>> g:\boost\head\boost\tools/build/v1\boost-base.jam:1654: in link-libraries
>> g:\boost\head\boost\tools/build/v1\boost-base.jam:1857: in generate-dependencies
>> g:\boost\head\boost\tools/build/v1\boost-base.jam:1964: in subvariant-target
>> g:\boost\head\boost\tools/build/v1\boost-base.jam:2057: in main-target
>> g:\boost\head\boost\tools/build/v1\boost-base.jam:1369: in declare-local-target
>> g:\boost\head\boost\tools/build/v1\testing.jam:64: in boost-test
>> g:\boost\head\boost\tools/build/v1\testing.jam:552: in run
>> ..\libs\graph\test\Jamfile:78: in load-jamfiles
>> g:\boost\head\boost\tools/build/v1\allyourbase.jam:1778: in SubInclude
>> g:\boost\head\boost\tools/build/v1\allyourbase.jam:1366: in subinclude
>> Jamfile:32: in load-jamfiles
>> g:\boost\head\boost\tools\build\v1\bootstrap.jam:21: in boost-build
>> g:\boost\head\boost\boost-build.jam:16: in module scope
> Some time ago I stumbled accross a simmilar problem in test of
> ptr_container. The error is triggered when the serialization tests
> are required, but are not supported by the library. In turn the
> serialization depends on spirit which is not available for this
> compiler. However I do not exactly understand the meaning of the
> generated error message that is shown above. Nevertheless I was
> able to fix this problem, so the regressions are not completeley broken.
> All other available tests are compiled.

>From looking at the source, the call to split-target-subvariant is made with
the list of available subvariants to build for the library. I think this
means things like single/multi-threaded, dynamic/static linking. The problem
comes because there are no available subvariants for serialization on Borland
and vc-6_5 targets, so bjam complains that there is a missing parameter.

> My fix was to explicitly have boost build skip the build in this case.
> I have tried this and can check in a fix if wanted.

I would be interested to see how to do this.

> But to be honest, I think this is a general problem which should be
> solved in a more generic way by the build system. I.e. give a means
> to skip a build when some dependency is not fulfilled.

Definitely. Anyone more knowledgeable in Boost.Build care to help?


Anthony Williams
Software Developer
Just Software Solutions Ltd

Boost-testing list run by mbergal at