lit/lit.TestRunner: Add an extra_substitutions argument for executeShTest --

useful for test suites which want to piggyback onto the "shtest" format style.

llvm-svn: 147684
This commit is contained in:
Daniel Dunbar 2012-01-06 21:39:06 +00:00
parent b8045cbcb1
commit 600b23b225
1 changed files with 7 additions and 4 deletions

View File

@ -425,7 +425,8 @@ def isExpectedFail(xfails, xtargets, target_triple):
return True
def parseIntegratedTestScript(test, normalize_slashes=False):
def parseIntegratedTestScript(test, normalize_slashes=False,
extra_substitutions=[]):
"""parseIntegratedTestScript - Scan an LLVM/Clang style integrated test
script and extract the lines to 'RUN' as well as 'XFAIL' and 'XTARGET'
information. The RUN lines also will have variable substitution performed.
@ -452,7 +453,8 @@ def parseIntegratedTestScript(test, normalize_slashes=False):
tmpBase = tmpBase.replace('\\', '/')
# We use #_MARKER_# to hide %% while we do the other substitutions.
substitutions = [('%%', '#_MARKER_#')]
substitutions = list(extra_substitutions)
substitutions.extend([('%%', '#_MARKER_#')])
substitutions.extend(test.config.substitutions)
substitutions.extend([('%s', sourcepath),
('%S', sourcedir),
@ -599,11 +601,12 @@ def executeTclTest(test, litConfig):
return formatTestOutput(status, out, err, exitCode, failDueToStderr, script)
def executeShTest(test, litConfig, useExternalSh):
def executeShTest(test, litConfig, useExternalSh,
extra_substitutions=[]):
if test.config.unsupported:
return (Test.UNSUPPORTED, 'Test is unsupported')
res = parseIntegratedTestScript(test, useExternalSh)
res = parseIntegratedTestScript(test, useExternalSh, extra_substitutions)
if len(res) == 2:
return res