mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-27 14:24:40 +00:00
lit: Update Clang's test style to use XFAIL: and XTARGET: lines that match
LLVM's tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85882 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -333,7 +333,24 @@ def executeScript(test, litConfig, tmpBase, commands, cwd):
|
|||||||
|
|
||||||
return executeCommand(command, cwd=cwd, env=test.config.environment)
|
return executeCommand(command, cwd=cwd, env=test.config.environment)
|
||||||
|
|
||||||
def parseIntegratedTestScript(test, xfailHasColon, requireAndAnd):
|
def isExpectedFail(xfails, xtargets, target_triple):
|
||||||
|
# Check if any xfail matches this target.
|
||||||
|
for item in xfails:
|
||||||
|
if item == '*' or item in target_triple:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# If so, see if it is expected to pass on this target.
|
||||||
|
#
|
||||||
|
# FIXME: Rename XTARGET to something that makes sense, like XPASS.
|
||||||
|
for item in xtargets:
|
||||||
|
if item == '*' or item in target_triple:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
def parseIntegratedTestScript(test, requireAndAnd):
|
||||||
"""parseIntegratedTestScript - Scan an LLVM/Clang style integrated test
|
"""parseIntegratedTestScript - Scan an LLVM/Clang style integrated test
|
||||||
script and extract the lines to 'RUN' as well as 'XFAIL' and 'XTARGET'
|
script and extract the lines to 'RUN' as well as 'XFAIL' and 'XTARGET'
|
||||||
information. The RUN lines also will have variable substitution performed.
|
information. The RUN lines also will have variable substitution performed.
|
||||||
@ -377,12 +394,9 @@ def parseIntegratedTestScript(test, xfailHasColon, requireAndAnd):
|
|||||||
script[-1] = script[-1][:-1] + ln
|
script[-1] = script[-1][:-1] + ln
|
||||||
else:
|
else:
|
||||||
script.append(ln)
|
script.append(ln)
|
||||||
elif xfailHasColon and 'XFAIL:' in ln:
|
elif 'XFAIL:' in ln:
|
||||||
items = ln[ln.index('XFAIL:') + 6:].split(',')
|
items = ln[ln.index('XFAIL:') + 6:].split(',')
|
||||||
xfails.extend([s.strip() for s in items])
|
xfails.extend([s.strip() for s in items])
|
||||||
elif not xfailHasColon and 'XFAIL' in ln:
|
|
||||||
items = ln[ln.index('XFAIL') + 5:].split(',')
|
|
||||||
xfails.extend([s.strip() for s in items])
|
|
||||||
elif 'XTARGET:' in ln:
|
elif 'XTARGET:' in ln:
|
||||||
items = ln[ln.index('XTARGET:') + 8:].split(',')
|
items = ln[ln.index('XTARGET:') + 8:].split(',')
|
||||||
xtargets.extend([s.strip() for s in items])
|
xtargets.extend([s.strip() for s in items])
|
||||||
@ -421,7 +435,8 @@ def parseIntegratedTestScript(test, xfailHasColon, requireAndAnd):
|
|||||||
# Strip off '&&'
|
# Strip off '&&'
|
||||||
script[i] = ln[:-2]
|
script[i] = ln[:-2]
|
||||||
|
|
||||||
return script,xfails,xtargets,tmpBase,execdir
|
isXFail = isExpectedFail(xfails, xtargets, test.suite.config.target_triple)
|
||||||
|
return script,isXFail,tmpBase,execdir
|
||||||
|
|
||||||
def formatTestOutput(status, out, err, exitCode, script):
|
def formatTestOutput(status, out, err, exitCode, script):
|
||||||
output = StringIO.StringIO()
|
output = StringIO.StringIO()
|
||||||
@ -444,11 +459,11 @@ def executeTclTest(test, litConfig):
|
|||||||
if test.config.unsupported:
|
if test.config.unsupported:
|
||||||
return (Test.UNSUPPORTED, 'Test is unsupported')
|
return (Test.UNSUPPORTED, 'Test is unsupported')
|
||||||
|
|
||||||
res = parseIntegratedTestScript(test, True, False)
|
res = parseIntegratedTestScript(test, False)
|
||||||
if len(res) == 2:
|
if len(res) == 2:
|
||||||
return res
|
return res
|
||||||
|
|
||||||
script, xfails, xtargets, tmpBase, execdir = res
|
script, isXFail, tmpBase, execdir = res
|
||||||
|
|
||||||
if litConfig.noExecute:
|
if litConfig.noExecute:
|
||||||
return (Test.PASS, '')
|
return (Test.PASS, '')
|
||||||
@ -460,19 +475,6 @@ def executeTclTest(test, litConfig):
|
|||||||
if len(res) == 2:
|
if len(res) == 2:
|
||||||
return res
|
return res
|
||||||
|
|
||||||
isXFail = False
|
|
||||||
for item in xfails:
|
|
||||||
if item == '*' or item in test.suite.config.target_triple:
|
|
||||||
isXFail = True
|
|
||||||
break
|
|
||||||
|
|
||||||
# If this is XFAIL, see if it is expected to pass on this target.
|
|
||||||
if isXFail:
|
|
||||||
for item in xtargets:
|
|
||||||
if item == '*' or item in test.suite.config.target_triple:
|
|
||||||
isXFail = False
|
|
||||||
break
|
|
||||||
|
|
||||||
out,err,exitCode = res
|
out,err,exitCode = res
|
||||||
if isXFail:
|
if isXFail:
|
||||||
ok = exitCode != 0
|
ok = exitCode != 0
|
||||||
@ -490,11 +492,11 @@ def executeShTest(test, litConfig, useExternalSh, requireAndAnd):
|
|||||||
if test.config.unsupported:
|
if test.config.unsupported:
|
||||||
return (Test.UNSUPPORTED, 'Test is unsupported')
|
return (Test.UNSUPPORTED, 'Test is unsupported')
|
||||||
|
|
||||||
res = parseIntegratedTestScript(test, False, requireAndAnd)
|
res = parseIntegratedTestScript(test, requireAndAnd)
|
||||||
if len(res) == 2:
|
if len(res) == 2:
|
||||||
return res
|
return res
|
||||||
|
|
||||||
script, xfails, xtargets, tmpBase, execdir = res
|
script, isXFail, tmpBase, execdir = res
|
||||||
|
|
||||||
if litConfig.noExecute:
|
if litConfig.noExecute:
|
||||||
return (Test.PASS, '')
|
return (Test.PASS, '')
|
||||||
@ -510,7 +512,7 @@ def executeShTest(test, litConfig, useExternalSh, requireAndAnd):
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
out,err,exitCode = res
|
out,err,exitCode = res
|
||||||
if xfails:
|
if isXFail:
|
||||||
ok = exitCode != 0
|
ok = exitCode != 0
|
||||||
status = (Test.XPASS, Test.XFAIL)[ok]
|
status = (Test.XPASS, Test.XFAIL)[ok]
|
||||||
else:
|
else:
|
||||||
|
Reference in New Issue
Block a user