[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