Boost logo

Boost-Build :

From: Eric Niebler (eric_at_[hidden])
Date: 2006-09-28 16:30:25


Rene Rivera wrote:
> Eric Niebler wrote:
>> I'm writing a Jamfile.v2 for some tests. I have two test suites, like:
>>
>> import testing ;
>>
>> {
>> test-suite blah : [ run stuff.cpp ] ;
>> }
>>
>> {
>> test-suite blah-ext : [ run experimental.cpp ] ;
>> }
>>
>> Now, I'd like only the blah test suite to run by default, and I want
>> blah-ext to run only if I explicitly request it. The BBv2 docs led me to
>> believe "explicit" would help me, and I believed it! Sadly, it seems not
>> to be the case. Regardless of where I put the "explicit blah-ext ;"
>> line, the blah-ext test suite always runs, whether I ask for it or not.
>>
>> What have I overlooked?
>
> Looking up the testing.jam code... "test-suite" isn't a target. All it
> does is make an alias for the other real test targets. So I don't think
> you can do what you want currently, but Voladya would know better.
> Perhaps this is related to this issue
> <http://zigzag.cs.msu.su/boost.build/ticket/68> I brought up long ago now.

Forgive the stupid questions that follow. Thus far, bbv2 has resisted
all my efforts to understand it, and I'm trying to discern where my
difficulty lay.

So, test-suite is not a target, and explicit only works on targets.
Fine. But what makes test-suite not a target? How can I tell based on
the syntax of:

    test-suite blah : [ blarg.cpp ] ;

that test-suite is not a target? Syntactically, it looks a lot like
things which are targets, right? Why are they (targets, aliases for
targets) syntactically identical if they don't behave alike?

Again, sorry if that's a stupid question.

-- 
Eric Niebler
Boost Consulting
www.boost-consulting.com

Boost-Build 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