library_status.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Language" content="en-us">
  4. <meta http-equiv="Content-Type"
  5. content="text/html; charset=iso-8859-1">
  6. <title>Libary Status</title>
  7. </head>
  8. <body bgcolor="#FFFFFF">
  9. <table border="0">
  10. <tr>
  11. <td><img border="0" src="../../boost.png" width="277" height="86" alt="boost.png (6897 bytes)"></td>
  12. <td><h1>Generating Library Status Tables</h1></td>
  13. </tr>
  14. </table>
  15. <h3>Purpose</h3>
  16. Any time one considers using a library as large and complex
  17. as the Boost libraries, he must have a way of validating
  18. the the library functions in his environment. This should
  19. be done when the library is installed and anytime questions
  20. are raised regarding its applicabililty and/or its usage.
  21. <p>
  22. The procedures described here permit a user to run any
  23. combination of tests on any or all libraries and generate
  24. a set of convenient tables which show which libraries
  25. pass which tests under what conditions.
  26. <h3>Preliminaries</h3>
  27. Generating these tables requires a couple of utility programs:
  28. <code>process_jam_log</code> and <code>library_status</code>.
  29. These can be built by moving to the directory <code>tools/regression/build</code>
  30. and invoking bjam. If all goes well these utility programs
  31. will be found in the directory <code>dist/bin</code>. From
  32. there they should be moved to a place in the current
  33. path.
  34. <p>
  35. <h3>Running Tests for One Library</h3>
  36. <ol>
  37. <li>Start from your command line environment.
  38. <li>set the current directory to:../libs/&lt;library name&gt;/test
  39. <li>Invoke one of the following:
  40. <ul>
  41. <li><code>../../../tools/regression/library_test (*nix)</code>.
  42. <li><code>..\..\..\tools\regression\library_test (windows)</code>.
  43. </ul>
  44. <li>This will display short help message describing the how to set
  45. the command line arguments for the compilers and variants you want to
  46. appear in the final table.
  47. <li>Setting these arguments requires rudimentary knowledge of bjam
  48. usage. Hopefully, if you've arrived at this page you've gained the
  49. required knowledge during the installation and library build process.
  50. <li>Rerun the abve command with the argument set accordingly.
  51. <li>When the command terminates, there should be a file named
  52. "library_status.html" in the current directory.
  53. <li>Display this file with any web browser.
  54. </ol>
  55. There should appear a table similar to the following for the regex
  56. library.
  57. <p>
  58. <table border="1" cellspacing="0" cellpadding="5">
  59. <tr>
  60. <td rowspan="4">Test Name</td>
  61. <td align="center" colspan="4" >msvc-7.1</td>
  62. </tr><tr>
  63. <td align="center" colspan="2" >debug</td>
  64. <td align="center" colspan="2" >release</td>
  65. </tr><tr>
  66. <td align="center" >link-static</td>
  67. <td align="center" rowspan="2" >threading-multi</td>
  68. <td align="center" >link-static</td>
  69. <td align="center" rowspan="2" >threading-multi</td>
  70. </tr><tr>
  71. <td align="center" >threading-multi</td>
  72. <td align="center" >threading-multi</td>
  73. </tr><tr><td>bad_expression_test</a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-bad_expression_test.test-msvc-7.1-debug-threading-multi"><i>Warn</i></a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-bad_expression_test.test-msvc-7.1-release-threading-multi"><i>Warn</i></a></td></tr>
  74. <tr><td>captures</a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-captures-msvc-7.1-debug-threading-multi"><font color="#FF0000"><i>Fail</i></font></a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-captures-msvc-7.1-release-threading-multi"><font color="#FF0000"><i>Fail</i></font></a></td></tr>
  75. <tr><td>captures_test</a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-captures_test.test-msvc-7.1-debug-threading-multi"><i>Warn</i></a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-captures_test.test-msvc-7.1-release-threading-multi"><i>Warn</i></a></td></tr>
  76. <tr><td>concept_check</a></td><td align="right"><i>Missing</i></td><td align="right">Pass</td><td align="right"><i>Missing</i></td><td align="right">Pass</td></tr>
  77. <tr><td>icu_concept_check</a></td><td align="right"><i>Missing</i></td><td align="right">Pass</td><td align="right"><i>Missing</i></td><td align="right">Pass</td></tr>
  78. <tr><td>object_cache_test</a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-object_cache_test.test-msvc-7.1-debug-threading-multi"><i>Warn</i></a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-object_cache_test.test-msvc-7.1-release-threading-multi"><i>Warn</i></a></td></tr>
  79. <tr><td>posix_api_check</a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-posix_api_check.test-msvc-7.1-debug-threading-multi"><i>Warn</i></a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-posix_api_check.test-msvc-7.1-release-threading-multi"><i>Warn</i></a></td></tr>
  80. <tr><td>posix_api_check_cpp</a></td><td align="right"><i>Missing</i></td><td align="right">Pass</td><td align="right"><i>Missing</i></td><td align="right">Pass</td></tr>
  81. <tr><td>recursion_test</a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-recursion_test.test-msvc-7.1-debug-threading-multi"><i>Warn</i></a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-recursion_test.test-msvc-7.1-release-threading-multi"><i>Warn</i></a></td></tr>
  82. <tr><td>regex_config_info</a></td><td align="right"><i>Missing</i></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 align="right"><i>Missing</i></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>
  83. <tr><td>regex_dll_config_info</a></td><td align="right"><i>Missing</i></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 align="right"><i>Missing</i></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>
  84. <tr><td>regex_regress</a></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 align="right"><i>Missing</i></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 align="right"><i>Missing</i></td></tr>
  85. <tr><td>regex_regress_dll</a></td><td align="right"><i>Missing</i></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 align="right"><i>Missing</i></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>
  86. <tr><td>regex_regress_threaded</a></td><td align="right"><i>Missing</i></td><td align="right">Pass</td><td align="right"><i>Missing</i></td><td align="right">Pass</td></tr>
  87. <tr><td>static_mutex_test</a></td><td align="right"><i>Missing</i></td><td align="right">Pass</td><td align="right"><i>Missing</i></td><td align="right">Pass</td></tr>
  88. <tr><td>test_collate_info</a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-test_collate_info.test-msvc-7.1-debug-threading-multi"><i>Warn</i></a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-test_collate_info.test-msvc-7.1-release-threading-multi"><i>Warn</i></a></td></tr>
  89. <tr><td>unicode_iterator_test</a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-unicode_iterator_test.test-msvc-7.1-debug-threading-multi"><i>Warn</i></a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-unicode_iterator_test.test-msvc-7.1-release-threading-multi"><i>Warn</i></a></td></tr>
  90. <tr><td>wide_posix_api_check_c</a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-wide_posix_api_check_c.test-msvc-7.1-debug-threading-multi"><i>Warn</i></a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-wide_posix_api_check_c.test-msvc-7.1-release-threading-multi"><i>Warn</i></a></td></tr>
  91. <tr><td>wide_posix_api_check_cpp</a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-wide_posix_api_check_cpp.test-msvc-7.1-debug-threading-multi"><i>Warn</i></a></td><td align="right"><i>Missing</i></td><td align="right"><a href="links.html#C:-Boost134-bin.v2-libs-regex-test-wide_posix_api_check_cpp.test-msvc-7.1-release-threading-multi"><i>Warn</i></a></td></tr>
  92. </table>
  93. <p>
  94. This table was generated by invoking the following command line:
  95. <p>
  96. <code>
  97. ../../../tools/regression/library_test --toolset=msvc-7.1 variant=debug,release
  98. </code>
  99. <p>
  100. from within the .../libs/regex/test directory.
  101. <p>
  102. This table shows the regex test results for both debug and release
  103. versions of the library. Also it displays the fact that one of the
  104. tests is run specifically with the static linking/multi-threading
  105. versions of the runtime libraries. The cells marked "Missing" correspond
  106. to tests that were not run for some reason or another. This is usually
  107. because the corresponding <code>Jamfile.v2</code> excludes this test
  108. for the given combination of compiler and build attributes. In this
  109. example, all tests were run with the same compiler. If additional
  110. compilers were used, they would appear as more columns in the table.
  111. <p>
  112. The table above is just an illustration so the links don't actually
  113. point to anything. In the table you generated, the links will
  114. display a page describing any errors, warnings or other available
  115. information about the tests. If the test passes, usually, there
  116. is no additional information and hence no link.
  117. <p>
  118. The tables are cumulative. That is, if you run one set of tests
  119. now and tests with different attributes later, the table will
  120. contain all the results to date. The test results are stored
  121. in <code>../bin.v2/libs/test/&lt;library%gt;/...</code>.
  122. To reinitialize the test results to empty, delete the corresponding
  123. files in this directory.
  124. <p>
  125. The procedure above assumes that the table are generated within
  126. the directory <code>../libs/&lt;library&gt;/test</code>. This is the
  127. most common case since this directory contains the
  128. <code>Jamfile.v2</code> as well as the source code that is
  129. used by official boost testers. However, this is just a convention.
  130. The table can be generated for other directories within the
  131. libary. One possiblity would be to generate the table for
  132. all the examples in <code>../libs/%lt;library%gt;/example</code>. Or
  133. one might have a special directory of performance tests which
  134. take a long time to run and hence are not suitable for running
  135. by official boost testers. Just remember that library
  136. status table is generated in the directory from which the
  137. <code>library_test</code> command is invoked.
  138. <p>
  139. <h3>Running Tests for All Libraries</h3>
  140. For those with *nix or cygwin command line shells, there is shell
  141. script that can be run from the boost root directory:
  142. <p>
  143. <code> tools/regression/library_test_all</code>
  144. <p>
  145. The command line arguments are the same as for running the test
  146. for one library. This script creates all the html files in all
  147. the test directories as well as an html page in the <code>status</code>
  148. directory named <code>library_status_summary.html</code>. This
  149. can be used to browse through all test results for all test in
  150. all libraries.
  151. <hr>
  152. <p>
  153. Copyright 2007 Robert Ramey. Distributed under the Boost Software License, Version 1.0.
  154. (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  155. <p>
  156. Revised <!--webbot bot="Timestamp" startspan s-type="EDITED"
  157. s-format="%d %B, %Y" -->14 August, 2007<!--webbot bot="Timestamp"
  158. i-checksum="38582" endspan --></p>
  159. </body>
  160. </html>
粤ICP备19079148号