summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2012-10-18 20:43:04 +0000
committerDaniel Dunbar <daniel@zuster.org>2012-10-18 20:43:04 +0000
commit44a83f092029fa76bce05ff0c0598afc55215767 (patch)
tree64d64a8fcf554ad73832b5b724f8f992c2b10aa2 /utils
parent3298959540ca744ec16b4c65db244534a929a862 (diff)
downloadllvm-44a83f092029fa76bce05ff0c0598afc55215767.tar.gz
llvm-44a83f092029fa76bce05ff0c0598afc55215767.tar.bz2
llvm-44a83f092029fa76bce05ff0c0598afc55215767.tar.xz
lit: Allow XFAIL: lines to also refer to "features".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166224 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/lit/lit/ExampleTests/xfail-feature.c4
-rw-r--r--utils/lit/lit/TestRunner.py15
2 files changed, 14 insertions, 5 deletions
diff --git a/utils/lit/lit/ExampleTests/xfail-feature.c b/utils/lit/lit/ExampleTests/xfail-feature.c
new file mode 100644
index 0000000000..3444bf8700
--- /dev/null
+++ b/utils/lit/lit/ExampleTests/xfail-feature.c
@@ -0,0 +1,4 @@
+// This test should XPASS.
+
+// RUN: true
+// XFAIL: some-feature-name
diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py
index 71882b76f8..62a795671e 100644
--- a/utils/lit/lit/TestRunner.py
+++ b/utils/lit/lit/TestRunner.py
@@ -370,10 +370,15 @@ def executeScript(test, litConfig, tmpBase, commands, cwd):
return executeCommand(command, cwd=cwd, env=test.config.environment)
-def isExpectedFail(xfails, xtargets, target_triple):
- # Check if any xfail matches this target.
+def isExpectedFail(test, xfails, xtargets):
+ # If the xfail matches an available feature, it always fails.
for item in xfails:
- if item == '*' or item in target_triple:
+ if item in test.config.available_features:
+ return True
+
+ # Otherwise, check if any xfail matches this target.
+ for item in xfails:
+ if item == '*' or item in test.suite.config.target_triple:
break
else:
return False
@@ -382,7 +387,7 @@ def isExpectedFail(xfails, xtargets, target_triple):
#
# FIXME: Rename XTARGET to something that makes sense, like XPASS.
for item in xtargets:
- if item == '*' or item in target_triple:
+ if item == '*' or item in test.suite.config.target_triple:
return False
return True
@@ -491,7 +496,7 @@ def parseIntegratedTestScript(test, normalize_slashes=False,
return (Test.UNSUPPORTED,
"Test requires the following features: %s" % msg)
- isXFail = isExpectedFail(xfails, xtargets, test.suite.config.target_triple)
+ isXFail = isExpectedFail(test, xfails, xtargets)
return script,isXFail,tmpBase,execdir
def formatTestOutput(status, out, err, exitCode, failDueToStderr, script):