mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
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
This commit is contained in:
parent
3298959540
commit
44a83f0920
@ -798,14 +798,15 @@ define two separate CHECK lines that match on the same line.
|
||||
<p>Sometimes it is necessary to mark a test case as "expected fail" or XFAIL.
|
||||
You can easily mark a test as XFAIL just by including <tt>XFAIL: </tt> on a
|
||||
line near the top of the file. This signals that the test case should succeed
|
||||
if the test fails. Such test cases are counted separately by the testing tool. To
|
||||
specify an expected fail, use the XFAIL keyword in the comments of the test
|
||||
program followed by a colon and one or more regular expressions (separated by
|
||||
a comma). The regular expressions allow you to XFAIL the test conditionally by
|
||||
host platform. The regular expressions following the : are matched against the
|
||||
target triplet for the host machine. If there is a match, the test is expected
|
||||
to fail. If not, the test is expected to succeed. To XFAIL everywhere just
|
||||
specify <tt>XFAIL: *</tt>. Here is an example of an <tt>XFAIL</tt> line:</p>
|
||||
if the test fails. Such test cases are counted separately by the testing
|
||||
tool. To specify an expected fail, use the XFAIL keyword in the comments of
|
||||
the test program followed by a colon and one or more failure patterns. Each
|
||||
failure pattern can be either '*' (to specify fail everywhere), or a part of a
|
||||
target triple (indicating the test should fail on that platfomr), or the name
|
||||
of a configurable feature (for example, "loadable_module").. If there is a
|
||||
match, the test is expected to fail. If not, the test is expected to
|
||||
succeed. To XFAIL everywhere just specify <tt>XFAIL: *</tt>. Here is an
|
||||
example of an <tt>XFAIL</tt> line:</p>
|
||||
|
||||
<div class="doc_code">
|
||||
<pre>
|
||||
|
4
utils/lit/lit/ExampleTests/xfail-feature.c
Normal file
4
utils/lit/lit/ExampleTests/xfail-feature.c
Normal file
@ -0,0 +1,4 @@
|
||||
// This test should XPASS.
|
||||
|
||||
// RUN: true
|
||||
// XFAIL: some-feature-name
|
@ -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):
|
||||
|
Loading…
Reference in New Issue
Block a user