| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Language" content="en-us" />
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
- <link rel="stylesheet" type="text/css" href=
- "../../../doc/html/boostbook.css" />
- <title>Libary Status</title>
- <style type="text/css">
- /*<![CDATA[*/
- span.c3 {color: #FF0000; font-style: italic}
- a.c2 {font-style: italic}
- td.c1 {font-style: italic}
- /*]]>*/
- </style>
- </head>
- <body>
- <table border="0">
- <tr>
- <td><img border="0" src="../../../boost.png" width="277" height="86"
- alt="boost.png (6897 bytes)" /></td>
- <td>
- <h1>Generating Library Status Tables</h1>
- </td>
- </tr>
- </table>
- <h3>Purpose</h3>Any time one considers using a library as large and complex
- as the Boost libraries, he must have a way of validating the the library
- functions in his environment. This should be done when the library is
- installed and anytime questions are raised regarding its applicabililty
- and/or its usage.
- <p>The procedures described here permit a user to run any combination of
- tests on any or all libraries and generate a set of convenient tables which
- show which libraries pass which tests under what conditions.</p>
- <h3>Preliminaries</h3>Generating these tables requires a couple of utility
- programs: <code>process_jam_log</code> and <code>library_status</code>.
- These can be built by moving to the directory
- <code>tools/regression/build</code> and invoking bjam. If all goes well
- these utility programs will be found in the directory
- <code>dist/bin</code>. From there they should be moved to a place in the
- current path.
- <h3>Running Tests for One Library</h3>
- <ol>
- <li>Start from your command line environment.</li>
- <li>set the current directory to:../libs/<library name>/test</li>
- <li>Invoke one of the following:
- <ul>
- <li><code>../../../tools/regression/library_test (*nix)</code>.</li>
- <li><code>..\..\..\tools\regression\library_test
- (windows)</code>.</li>
- </ul>
- </li>
- <li>This will display short help message describing the how to set the
- command line arguments for the compilers and variants you want to appear
- in the final table.</li>
- <li>Setting these arguments requires rudimentary knowledge of bjam usage.
- Hopefully, if you've arrived at this page you've gained the required
- knowledge during the installation and library build process.</li>
- <li>Rerun the abve command with the argument set accordingly.</li>
- <li>When the command terminates, there should be a file named
- "library_status.html" in the current directory.</li>
- <li>Display this file with any web browser.</li>
- </ol>There should appear a table similar to the following for the regex
- library.
- <table border="1" cellspacing="0" cellpadding="5">
- <tr>
- <td rowspan="4">Test Name</td>
- <td align="center" colspan="4">msvc-7.1</td>
- </tr>
- <tr>
- <td align="center" colspan="2">debug</td>
- <td align="center" colspan="2">release</td>
- </tr>
- <tr>
- <td align="center">link-static</td>
- <td align="center" rowspan="2">threading-multi</td>
- <td align="center">link-static</td>
- <td align="center" rowspan="2">threading-multi</td>
- </tr>
- <tr>
- <td align="center">threading-multi</td>
- <td align="center">threading-multi</td>
- </tr>
- <tr>
- <td>bad_expression_test</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-bad_expression_test.test-msvc-7.1-debug-threading-multi">
- Warn</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-bad_expression_test.test-msvc-7.1-release-threading-multi">
- Warn</a></td>
- </tr>
- <tr>
- <td>captures</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-captures-msvc-7.1-debug-threading-multi">
- <span class="c3">Fail</span></a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-captures-msvc-7.1-release-threading-multi">
- <span class="c3">Fail</span></a></td>
- </tr>
- <tr>
- <td>captures_test</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-captures_test.test-msvc-7.1-debug-threading-multi">
- Warn</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-captures_test.test-msvc-7.1-release-threading-multi">
- Warn</a></td>
- </tr>
- <tr>
- <td>concept_check</td>
- <td class="c1" align="right">Missing</td>
- <td align="right">Pass</td>
- <td class="c1" align="right">Missing</td>
- <td align="right">Pass</td>
- </tr>
- <tr>
- <td>icu_concept_check</td>
- <td class="c1" align="right">Missing</td>
- <td align="right">Pass</td>
- <td class="c1" align="right">Missing</td>
- <td align="right">Pass</td>
- </tr>
- <tr>
- <td>object_cache_test</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-object_cache_test.test-msvc-7.1-debug-threading-multi">
- Warn</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-object_cache_test.test-msvc-7.1-release-threading-multi">
- Warn</a></td>
- </tr>
- <tr>
- <td>posix_api_check</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-posix_api_check.test-msvc-7.1-debug-threading-multi">
- Warn</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-posix_api_check.test-msvc-7.1-release-threading-multi">
- Warn</a></td>
- </tr>
- <tr>
- <td>posix_api_check_cpp</td>
- <td class="c1" align="right">Missing</td>
- <td align="right">Pass</td>
- <td class="c1" align="right">Missing</td>
- <td align="right">Pass</td>
- </tr>
- <tr>
- <td>recursion_test</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-recursion_test.test-msvc-7.1-debug-threading-multi">
- Warn</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-recursion_test.test-msvc-7.1-release-threading-multi">
- Warn</a></td>
- </tr>
- <tr>
- <td>regex_config_info</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-regex_config_info.test-msvc-7.1-debug-threading-multi">
- Pass</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-regex_config_info.test-msvc-7.1-release-threading-multi">
- Pass</a></td>
- </tr>
- <tr>
- <td>regex_dll_config_info</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-regex_dll_config_info.test-msvc-7.1-debug-threading-multi">
- Pass</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-regex_dll_config_info.test-msvc-7.1-release-threading-multi">
- Pass</a></td>
- </tr>
- <tr>
- <td>regex_regress</td>
- <td align="right"><a href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-regex_regress.test-msvc-7.1-debug-link-static-threading-multi">
- Pass</a><sup>*</sup></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-regex_regress.test-msvc-7.1-release-link-static-threading-multi">
- Pass</a><sup>*</sup></td>
- <td class="c1" align="right">Missing</td>
- </tr>
- <tr>
- <td>regex_regress_dll</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-regex_regress_dll.test-msvc-7.1-debug-threading-multi">
- Pass</a><sup>*</sup></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-regex_regress_dll.test-msvc-7.1-release-threading-multi">
- Pass</a><sup>*</sup></td>
- </tr>
- <tr>
- <td>regex_regress_threaded</td>
- <td class="c1" align="right">Missing</td>
- <td align="right">Pass</td>
- <td class="c1" align="right">Missing</td>
- <td align="right">Pass</td>
- </tr>
- <tr>
- <td>static_mutex_test</td>
- <td class="c1" align="right">Missing</td>
- <td align="right">Pass</td>
- <td class="c1" align="right">Missing</td>
- <td align="right">Pass</td>
- </tr>
- <tr>
- <td>test_collate_info</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-test_collate_info.test-msvc-7.1-debug-threading-multi">
- Warn</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-test_collate_info.test-msvc-7.1-release-threading-multi">
- Warn</a></td>
- </tr>
- <tr>
- <td>unicode_iterator_test</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-unicode_iterator_test.test-msvc-7.1-debug-threading-multi">
- Warn</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-unicode_iterator_test.test-msvc-7.1-release-threading-multi">
- Warn</a></td>
- </tr>
- <tr>
- <td>wide_posix_api_check_c</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-wide_posix_api_check_c.test-msvc-7.1-debug-threading-multi">
- Warn</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-wide_posix_api_check_c.test-msvc-7.1-release-threading-multi">
- Warn</a></td>
- </tr>
- <tr>
- <td>wide_posix_api_check_cpp</td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-wide_posix_api_check_cpp.test-msvc-7.1-debug-threading-multi">
- Warn</a></td>
- <td class="c1" align="right">Missing</td>
- <td align="right"><a class="c2" href=
- "links.html#C:-Boost134-bin.v2-libs-regex-test-wide_posix_api_check_cpp.test-msvc-7.1-release-threading-multi">
- Warn</a></td>
- </tr>
- </table>
- <p>This table was generated by invoking the following command line:</p>
- <p><code>../../../tools/regression/library_test --toolset=msvc-7.1
- variant=debug,release</code></p>
- <p>from within the .../libs/regex/test directory.</p>
- <p>This table shows the regex test results for both debug and release
- versions of the library. Also it displays the fact that one of the tests is
- run specifically with the static linking/multi-threading versions of the
- runtime libraries. The cells marked "Missing" correspond to tests that were
- not run for some reason or another. This is usually because the
- corresponding <code>Jamfile.v2</code> excludes this test for the given
- combination of compiler and build attributes. In this example, all tests
- were run with the same compiler. If additional compilers were used, they
- would appear as more columns in the table.</p>
- <p>The table above is just an illustration so the links don't actually
- point to anything. In the table you generated, the links will display a
- page describing any errors, warnings or other available information about
- the tests. If the test passes, usually, there is no additional information
- and hence no link.</p>
- <p>The tables are cumulative. That is, if you run one set of tests now and
- tests with different attributes later, the table will contain all the
- results to date. The test results are stored in
- <code>../bin.v2/libs/test/<library%gt;/...</code>. To reinitialize the
- test results to empty, delete the corresponding files in this
- directory.</p>
- <p>The procedure above assumes that the table are generated within the
- directory <code>../libs/<library>/test</code>. This is the most
- common case since this directory contains the <code>Jamfile.v2</code> as
- well as the source code that is used by official boost testers. However,
- this is just a convention. The table can be generated for other directories
- within the libary. One possiblity would be to generate the table for all
- the examples in <code>../libs/%lt;library%gt;/example</code>. Or one might
- have a special directory of performance tests which take a long time to run
- and hence are not suitable for running by official boost testers. Just
- remember that library status table is generated in the directory from which
- the <code>library_test</code> command is invoked.</p>
- <h3>Running Tests for All Libraries</h3>For those with *nix or cygwin
- command line shells, there is shell script that can be run from the boost
- root directory:
- <p><code>tools/regression/library_test_all</code></p>
- <p>The command line arguments are the same as for running the test for one
- library. This script creates all the html files in all the test directories
- as well as an html page in the <code>status</code> directory named
- <code>library_status_summary.html</code>. This can be used to browse
- through all test results for all test in all libraries.</p>
- <hr />
- <p>Copyright 2007 Robert Ramey. Distributed under the Boost Software
- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or
- http://www.boost.org/LICENSE_1_0.txt)</p>
- <p>Revised $Date$</p>
- </body>
- </html>
|