1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/test/FileCheck/lit.local.cfg
Fangrui Song 6da5cc31da [FileCheck] Default --allow-unused-prefixes to false
Link: https://lists.llvm.org/pipermail/llvm-dev/2020-October/146162.html "[RFC] FileCheck: (dis)allowing unused prefixes"

If a downstream project using lit needs time for transition,
add the following to `lit.local.cfg`:

```
from lit.llvm.subst import ToolSubst

fc = ToolSubst('FileCheck', unresolved='fatal')
config.substitutions.insert(0, (fc.regex, 'FileCheck --allow-unused-prefixes'))
```

Differential Revision: https://reviews.llvm.org/D95849
2021-02-08 13:37:04 -08:00

57 lines
2.2 KiB
INI

import lit
# Use lit's internal shell to help guarantee test portability.
config.test_format = lit.formats.ShTest(execute_external=False)
# %ProtectFileCheckOutput should precede a FileCheck call if and only if the
# call's textual output affects test results. It's usually easy to tell: just
# look for redirection or piping of the FileCheck call's stdout or stderr.
#
# Examples:
#
# ; Test another program, using FileCheck to verify its textual output.
# ; Only FileCheck's exit status affects test results, so a bare FileCheck
# ; call is sufficient and more convenient for debugging.
# ;
# ; RUN: %t | FileCheck %s
# ; CHECK: {{[0-9]+\.0}}
#
# ; Test FileCheck itself, but only examine its exit status, so a bare
# ; FileCheck call is still sufficient and more convenient for debugging.
# ;
# ; RUN: FileCheck -input-file %s %s
# ; CHECK: {{[0-9]+\.0}}
# ; 5.0
#
# ; Check that the FileCheck trace is off by default. The first FileCheck
# ; call's textual output affects test results, so it requires
# ; %ProtectFileCheckOutput to be safe.
# ;
# ; RUN: %ProtectFileCheckOutput FileCheck -input-file %s %s 2>&1 \
# ; RUN: | FileCheck -allow-empty -check-prefix QUIET %s
# ;
# ; CHECK: {{[0-9]+\.0}}
# ; 5.0
# ; QUIET-NOT: expected string found in input
#
# ; Check that the FileCheck trace is on when FILECHECK_OPTS=-v.
# ; FILECHECK_OPTS must be set after %ProtectFileCheckOutput, which clears
# ; FILECHECK_OPTS beforehand.
# ;
# ; RUN: %ProtectFileCheckOutput FILECHECK_OPTS=-v \
# ; RUN: FileCheck -dump-input=never -input-file %s %s 2>&1 \
# ; RUN: | FileCheck -check-prefix TRACE %s
# ;
# ; CHECK: {{[0-9]+\.0}}
# ; 5.0
# ; TRACE: expected string found in input
#
# %ProtectFileCheckOutput's purpose is to ensure correct test results when
# developers set FileCheck environment variables (e.g.,
# FILECHECK_OPTS=-dump-input=fail) to tweak the output of FileCheck while
# debugging tests. If a developer sets values that affect FileCheck's exit
# status (e.g., FILECHECK_OPTS=-strict-whitespace), he shouldn't be surprised
# that test results throughout all test suites are affected.
config.substitutions.append(('%ProtectFileCheckOutput',
'env -u FILECHECK_OPTS'))