From c8c3dbd91138972d000e2143b9c6070838c20bc1 Mon Sep 17 00:00:00 2001 From: Dmitri Gribenko Date: Thu, 29 Nov 2012 19:21:02 +0000 Subject: [PATCH] Documentation for FileCheck: use 'option' and 'program' directives. This enables option cross-referencing and now '--' in option names are no more turned into en dashes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168926 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/CommandGuide/FileCheck.rst | 68 ++++++++++++++++----------------- 1 file changed, 32 insertions(+), 36 deletions(-) diff --git a/docs/CommandGuide/FileCheck.rst b/docs/CommandGuide/FileCheck.rst index 5e145f620f1..3c46ee21303 100644 --- a/docs/CommandGuide/FileCheck.rst +++ b/docs/CommandGuide/FileCheck.rst @@ -4,57 +4,57 @@ FileCheck - Flexible pattern matching file verifier SYNOPSIS -------- -**FileCheck** *match-filename* [*--check-prefix=XXX*] [*--strict-whitespace*] +:program:`FileCheck` *match-filename* [*--check-prefix=XXX*] [*--strict-whitespace*] DESCRIPTION ----------- -**FileCheck** reads two files (one from standard input, and one specified on the -command line) and uses one to verify the other. This behavior is particularly -useful for the testsuite, which wants to verify that the output of some tool -(e.g. llc) contains the expected information (for example, a movsd from esp or -whatever is interesting). This is similar to using grep, but it is optimized -for matching multiple different inputs in one file in a specific order. +:program:`FileCheck` reads two files (one from standard input, and one +specified on the command line) and uses one to verify the other. This +behavior is particularly useful for the testsuite, which wants to verify that +the output of some tool (e.g. :program:`llc`) contains the expected information +(for example, a movsd from esp or whatever is interesting). This is similar to +using :program:`grep`, but it is optimized for matching multiple different +inputs in one file in a specific order. -The *match-filename* file specifies the file that contains the patterns to +The ``match-filename`` file specifies the file that contains the patterns to match. The file to verify is always read from standard input. OPTIONS ------- -**-help** +.. option:: -help Print a summary of command line options. -**--check-prefix** *prefix* +.. option:: --check-prefix prefix - FileCheck searches the contents of *match-filename* for patterns to match. By - default, these patterns are prefixed with "``CHECK:``". If you'd like to use a - different prefix (e.g. because the same input file is checking multiple - different tool or options), the **--check-prefix** argument allows you to specify - a specific prefix to match. + FileCheck searches the contents of ``match-filename`` for patterns to match. + By default, these patterns are prefixed with "``CHECK:``". If you'd like to + use a different prefix (e.g. because the same input file is checking multiple + different tool or options), the :option:`--check-prefix` argument allows you + to specify a specific prefix to match. -**--input-file** *filename* +.. option:: --input-file filename File to check (defaults to stdin). -**--strict-whitespace** +.. option:: --strict-whitespace By default, FileCheck canonicalizes input horizontal whitespace (spaces and tabs) which causes it to ignore these differences (a space will match a tab). - The **--strict-whitespace** argument disables this behavior. + The :option:`--strict-whitespace` argument disables this behavior. - -**-version** +.. option:: -version Show the version number of this program. EXIT STATUS ----------- -If **FileCheck** verifies that the file matches the expected contents, it exits -with 0. Otherwise, if not, or if an error occurs, it will exit with a non-zero -value. +If :program:`FileCheck` verifies that the file matches the expected contents, +it exits with 0. Otherwise, if not, or if an error occurs, it will exit with a +non-zero value. TUTORIAL -------- @@ -67,7 +67,6 @@ like this: ; RUN: llvm-as < %s | llc -march=x86-64 | FileCheck %s - This syntax says to pipe the current file ("``%s``") into ``llvm-as``, pipe that into ``llc``, then pipe the output of ``llc`` into ``FileCheck``. This means that FileCheck will be verifying its standard input (the llc output) @@ -93,7 +92,6 @@ against the filename argument specified (the original ``.ll`` file specified by ret void } - Here you can see some "``CHECK:``" lines specified in comments. Now you can see how the file is piped into ``llvm-as``, then ``llc``, and the machine code output is what we are verifying. FileCheck checks the machine code output to @@ -114,9 +112,10 @@ exists anywhere in the file. The FileCheck -check-prefix option ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The FileCheck ``-check-prefix`` option allows multiple test configurations to be -driven from one .ll file. This is useful in many circumstances, for example, -testing different architectural variants with llc. Here's a simple example: +The FileCheck :option:`-check-prefix` option allows multiple test +configurations to be driven from one `.ll` file. This is useful in many +circumstances, for example, testing different architectural variants with +:program:`llc`. Here's a simple example: .. code-block:: llvm @@ -194,7 +193,6 @@ can be used: ; CHECK: ret i8 } - FileCheck Pattern Matching Syntax ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -252,16 +250,14 @@ advantage of the fact that FileCheck is not actually line-oriented when it matches, this allows you to define two separate "``CHECK``" lines that match on the same line. - FileCheck Expressions ~~~~~~~~~~~~~~~~~~~~~ - -Sometimes there's a need to verify output which refers line numbers of the match -file, e.g. when testing compiler diagnostics. This introduces a certain -fragility of the match file structure, as CHECK: lines contain absolute line -numbers in the same file, which have to be updated whenever line numbers change -due to text addition or deletion. +Sometimes there's a need to verify output which refers line numbers of the +match file, e.g. when testing compiler diagnostics. This introduces a certain +fragility of the match file structure, as "``CHECK:``" lines contain absolute +line numbers in the same file, which have to be updated whenever line numbers +change due to text addition or deletion. To support this case, FileCheck allows using ``[[@LINE]]``, ``[[@LINE+]]``, ``[[@LINE-]]`` expressions in patterns. These