Boost logo

Boost-Build :

Subject: [Boost-build] run versus unit-test
From: Ian Emmons (iemmons_at_[hidden])
Date: 2009-05-26 18:23:27

I have seen numerous recommendation in this list to switch from using
the unit-test target to the newer "run" target. So I tried to do
that, but ran into a roadblock. Here is an abbreviated version of my
Jamfile (before the switch):

unit-test FooTest
   : [ glob *.cpp ]
   : <include>.

explicit config.txt ;
make config.txt : $(FooProjectDir)/config.txt : @common.copy ;

The key item of note here is that the unit test executable requires
the presence of config.txt in the same directory as the executable in
order to run properly. I have arranged for this by adding a
dependency to the unit-test target that copies the requisite file.
This works perfectly.

When I switch to the equivalent run target, the target that copies the
file does exactly what it did before, namely copy the file from the
project directory into a location like this:


But the run rule does not build the executable in this same
directory. Instead, it builds here:


Of course, the requisite config.txt file is not present in that
directory, so my tests fail.

So, I need to do one of two things. I either need to get the run
target to build in the usual place, or I need to copy the config.txt
file into the place that run uses to build. Either way, I don't see
how to do it. Any suggestions?

Thanks in advance,


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at