diff --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py --- a/llvm/utils/lit/lit/TestRunner.py +++ b/llvm/utils/lit/lit/TestRunner.py @@ -1463,9 +1463,9 @@ 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 --- /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 --- /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)