Boost logo

Boost :

Subject: Re: [boost] Boost-1.62: How to get list of all dirs under 'run-tests libs:' target from status/Jamfile?
From: Rene Rivera (grafikrobot_at_[hidden])
Date: 2016-09-04 11:45:41

On Sat, Sep 3, 2016 at 5:09 PM, Sergey Sprogis <sergey.sprogis_at_[hidden]>

> I use latest Boost versions to test new C++ compiler in development stage.
> It's important for me to know what would be "pass rate" for every library
> which reports on its Regression Testing website.
> To calculate all those pass rates I created script which goes inside every
> library's 'test', 'example' or whatever subdirectory and launches bjam from
> there.
> It creates a separate logfile(s) for every library which I then analyze to
> calculate "pass rate".
> But before launching my script I need to know the whole list of dirs which
> uses for its Regression testing.
> In the previous Boost-1.61.0 version I was able to easily produce such
> list by extracting it from 'status/Jamfile.v2'. It looked like this:
> run-tests libs :
> accumulators/test # test-suite accumulators
> algorithm/test # test-suite algorithm
> algorithm/minmax/test # test-suite algorith/minmax
> ...
> concept_check # test-suite concept_check
> config/test # test-suite config
> container/bench # test-suite container benchmarks
> container/example # test-suite container_example
> .....
> As you may see this list contains not only 'test' subdirs, but also some
> others: 'example', 'bench', etc.
> But now the problem is that in Boost-1.62.0 'status/Jamfile.v2' does not
> have such full list anymore.
> Could anyone suggest me some hack how to produce the full list of tested
> libraries for Boost-1.62.0, similar to one which Boost-1.61.0 has?
> It would be nice if bjam will eventually have a special option which will
> allow to produce such list, but for now I'd appreciate just a hack which
> will help me to solve this issue.

You can get a list of all the tests that get, or will get, run from b2 with
the following:

% cd boost-root/status
% b2 -n -a -d0 --dump-tests

That will produce, interspersed with other output, lines like the following:

  boost-test(RUN) "accumulators/count" : "libs/accumulators/test/count.cpp"

One of those for each test that is tested. The format is:

  boost-test(<TYPE>) "<LIBRARY>/<TEST>" : "<SOURCE>"

Where LIBRARY can be of the form "<library>" or "<library>/<sublibrary>".
That should be sufficient to produce the results you want. And if you use
just the above list of tests it's likely to be more accurate than your
previous method. As the tests runs from the "boost-root/status" dir are not
alway the same as those run from the corresponding library dirs.

-- Rene Rivera
-- Grafik - Don't Assume Anything
-- Robot Dreams -
-- rrivera/ (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail

Boost list run by bdawes at, gregod at, cpdaniel at, john at