[llvm] d66428c - [lit] Allow for tests to have non-parsed requirements
Casey Carter via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 15 16:45:18 PDT 2020
Author: Casey Carter
Date: 2020-06-15T16:43:02-07:00
New Revision: d66428cb995c7a04ecb02951d5021d815fc02b2b
URL: https://github.com/llvm/llvm-project/commit/d66428cb995c7a04ecb02951d5021d815fc02b2b
DIFF: https://github.com/llvm/llvm-project/commit/d66428cb995c7a04ecb02951d5021d815fc02b2b.diff
LOG: [lit] Allow for tests to have non-parsed requirements
MSVC uses lit for STL testing to run both the libcxx tests and our "native" suite of tests which has feature requirements that are not parsed from the test content. For consistency, the change treats the `unsupported` and `xfails` `Test` properties similarly to `requires`.
Differential Revision: https://reviews.llvm.org/D81782
Added:
llvm/utils/lit/tests/Inputs/unparsed-requirements/test.py
llvm/utils/lit/tests/unparsed-requirements.py
Modified:
llvm/utils/lit/lit/TestRunner.py
Removed:
################################################################################
diff --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py
index ab557b767b03..a71cec2382ae 100644
--- a/llvm/utils/lit/lit/TestRunner.py
+++ b/llvm/utils/lit/lit/TestRunner.py
@@ -1463,9 +1463,9 @@ def parseIntegratedTestScript(test, additional_parsers=[],
except ValueError as e:
return lit.Test.Result(Test.UNRESOLVED, str(e))
script = parsed['RUN:'] or []
- test.xfails = parsed['XFAIL:'] or []
- test.requires = parsed['REQUIRES:'] or []
- test.unsupported = parsed['UNSUPPORTED:'] or []
+ test.xfails += parsed['XFAIL:'] or []
+ test.requires += parsed['REQUIRES:'] or []
+ test.unsupported += parsed['UNSUPPORTED:'] or []
if parsed['ALLOW_RETRIES:']:
test.allowed_retries = parsed['ALLOW_RETRIES:'][0]
diff --git a/llvm/utils/lit/tests/Inputs/unparsed-requirements/test.py b/llvm/utils/lit/tests/Inputs/unparsed-requirements/test.py
new file mode 100644
index 000000000000..f4bba87292fe
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/unparsed-requirements/test.py
@@ -0,0 +1,4 @@
+# REQUIRES: woof, quack
+# UNSUPPORTED: beta, gamma
+# XFAIL: bar, baz
+# RUN:
diff --git a/llvm/utils/lit/tests/unparsed-requirements.py b/llvm/utils/lit/tests/unparsed-requirements.py
new file mode 100644
index 000000000000..6f0985841181
--- /dev/null
+++ b/llvm/utils/lit/tests/unparsed-requirements.py
@@ -0,0 +1,25 @@
+# RUN: %{python} %s %{inputs}/unparsed-requirements
+
+import sys
+from lit.Test import Result, Test, TestSuite
+from lit.TestRunner import parseIntegratedTestScript
+from lit.TestingConfig import TestingConfig
+
+config = TestingConfig(None, "config", [".txt"], None, [], [], False, sys.argv[1], sys.argv[1], [], [], True)
+suite = TestSuite("suite", sys.argv[1], sys.argv[1], config)
+
+test = Test(suite, ["test.py"], config)
+test.requires = ["meow"]
+test.unsupported = ["alpha"]
+test.xfails = ["foo"]
+
+parseIntegratedTestScript(test)
+
+error_count = 0
+if test.requires != ["meow", "woof", "quack"]:
+ error_count += 1
+if test.unsupported != ["alpha", "beta", "gamma"]:
+ error_count += 1
+if test.xfails != ["foo", "bar", "baz"]:
+ error_count += 1
+exit(error_count)
More information about the llvm-commits
mailing list