summaryrefslogtreecommitdiff
path: root/utils/lit
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-10-19 03:54:21 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-10-19 03:54:21 +0000
commit7723d45153c5610349486121e2b50b5ba60b2f5c (patch)
treecf5aa935752941aa862efcd43714bdffec2746b7 /utils/lit
parent8b828a84a0265254b49d97e6c150c42899b397a9 (diff)
downloadllvm-7723d45153c5610349486121e2b50b5ba60b2f5c.tar.gz
llvm-7723d45153c5610349486121e2b50b5ba60b2f5c.tar.bz2
llvm-7723d45153c5610349486121e2b50b5ba60b2f5c.tar.xz
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
Diffstat (limited to 'utils/lit')
-rw-r--r--utils/lit/LitConfig.py22
-rw-r--r--utils/lit/TestRunner.py6
2 files changed, 26 insertions, 2 deletions
diff --git a/utils/lit/LitConfig.py b/utils/lit/LitConfig.py
index 4fb0ccc093..c334109e1d 100644
--- a/utils/lit/LitConfig.py
+++ b/utils/lit/LitConfig.py
@@ -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
diff --git a/utils/lit/TestRunner.py b/utils/lit/TestRunner.py
index 7b549ac1c6..34e828bf96 100644
--- a/utils/lit/TestRunner.py
+++ b/utils/lit/TestRunner.py
@@ -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)