From: Reece Dunn (msclrhd_at_[hidden])
Date: 2004-04-24 08:58:07
>Here my wish list for tbe bjam/build/... etc system. (I don't really
>expect a response to this but if someone wants to - a separate thread
>d) the compiler_status html table build is a good start. But not
I assume that this is the regression test code (tools/regression).
>quite there. The problem is doesn't handle multiple combinations
>very well. What I would like is:
>compiler_status [-rows list] [-columns column]
>list := <null>
>list := list | attribute
>attribute := compiler | test | toolset | libtype | debug/release mode
>list := <null> // implies all attribute not otherwise mentioned
>the resulting table would be pivoted according to the command line so
>that the command line
>compiler_status -rows test archive -columns toolset debug/releasemode
>would produce a table that looks like:
>test archive | VC 7.1 | gcc 3.2 |
> |debug|release|debug|release| ...
>Map text |
> xml |
>Ptrs text |
> xml |
The regression test suite works from a shell script (runnable on
cygwin/Windows using sh/bash or linux, etc). This passes tool information to
bjam to run the tests for the appropriate toolset passing this through a
bjam output processor that converts the bjam output into an XML format
(process_jam_log.cpp). This is then used by compiler_status.cpp which
produces the compiler-status tables.
You may also want to look at my test suite (boost-sandbox/libs/outfmt/text):
this does a similar thing to compiler_status and what you want, but instead
of using the bjam tool, it uses its own test_engine class that loads an
existing XML file, adds data to it, then writes it back out again. The
results table is then generated using XSL:T code.
NOTE: Because this loads in the old XML file, it retains the results.
>Of course I realize that part of this is probably not possible
>(archive) but the rest is attainable. I also realize that this is
>really of interest only to a few people so the effort isn't
>justifiable. BUT since, I'm just wishing I might as well be bold.
>From what I can see, it all comes down to how you structure the XML data,
then you need to write the code to add this data to the xml file, or how to
process the bjam output to get the structure you want. Maybe you could pass
information to the bjam processing program, e.g.:
bjam -v2 $tool $mode | serlog --text
or you could name the text tests *_text.cpp and the XML ones *_xml.cpp, that
way, you get
and can thus test if the line contains _text.obj or _xml.obj to identify
Once you have the XML data, you then need to work out how to process it: via
program code or, as a better option, through XSL:T code (easier to write,
more maintainable, multiple views, etc.). It should be fairly easy to
generate the layout you want.
NOTE: If you want any help writing the XSL:T code, I'd be happy to help.
Sign-up for a FREE BT Broadband connection today!
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