[lit] Parse command-line options from LIT_OPTS
Similar to `FILECHECK_OPTS` for FileCheck, `LIT_OPTS` makes it easy to adjust lit behavior when running the test suite via ninja. For example: ``` $ LIT_OPTS='--time-tests -vv --filter=threadprivate' \ ninja check-clang-openmp ``` Reviewed By: probinson Differential Revision: https://reviews.llvm.org/D64135 llvm-svn: 365313
This commit is contained in:
parent
8cf99a1170
commit
1602058c04
|
@ -38,6 +38,11 @@ Finally, :program:`lit` also supports additional options for only running a
|
|||
subset of the options specified on the command line, see
|
||||
:ref:`selection-options` for more information.
|
||||
|
||||
:program:`lit` parses options from the environment variable ``LIT_OPTS`` after
|
||||
parsing options from the command line. ``LIT_OPTS`` is primarily useful for
|
||||
supplementing or overriding the command-line options supplied to :program:`lit`
|
||||
by ``check`` targets defined by a project's build system.
|
||||
|
||||
Users interested in the :program:`lit` architecture or designing a
|
||||
:program:`lit` testing implementation should see :ref:`lit-infrastructure`.
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import os
|
|||
import platform
|
||||
import random
|
||||
import re
|
||||
import shlex
|
||||
import sys
|
||||
import time
|
||||
import argparse
|
||||
|
@ -322,7 +323,8 @@ def main_with_tmp(builtinParameters):
|
|||
help="Show all discovered tests",
|
||||
action="store_true", default=False)
|
||||
|
||||
opts = parser.parse_args()
|
||||
opts = parser.parse_args(sys.argv[1:] +
|
||||
shlex.split(os.environ.get("LIT_OPTS", "")))
|
||||
args = opts.test_paths
|
||||
|
||||
if opts.show_version:
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
import lit.formats
|
||||
config.name = 'lit-opts'
|
||||
config.suffixes = ['.txt']
|
||||
config.test_format = lit.formats.ShTest()
|
||||
config.test_source_root = None
|
||||
config.test_exec_root = None
|
||||
config.substitutions.append(('%var', lit_config.params.get('var', '')))
|
|
@ -0,0 +1 @@
|
|||
# RUN: echo %var
|
|
@ -0,0 +1,33 @@
|
|||
# Check cases where LIT_OPTS has no effect.
|
||||
#
|
||||
# RUN: %{lit} -j 1 -s %{inputs}/lit-opts | FileCheck %s
|
||||
# RUN: env LIT_OPTS= %{lit} -j 1 -s %{inputs}/lit-opts | FileCheck %s
|
||||
# RUN: env LIT_OPTS=-s %{lit} -j 1 -s %{inputs}/lit-opts | FileCheck %s
|
||||
|
||||
# Check that LIT_OPTS can override command-line options.
|
||||
#
|
||||
# RUN: env LIT_OPTS=-a \
|
||||
# RUN: %{lit} -j 1 -s %{inputs}/lit-opts \
|
||||
# RUN: | FileCheck -check-prefix=SHOW-ALL -DVAR= %s
|
||||
|
||||
# Check that LIT_OPTS understands multiple options with arbitrary spacing.
|
||||
#
|
||||
# RUN: env LIT_OPTS='-a -v -Dvar=foobar' \
|
||||
# RUN: %{lit} -j 1 -s %{inputs}/lit-opts \
|
||||
# RUN: | FileCheck -check-prefix=SHOW-ALL -DVAR=foobar %s
|
||||
|
||||
# Check that LIT_OPTS parses shell-like quotes and escapes.
|
||||
#
|
||||
# RUN: env LIT_OPTS='-a -v -Dvar="foo bar"\ baz' \
|
||||
# RUN: %{lit} -j 1 -s %{inputs}/lit-opts \
|
||||
# RUN: | FileCheck -check-prefix=SHOW-ALL -DVAR="foo bar baz" %s
|
||||
|
||||
# CHECK: Testing: 1 tests
|
||||
# CHECK-NOT: PASS
|
||||
# CHECK: Expected Passes : 1
|
||||
|
||||
# SHOW-ALL: Testing: 1 tests
|
||||
# SHOW-ALL: PASS: lit-opts :: test.txt (1 of 1)
|
||||
# SHOW-ALL: {{^}}[[VAR]]
|
||||
# SHOW-ALL-NOT: PASS
|
||||
# SHOW-ALL: Expected Passes : 1
|
Loading…
Reference in New Issue