summaryrefslogtreecommitdiffstats
path: root/llvm/utils/lit/tests
diff options
context:
space:
mode:
authorJoel E. Denny <jdenny.ornl@gmail.com>2019-07-08 12:18:40 +0000
committerJoel E. Denny <jdenny.ornl@gmail.com>2019-07-08 12:18:40 +0000
commit1602058c04541cb65e078e9f86deca21052b3801 (patch)
tree1565051684fce1d2cc119e484e076a7f8afb8e29 /llvm/utils/lit/tests
parent8cf99a1170483287729190c839aad3526f1b9c11 (diff)
downloadbcm5719-llvm-1602058c04541cb65e078e9f86deca21052b3801.tar.gz
bcm5719-llvm-1602058c04541cb65e078e9f86deca21052b3801.zip
[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
Diffstat (limited to 'llvm/utils/lit/tests')
-rw-r--r--llvm/utils/lit/tests/Inputs/lit-opts/lit.cfg7
-rw-r--r--llvm/utils/lit/tests/Inputs/lit-opts/test.txt1
-rw-r--r--llvm/utils/lit/tests/lit-opts.py33
3 files changed, 41 insertions, 0 deletions
diff --git a/llvm/utils/lit/tests/Inputs/lit-opts/lit.cfg b/llvm/utils/lit/tests/Inputs/lit-opts/lit.cfg
new file mode 100644
index 00000000000..d8dccdb6f4e
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/lit-opts/lit.cfg
@@ -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', '')))
diff --git a/llvm/utils/lit/tests/Inputs/lit-opts/test.txt b/llvm/utils/lit/tests/Inputs/lit-opts/test.txt
new file mode 100644
index 00000000000..0ddee88ac0b
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/lit-opts/test.txt
@@ -0,0 +1 @@
+# RUN: echo %var
diff --git a/llvm/utils/lit/tests/lit-opts.py b/llvm/utils/lit/tests/lit-opts.py
new file mode 100644
index 00000000000..4c068dd8ac2
--- /dev/null
+++ b/llvm/utils/lit/tests/lit-opts.py
@@ -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
OpenPOWER on IntegriCloud