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 Test
|
||||||
import Util
|
import Util
|
||||||
|
|
||||||
|
class InternalShellError(Exception):
|
||||||
|
def __init__(self, command, message):
|
||||||
|
self.command = command
|
||||||
|
self.message = message
|
||||||
|
|
||||||
def executeCommand(command, cwd=None, env=None):
|
def executeCommand(command, cwd=None, env=None):
|
||||||
p = subprocess.Popen(command, cwd=cwd,
|
p = subprocess.Popen(command, cwd=cwd,
|
||||||
stdin=subprocess.PIPE,
|
stdin=subprocess.PIPE,
|
||||||
@ -94,6 +99,13 @@ def executeShCmd(cmd, cfg, cwd, results):
|
|||||||
stderrIsStdout = True
|
stderrIsStdout = True
|
||||||
else:
|
else:
|
||||||
stderrIsStdout = False
|
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,
|
procs.append(subprocess.Popen(j.args, cwd=cwd,
|
||||||
stdin = stdin,
|
stdin = stdin,
|
||||||
stdout = stdout,
|
stdout = stdout,
|
||||||
@ -159,7 +171,12 @@ def executeScriptInternal(test, litConfig, tmpBase, commands, cwd):
|
|||||||
return (Test.FAIL, "shell parser error on: %r" % ln)
|
return (Test.FAIL, "shell parser error on: %r" % ln)
|
||||||
|
|
||||||
results = []
|
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 = ''
|
out = err = ''
|
||||||
for i,(cmd, cmd_out,cmd_err,res) in enumerate(results):
|
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
|
return out,err,exitCode
|
||||||
else:
|
else:
|
||||||
results = []
|
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 = ''
|
out = err = ''
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user