On Wed, Aug 27, 2014 at 2:11 AM, Vladimir Prus <ghost@cs.msu.su> wrote:
On 08/26/2014 07:22 PM, Lee Clagett wrote:
If I have the following (truncated) Jamfile:

test-suite spirit_v2/karma :

      [ compile-fail karma/grammar_fail.cpp         : : karma_grammar_fail ]
      [ compile-fail karma/rule_fail.cpp            : : karma_rule_fail ]
      ;

How do I run just karma_rule_fail test, and not karma_grammar_fail? The following don't seem to work "b2 spirit_v2/karma/karma_rule_
fail", or "b2 karma_rule_fail". It is possible to run just a single test case in the suite, or is the suite the lowest-level target that can
be executed?

Hi Lee,

to be honest, I don't know what's happening here. The actual name of the target (as reported by --debug-building)
appears to be karma_grammar_fail-p3, and running

        b2 karma_grammar_fail-p3

does build that target. I don't recall any logic that would add "-p3" - does anybody else know?

- Volodya

I found it, the answer is in the same testing Jamfile:

rule run ( sources + : args * : input-files * : requirements * : target-name ? :  default-build * )
{
    target-name ?= $(sources[1]:D=:S=) ;
    v3_tests += [ testing.run $(sources) : $(args) : $(input-files) : $(requirements) : $(target-name)-p3 : $(default-build) ] ;
}

Spirit overrides the rules defined by the normal testing framework. One of the changes is that -p3 is added to any of the test names. Now that I know this, it will be easier to finish the testing I was working on, thanks.

Lee