mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-29 13:54:57 +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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84462 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8b828a84a0
commit
7723d45153
@ -29,6 +29,7 @@ class LitConfig:
|
|||||||
self.noExecute = noExecute
|
self.noExecute = noExecute
|
||||||
self.debug = debug
|
self.debug = debug
|
||||||
self.isWindows = bool(isWindows)
|
self.isWindows = bool(isWindows)
|
||||||
|
self.bashPath = None
|
||||||
|
|
||||||
self.numErrors = 0
|
self.numErrors = 0
|
||||||
self.numWarnings = 0
|
self.numWarnings = 0
|
||||||
@ -41,6 +42,27 @@ class LitConfig:
|
|||||||
mustExist = True,
|
mustExist = True,
|
||||||
config = config)
|
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):
|
def _write_message(self, kind, message):
|
||||||
import inspect, os, sys
|
import inspect, os, sys
|
||||||
|
|
||||||
|
@ -237,7 +237,9 @@ def executeTclScriptInternal(test, litConfig, tmpBase, commands, cwd):
|
|||||||
for c in cmds[1:]:
|
for c in cmds[1:]:
|
||||||
cmd = ShUtil.Seq(cmd, '&&', c)
|
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'
|
script = tmpBase + '.script'
|
||||||
|
|
||||||
# Write script file
|
# Write script file
|
||||||
@ -252,7 +254,7 @@ def executeTclScriptInternal(test, litConfig, tmpBase, commands, cwd):
|
|||||||
print >>sys.stdout
|
print >>sys.stdout
|
||||||
return '', '', 0
|
return '', '', 0
|
||||||
|
|
||||||
command = ['/bin/bash', script]
|
command = [litConfig.getBashPath(), script]
|
||||||
out,err,exitCode = executeCommand(command, cwd=cwd,
|
out,err,exitCode = executeCommand(command, cwd=cwd,
|
||||||
env=test.config.environment)
|
env=test.config.environment)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user