[llvm] r201464 - Cleanup docs about lit substitutions
daniel.liew at imperial.ac.uk
Mon Mar 10 17:23:09 PDT 2014
Thanks for doing this Nico. I reported it a while ago  but didn't
hear anything so I assumed it wasn't going to be fixed, but you've
proved me wrong!
On 15 February 2014 08:35, Nico Rieck <nico.rieck at gmail.com> wrote:
> Author: nrieck
> Date: Sat Feb 15 02:35:56 2014
> New Revision: 201464
> URL: http://llvm.org/viewvc/llvm-project?rev=201464&view=rev
> Cleanup docs about lit substitutions
> Modified: llvm/trunk/docs/TestingGuide.rst
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/TestingGuide.rst?rev=201464&r1=201463&r2=201464&view=diff
> --- llvm/trunk/docs/TestingGuide.rst (original)
> +++ llvm/trunk/docs/TestingGuide.rst Sat Feb 15 02:35:56 2014
> @@ -337,69 +337,90 @@ triple, test with the specific FileCheck
> directory that will filter out all other architectures.
> -Variables and substitutions
> -With a RUN line there are a number of substitutions that are permitted.
> -To make a substitution just write the variable's name preceded by a ``$``.
> -Additionally, for compatibility reasons with previous versions of the
> -test library, certain names can be accessed with an alternate syntax: a
> -% prefix. These alternates are deprecated and may go away in a future
> -Here are the available variable names. The alternate syntax is listed in
> -``$test`` (``%s``)
> - The full path to the test case's source. This is suitable for passing on
> - the command line as the input to an LLVM tool.
> +Besides replacing LLVM tool names the following substitutions are performed in
> +RUN lines:
> -``%(line)``, ``%(line+<number>)``, ``%(line-<number>)``
> - The number of the line where this variable is used, with an optional
> - integer offset. This can be used in tests with multiple RUN lines,
> - which reference test file's line numbers.
> - The source directory from where the ``make check`` was run.
> - The object directory that corresponds to the ``$srcdir``.
> - A partial path from the ``test`` directory that contains the
> - sub-directory that contains the test source being executed.
> - The root directory of the LLVM src tree.
> - The root directory of the LLVM object tree. This could be the same as
> - the srcroot.
> - The path to the directory that contains the test case source. This is
> - for locating any supporting files that are not generated by the test,
> - but used by the test.
> + Replaced by a single ``%``. This allows escaping other substitutions.
> + File path to the test case's source. This is suitable for passing on the
> + command line as the input to an LLVM tool.
> + Example: ``/home/user/llvm/test/MC/ELF/foo_test.s``
> + Directory path to the test case's source.
> - The path to a temporary file name that could be used for this test case.
> + Example: ``/home/user/llvm/test/MC/ELF``
> + File path to a temporary file name that could be used for this test case.
> The file name won't conflict with other test cases. You can append to it
> if you need multiple temporaries. This is useful as the destination of
> some redirected output.
> -``target_triplet`` (``%target_triplet``)
> - The target triplet that corresponds to the current host machine (the one
> - running the test cases). This should probably be called "host".
> -``link`` (``%link``)
> - This full link command used to link LLVM executables. This has all the
> - configured ``-I``, ``-L`` and ``-l`` options.
> -``shlibext`` (``%shlibext``)
> - The suffix for the host platforms shared library (DLL) files. This
> - includes the period as the first character.
> + Example: ``/home/user/llvm.build/test/MC/ELF/Output/foo_test.s.tmp``
> + Directory of ``%t``.
> + Example: ``/home/user/llvm.build/test/MC/ELF/Output``
> + Expands to the path separator, i.e. ``:`` (or ``;`` on Windows).
> +**LLVM-specific substitutions:**
> + The suffix for the host platforms shared library files. This includes the
> + period as the first character.
> + Example: ``.so`` (Linux), ``.dylib`` (OS X), ``.dll`` (Windows)
> + The suffix for the host platforms executable files. This includes the
> + period as the first character.
> + Example: ``.exe`` (Windows), empty on Linux.
> +``%(line)``, ``%(line+<number>)``, ``%(line-<number>)``
> + The number of the line where this substitution is used, with an optional
> + integer offset. This can be used in tests with multiple RUN lines, which
> + reference test file's line numbers.
> +**Clang-specific substitutions:**
> + Invokes the Clang driver.
> + Invokes the Clang driver for C++.
> + Invokes the CL-compatible Clang driver.
> + Invokes the G++-compatible Clang driver.
> + Invokes the Clang frontend.
> +``%itanium_abi_triple``, ``%ms_abi_triple``
> + These substitutions can be used to get the current target triple adjusted to
> + the desired ABI. For example, if the test suite is running with the
> + ``i686-pc-win32`` target, ``%itanium_abi_triple`` will expand to
> + ``i686-pc-mingw32``. This allows a test to run with a specific ABI without
> + constraining it to a specific triple.
> +To add more substituations, look at ``test/lit.cfg`` or ``lit.local.cfg``.
> -To add more variables, look at ``test/lit.cfg``.
> Other Features
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
More information about the llvm-commits