Boost logo

Boost :

Subject: Re: [boost] The problems with Boost development
From: Robert Ramey (ramey_at_[hidden])
Date: 2010-03-24 13:25:01

Dave Abrahams wrote:
> Robert Ramey <ramey <at>> writes:
>> I can't figure
>> out how other authors run all the tests in their particular libraries
>> prior to checking in or how users verify that any particular
>> library works in their environment without some sort of tool
>> such as this.
> I just run bjam (from within emacs using `M-x compile RET bjam RET').
> At the end it tells me if there were failures. If there were, I hit
> f4 (which I've bound to "show me the next error") and go look at the
> problem. It brings me right to the source line in question and
> highlights the error, right there in the program I use to edit code.
> I find that much easier
> than trying to deal with it through a web interface. I guess it never
> occurred to me what a PITA this must be fore people who don't have
> something similar set up!

Actually this is an entirely different problem - with an entirely different
solution. What I do is the following:

* I use msvc 7.1 for my "default" development platform.
* I have a VCIDE "project" for each serialization library (narrow and wide
a project for each test, and a project for each demo. Each test project has
a "after build" command which runs the test any time it is rebuilt.
* I have a VCIDE "solution" which contains all of the above projects.
* I also have some "configurations" for switching build types to dll, static
debug, release, etc.

So here's my work flow.

a) User reports a problem with small example
b) I paste his source into a special project I have for this purpose
c) I build the test_zmisc project. If it fails to build with a compile
error, I can
jump right to the code and address it - this includes code in other projects
such as libraries.
d) I use the MSVC debugger (the gold standard in my opinion) to trace
and discover the problem.
e) I tweak code in headers/libraries until I think i've addressed the

Now, I want to re-run ALL the tests so that I'm not playing whack-a-mole.

For THIS I use library_test (.sh or bat) to update my giant test results
table. I can't imagine doing this by running bjam for each combination
of compiler, and build variant. It seems that it's either that or just
the changes and watch the trunk tests. The latter doesn't provide the
instant gratification that I require.

When my table is updated, I can click to see the messages associated with
any failure. Then I go back to my MSVC environment to described above.

To my mind, there is no feature of this procedure that I think I can
do without. I can't see how anyone can do this kind of work without
these components:

* IDE to build, test and debug particular tests (I would guess EMACS
fullfills this need)
* The ability to run a large number of tests in one's local environment and
the browsing of results.

How do people do this later task without something like library_test? What
other people do instead?

Just so you can see what I'm talking about, here is sample output from

Robert Ramey

> not-an-editor-but-an-operating-system-ly y'rs
> Dave
> _______________________________________________
> Unsubscribe & other changes:

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