diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-10-19 03:54:21 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-10-19 03:54:21 +0000 |
commit | 7723d45153c5610349486121e2b50b5ba60b2f5c (patch) | |
tree | cf5aa935752941aa862efcd43714bdffec2746b7 /utils/lit | |
parent | 8b828a84a0265254b49d97e6c150c42899b397a9 (diff) | |
download | external_llvm-7723d45153c5610349486121e2b50b5ba60b2f5c.zip external_llvm-7723d45153c5610349486121e2b50b5ba60b2f5c.tar.gz external_llvm-7723d45153c5610349486121e2b50b5ba60b2f5c.tar.bz2 |
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.py | 22 | ||||
-rw-r--r-- | utils/lit/TestRunner.py | 6 |
2 files changed, 26 insertions, 2 deletions
diff --git a/utils/lit/LitConfig.py b/utils/lit/LitConfig.py index 4fb0ccc..c334109 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 7b549ac..34e828b 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) |