summaryrefslogtreecommitdiffstats
path: root/clang/utils
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-08-01 23:18:27 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-08-01 23:18:27 +0000
commit6cfaa47c852359a304fbcf546d9a6626ae0e55fb (patch)
treebd3bfafbbab55647384cba614cbe26e9d57c4f52 /clang/utils
parent62561fe9b03b05108754cfd4a292e3acc029a8c1 (diff)
downloadbcm5719-llvm-6cfaa47c852359a304fbcf546d9a6626ae0e55fb.tar.gz
bcm5719-llvm-6cfaa47c852359a304fbcf546d9a6626ae0e55fb.zip
lit: Catch (internal) exceptions when using --no-sh.
llvm-svn: 77830
Diffstat (limited to 'clang/utils')
-rwxr-xr-xclang/utils/test/TestRunner.py22
1 files changed, 10 insertions, 12 deletions
diff --git a/clang/utils/test/TestRunner.py b/clang/utils/test/TestRunner.py
index e605ef60138..42799093d19 100755
--- a/clang/utils/test/TestRunner.py
+++ b/clang/utils/test/TestRunner.py
@@ -26,20 +26,13 @@ def executeShCmd(cmd, cfg, cwd, results):
if isinstance(cmd, ShUtil.Seq):
if cmd.op == ';':
res = executeShCmd(cmd.lhs, cfg, cwd, results)
- if res is None:
- return res
-
return executeShCmd(cmd.rhs, cfg, cwd, results)
if cmd.op == '&':
- Util.warning("unsupported test command: '&'")
- return None
+ raise NotImplementedError,"unsupported test command: '&'"
if cmd.op == '||':
res = executeShCmd(cmd.lhs, cfg, cwd, results)
- if res is None:
- return res
-
if res != 0:
res = executeShCmd(cmd.rhs, cfg, cwd, results)
return res
@@ -72,7 +65,7 @@ def executeShCmd(cmd, cfg, cwd, results):
elif r[0] == ('<',):
stdin = open(r[1], 'r')
else:
- return None
+ raise NotImplementedError,"Unsupported redirect: %r" % r
procs.append(subprocess.Popen(j.args, cwd=cwd,
stdin = stdin,
@@ -120,9 +113,14 @@ def executeScriptInternal(cfg, commands, cwd):
cmd = ShUtil.ShParser(' &&\n'.join(commands)).parse()
results = []
- exitCode = executeShCmd(cmd, cfg, cwd, results)
- if exitCode is None:
- return None
+ try:
+ exitCode = executeShCmd(cmd, cfg, cwd, results)
+ except:
+ import traceback
+
+ out = ''
+ err = 'Exception during script execution:\n%s\n' % traceback.format_exc()
+ return out, err, 127
out = err = ''
for i,(cmd, cmd_out,cmd_err,res) in enumerate(results):
OpenPOWER on IntegriCloud