[lit] Only gather redirected files for command failures.

- The intended use of this was just in diagnostics, so we shouldn't pay the
   cost of reading these all the time.

 - This will avoid including the full output of each command in tests which
   fail, but the most important use case for this was to gather the output of
   the specific command which failed.

llvm-svn: 272365
This commit is contained in:
Daniel Dunbar 2016-06-10 04:17:30 +00:00
parent 738cbf4e5d
commit 4f12eba9f0

View File

@ -396,17 +396,18 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
except:
err = str(err)
# Gather the redirected output files.
# Gather the redirected output files for failed commands.
output_files = []
for (name, mode, f, path) in sorted(opened_files):
if path is not None and mode in ('w', 'a'):
try:
with open(path, 'rb') as f:
data = f.read()
except:
data = None
if data != None:
output_files.append((name, path, data))
if res != 0:
for (name, mode, f, path) in sorted(opened_files):
if path is not None and mode in ('w', 'a'):
try:
with open(path, 'rb') as f:
data = f.read()
except:
data = None
if data != None:
output_files.append((name, path, data))
results.append(ShellCommandResult(
cmd.commands[i], out, err, res, timeoutHelper.timeoutReached(),