mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-29 23:16:28 +00:00
lit: When running Tcl scripts via shell, try harder to find 'bash', but fall
back to running them internally if that fails. PR5240. llvm-svn: 84462
This commit is contained in:
parent
bf3dab83fa
commit
bb58da6d55
utils/lit
@ -29,6 +29,7 @@ class LitConfig:
|
||||
self.noExecute = noExecute
|
||||
self.debug = debug
|
||||
self.isWindows = bool(isWindows)
|
||||
self.bashPath = None
|
||||
|
||||
self.numErrors = 0
|
||||
self.numWarnings = 0
|
||||
@ -41,6 +42,27 @@ class LitConfig:
|
||||
mustExist = True,
|
||||
config = config)
|
||||
|
||||
def getBashPath(self):
|
||||
"""getBashPath - Get the path to 'bash'"""
|
||||
import os, Util
|
||||
|
||||
if self.bashPath is not None:
|
||||
return self.bashPath
|
||||
|
||||
self.bashPath = Util.which('bash', os.pathsep.join(self.path))
|
||||
if self.bashPath is None:
|
||||
# Check some known paths.
|
||||
for path in ('/bin/bash', '/usr/bin/bash'):
|
||||
if os.path.exists(path):
|
||||
self.bashPath = path
|
||||
break
|
||||
|
||||
if self.bashPath is None:
|
||||
self.warning("Unable to find 'bash', running Tcl tests internally.")
|
||||
self.bashPath = ''
|
||||
|
||||
return self.bashPath
|
||||
|
||||
def _write_message(self, kind, message):
|
||||
import inspect, os, sys
|
||||
|
||||
|
@ -237,7 +237,9 @@ def executeTclScriptInternal(test, litConfig, tmpBase, commands, cwd):
|
||||
for c in cmds[1:]:
|
||||
cmd = ShUtil.Seq(cmd, '&&', c)
|
||||
|
||||
if litConfig.useTclAsSh:
|
||||
# FIXME: This is lame, we shouldn't need bash. See PR5240.
|
||||
bashPath = litConfig.getBashPath()
|
||||
if litConfig.useTclAsSh and bashPath:
|
||||
script = tmpBase + '.script'
|
||||
|
||||
# Write script file
|
||||
@ -252,7 +254,7 @@ def executeTclScriptInternal(test, litConfig, tmpBase, commands, cwd):
|
||||
print >>sys.stdout
|
||||
return '', '', 0
|
||||
|
||||
command = ['/bin/bash', script]
|
||||
command = [litConfig.getBashPath(), script]
|
||||
out,err,exitCode = executeCommand(command, cwd=cwd,
|
||||
env=test.config.environment)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user