Skip to content

Commit

Permalink
lit: Refactoring: Introduce toplevel prepareRunSafely function
Browse files Browse the repository at this point in the history
llvm-svn: 254128
  • Loading branch information
MatzeB committed Nov 26, 2015
1 parent 3d81f3c commit cc32456
Showing 1 changed file with 23 additions and 20 deletions.
43 changes: 23 additions & 20 deletions lit.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,24 @@ def runScript(test, litConfig, script, tmpBase, useExternalSh = True):
res = executeScriptInternal(test, litConfig, tmpBase, script, execdir)
return res

def prepareRunSafely(config, commandline, outfile):
stdin = "/dev/null"
tokens = shlex.split(commandline)
for i in range(len(tokens)):
# Detect "< INPUTFILE" pattern
if tokens[i] == "<" and i+1 < len(tokens):
stdin = tokens[i+1]
del tokens[i+1]
del tokens[i]
break
timeit = "%s/tools/timeit" % config.test_source_root
runsafely = "%s/RunSafely.sh" % config.test_suite_root
timeout = "7200"
runsafely_prefix = [runsafely, "-t", timeit, timeout, stdin, outfile]

new_commandline = " ".join(map(quote, runsafely_prefix + tokens))
return new_commandline

class TestSuiteTest(FileBasedTest):
def __init__(self):
super(TestSuiteTest, self).__init__()
Expand All @@ -104,26 +122,11 @@ class TestSuiteTest(FileBasedTest):
runscript = applySubstitutions(runscript, substitutions)
verifyscript = applySubstitutions(verifyscript, substitutions)

# Prepend runscript with RunSafely and timeit stuff
def prependRunSafely(line):
# Search for "< INPUTFILE" in the line and use that for stdin
stdin = "/dev/null"
commandline = shlex.split(line)
for i in range(len(commandline)):
if commandline[i] == "<" and i+1 < len(commandline):
stdin = commandline[i+1]
del commandline[i+1]
del commandline[i]
break
timeit = "%s/tools/timeit" % config.test_source_root
runsafely = "%s/RunSafely.sh" % config.test_suite_root
timeout = "7200"
runsafely_prefix = [runsafely, "-t", timeit, timeout, stdin,
outfile]

line = " ".join(map(quote, runsafely_prefix + commandline))
return line
runscript = map(prependRunSafely, runscript)
adjusted_runscript = []
for line in runscript:
line = prepareRunSafely(config, line, outfile)
adjusted_runscript.append(line)
runscript = adjusted_runscript

# Create the output directory if it does not already exist.
lit.util.mkdir_p(os.path.dirname(tmpBase))
Expand Down

0 comments on commit cc32456

Please sign in to comment.