mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
lit: When executing commands internally, perform PATH resolution ourselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82520 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
27dba671c3
commit
6bd2b2e9a2
@ -5,6 +5,11 @@ import ShUtil
|
||||
import Test
|
||||
import Util
|
||||
|
||||
class InternalShellError(Exception):
|
||||
def __init__(self, command, message):
|
||||
self.command = command
|
||||
self.message = message
|
||||
|
||||
def executeCommand(command, cwd=None, env=None):
|
||||
p = subprocess.Popen(command, cwd=cwd,
|
||||
stdin=subprocess.PIPE,
|
||||
@ -94,6 +99,13 @@ def executeShCmd(cmd, cfg, cwd, results):
|
||||
stderrIsStdout = True
|
||||
else:
|
||||
stderrIsStdout = False
|
||||
|
||||
# Resolve the executable path ourselves.
|
||||
args = list(j.args)
|
||||
args[0] = Util.which(args[0], cfg.environment['PATH'])
|
||||
if not args[0]:
|
||||
raise InternalShellError(j, '%r: command not found' % j.args[0])
|
||||
|
||||
procs.append(subprocess.Popen(j.args, cwd=cwd,
|
||||
stdin = stdin,
|
||||
stdout = stdout,
|
||||
@ -159,7 +171,12 @@ def executeScriptInternal(test, litConfig, tmpBase, commands, cwd):
|
||||
return (Test.FAIL, "shell parser error on: %r" % ln)
|
||||
|
||||
results = []
|
||||
exitCode = executeShCmd(cmd, test.config, cwd, results)
|
||||
try:
|
||||
exitCode = executeShCmd(cmd, test.config, cwd, results)
|
||||
except InternalShellError,e:
|
||||
out = ''
|
||||
err = e.message
|
||||
exitCode = 255
|
||||
|
||||
out = err = ''
|
||||
for i,(cmd, cmd_out,cmd_err,res) in enumerate(results):
|
||||
@ -225,7 +242,11 @@ def executeTclScriptInternal(test, litConfig, tmpBase, commands, cwd):
|
||||
return out,err,exitCode
|
||||
else:
|
||||
results = []
|
||||
exitCode = executeShCmd(cmd, test.config, cwd, results)
|
||||
try:
|
||||
exitCode = executeShCmd(cmd, test.config, cwd, results)
|
||||
except InternalShellError,e:
|
||||
results.append((e.command, '', e.message + '\n', 255))
|
||||
exitCode = 255
|
||||
|
||||
out = err = ''
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user