diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-03-31 18:48:43 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-03-31 18:48:43 +0000 |
commit | 6e0dbca6c4074c32de0655bc3eda9b467fb9af6b (patch) | |
tree | b5623936359bf62781a8f54fa1dcfbaec2855050 | |
parent | 866f5764a75c65e31e1b093c13949ea26cba9652 (diff) | |
download | bcm5719-llvm-6e0dbca6c4074c32de0655bc3eda9b467fb9af6b.tar.gz bcm5719-llvm-6e0dbca6c4074c32de0655bc3eda9b467fb9af6b.zip |
lit: Make sure to close any files we open as part of redirection.
PR6753.
llvm-svn: 100032
-rw-r--r-- | llvm/utils/lit/lit/TestRunner.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py index 29adff22298..5d008de76d4 100644 --- a/llvm/utils/lit/lit/TestRunner.py +++ b/llvm/utils/lit/lit/TestRunner.py @@ -63,6 +63,7 @@ def executeShCmd(cmd, cfg, cwd, results): procs = [] input = subprocess.PIPE stderrTempFiles = [] + opened_files = [] # To avoid deadlock, we use a single stderr stream for piped # output. This is null until we have seen some output using # stderr. @@ -115,6 +116,7 @@ def executeShCmd(cmd, cfg, cwd, results): # Workaround a Win32 and/or subprocess bug when appending. if r[1] == 'a': r[2].seek(0, 2) + opened_files.append(r[2]) result = r[2] final_redirects.append(result) @@ -176,7 +178,7 @@ def executeShCmd(cmd, cfg, cwd, results): else: err = '' procData[i] = (out,err) - + # Read stderr out of the temp files. for i,f in stderrTempFiles: f.seek(0, 0) @@ -199,6 +201,10 @@ def executeShCmd(cmd, cfg, cwd, results): else: exitCode = res + # Explicitly close any redirected files. + for f in opened_files: + f.close() + if cmd.negate: exitCode = not exitCode |