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

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147684 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2012-01-06 21:39:06 +00:00
parent 3326ec1842
commit 2d4a5bf817

View File

@ -425,7 +425,8 @@ def isExpectedFail(xfails, xtargets, target_triple):
return True return True
def parseIntegratedTestScript(test, normalize_slashes=False): def parseIntegratedTestScript(test, normalize_slashes=False,
extra_substitutions=[]):
"""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.
@ -452,7 +453,8 @@ def parseIntegratedTestScript(test, normalize_slashes=False):
tmpBase = tmpBase.replace('\\', '/') tmpBase = tmpBase.replace('\\', '/')
# We use #_MARKER_# to hide %% while we do the other substitutions. # 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(test.config.substitutions)
substitutions.extend([('%s', sourcepath), substitutions.extend([('%s', sourcepath),
('%S', sourcedir), ('%S', sourcedir),
@ -599,11 +601,12 @@ def executeTclTest(test, litConfig):
return formatTestOutput(status, out, err, exitCode, failDueToStderr, script) return formatTestOutput(status, out, err, exitCode, failDueToStderr, script)
def executeShTest(test, litConfig, useExternalSh): def executeShTest(test, litConfig, useExternalSh,
extra_substitutions=[]):
if test.config.unsupported: if test.config.unsupported:
return (Test.UNSUPPORTED, 'Test is unsupported') return (Test.UNSUPPORTED, 'Test is unsupported')
res = parseIntegratedTestScript(test, useExternalSh) res = parseIntegratedTestScript(test, useExternalSh, extra_substitutions)
if len(res) == 2: if len(res) == 2:
return res return res