| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" |
| "http://www.w3.org/TR/html4/strict.dtd"> |
| <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> |
| <html> |
| <head> |
| <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| <title>Testing libc++ using LIT</title> |
| <link type="text/css" rel="stylesheet" href="menu.css"> |
| <link type="text/css" rel="stylesheet" href="content.css"> |
| <style> |
| .lit-option { |
| padding-top: 0.5em; |
| margin-bottom: 0.0em; |
| font-size: medium; |
| color: #2d58b7 |
| } |
| .lit-option-desc { |
| display: block; |
| margin-top: 0em; |
| margin-bottom: 0em; |
| margin-left: 20px; |
| margin-right: 20px; |
| } |
| </style> |
| </head> |
| |
| <body> |
| <div id="menu"> |
| <div> |
| <a href="http://llvm.org/">LLVM Home</a> |
| </div> |
| |
| <div class="submenu"> |
| <label>libc++ Info</label> |
| <a href="/index.html">About</a> |
| </div> |
| |
| <div class="submenu"> |
| <label>Quick Links</label> |
| <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> |
| <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a> |
| <a href="http://llvm.org/bugs/">Bug Reports</a> |
| <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a> |
| <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a> |
| </div> |
| </div> |
| |
| <div id="content"> |
| <!--*********************************************************************--> |
| <h1>Testing libc++ using LIT</h1> |
| <!--*********************************************************************--> |
| <p> |
| libc++ uses LIT to configure and run its tests. The primary way to run the |
| libc++ tests is by using <code>make check-libcxx</code>. However since libc++ |
| can be used in any number of possible configurations it is important to |
| customize the way LIT builds and runs the tests. This guide provides |
| information on how to use LIT directly to test libc++. |
| </p> |
| <p> |
| Documentation for LIT can be found |
| <a href="http://llvm.org/docs/CommandGuide/lit.html">here</a>. |
| </p> |
| |
| <!--*********************************************************************--> |
| <h2>Getting Started</h2> |
| <!--*********************************************************************--> |
| <p> |
| After building libc++ use the following commands before you start using LIT to |
| test. |
| </p> |
| <ul> |
| <li><code>alias lit='python path/to/llvm/utils/lit/lit.py'</code></li> |
| <li><code>export LIBCXX_SITE_CONFIG=path/to/build-libcxx/test/lit.site.cfg</code></li> |
| </ul> |
| <p> |
| You can now run the libc++ tests by running: |
| </p> |
| <ul> |
| <li><code>cd path/to/libcxx</code></li> |
| <li><code>lit -sv ./test</code></li> |
| </ul> |
| <p> |
| To only run a subsection of the tests use: |
| <ul> |
| <li><code>lit -sv test/std/numerics # Run only the numeric tests</code></li> |
| </ul> |
| |
| <!--*********************************************************************--> |
| <h2>Customization Options</h2> |
| <!--*********************************************************************--> |
| <p> |
| libc++'s testsuite provides multiple options to configure the way the tests |
| are build and run. To use these options you pass them on the LIT command line |
| as <code>--param NAME</code> or <code>--param NAME=VALUE</code>. Some options |
| have default values specified during CMake's configuration. Passing the option |
| on the command line will override the default. |
| </p> |
| |
| |
| <p> |
| <h3 class="lit-option">libcxx_site_config=<path/to/lit.site.cfg></h3> |
| <blockquote class="lit-option-desc"> |
| Specify the site configuration to use when running the tests. This option |
| overrides the enviroment variable <code>LIBCXX_SITE_CONFIG</code> |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">libcxx_headers=<path/to/headers></h3> |
| <blockquote class="lit-option-desc"> |
| Specify the libc++ headers that are tested. By default the headers in the source |
| tree are used. |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">libcxx_library=<path/to/libc++.so></h3> |
| <blockquote class="lit-option-desc"> |
| Specify the libc++ library that is tested. By default the library in the build |
| directory is used. This option cannot be used when <code>use_system_lib</code> |
| is provided. |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">use_system_lib=<bool></h3> |
| <blockquote class="lit-option-desc"> |
| <b>Default: </b><code>False</code></br> |
| Enable or disable testing against the installed version of libc++ library. |
| Note: This does not use the installed headers. |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">use_lit_shell=<bool></h3> |
| <blockquote class="lit-option-desc"> |
| Enable or disable the use of LIT's internal shell in ShTests. If the enviroment |
| variable <code>LIT_USE_INTERNAL_SHELL</code> is present then that is used as the |
| default value. Otherwise the default value is <code>True</code> on Windows and |
| <code>False</code> on every other platform. |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">no_default_flags=<bool></h3> |
| <blockquote class="lit-option-desc"> |
| <b>Default: </b><code>False</code></br> |
| Disable all default compile and link flags from being added. When this option is |
| used only flags specified using the <code>compile_flags</code> and |
| <code>link_flags</code> will be used. |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">compile_flags="<list-of-args>"</h3> |
| <blockquote class="lit-option-desc"> |
| Specify additional compile flags as a space delimited string. |
| Note: This options should not be used to change the standard version used. |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">link_flags="<list-of-args>"</h3> |
| <blockquote class="lit-option-desc"> |
| Specify additional link flags as a space delimited string. |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">std=<standard version></h3> |
| <blockquote class="lit-option-desc"> |
| <b>Values: </b><code>c++98, c++03, c++11, c++14, c++1z</code></br> |
| Change the standard version used when building the tests. |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">debug_level=<level></h3> |
| <blockquote class="lit-option-desc"> |
| <b>Values: </b><code>0, 1</code></br> |
| Enable the use of debug mode. Level 0 enables assertions and level 1 enables |
| assertions and debugging of iterator misuse. |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">use_sanitizer=<sanitizer name></h3> |
| <blockquote class="lit-option-desc"> |
| <b>Values: </b><code>Memory, MemoryWithOrigins, Address, Undefined</code></br> |
| Run the tests using the given sanitizer. If <code>LLVM_USE_SANITIZER</code> |
| was given when building libc++ then that sanitizer will be used by default. |
| </blockquote> |
| </p> |
| |
| <p> |
| <h3 class="lit-option">color_diagnostics</h3> |
| <blockquote class="lit-option-desc"> |
| Enable the use of colorized compile diagnostics. If the |
| <code>color_diagnostics</code> option is specified or the enviroment variable |
| <code>LIBCXX_COLOR_DIAGNOSTICS</code> is present then color diagnostics will be |
| enabled. |
| </blockquote> |
| </p> |
| |
| </div> |
| </body> |
| </html> |