aboutsummaryrefslogtreecommitdiffstats
path: root/utils/lit
diff options
context:
space:
mode:
Diffstat (limited to 'utils/lit')
-rw-r--r--utils/lit/lit/TestRunner.py21
1 files changed, 7 insertions, 14 deletions
diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py
index 148beba..a7de2b7 100644
--- a/utils/lit/lit/TestRunner.py
+++ b/utils/lit/lit/TestRunner.py
@@ -353,6 +353,8 @@ def isExpectedFail(xfails, xtargets, target_triple):
return True
+import re
+
def parseIntegratedTestScript(test):
"""parseIntegratedTestScript - Scan an LLVM/Clang style integrated test
script and extract the lines to 'RUN' as well as 'XFAIL' and 'XTARGET'
@@ -387,20 +389,11 @@ def parseIntegratedTestScript(test):
xtargets = []
ignoredAny = False
for ln in open(sourcepath):
- if 'IF(' in ln:
- # Required syntax here is IF(condition(value)):
- index = ln.index('IF(')
- ln = ln[index+3:]
- index = ln.index('(')
- if index is -1:
- return (Test.UNRESOLVED, "ill-formed IF at '"+ln[:10]+"'")
- condition = ln[:index]
- ln = ln[index+1:]
- index = ln.index(')')
- if index is -1 or ln[index:index+3] != ')):':
- return (Test.UNRESOLVED, "ill-formed IF at '"+ln[:10]+"'")
- value = ln[:index]
- ln = ln[index+3:]
+ conditional = re.search('IF\((.+?)\((.+?)\)\):', ln)
+ if conditional:
+ ln = ln[conditional.end():]
+ condition = conditional.group(1)
+ value = conditional.group(2)
# Actually test the condition.
if condition not in test.config.conditions: