aboutsummaryrefslogtreecommitdiff
path: root/lldb/packages/Python/lldbsuite/test/lldbtest.py
diff options
context:
space:
mode:
authordlav-sc <daniil.avdeev@syntacore.com>2024-12-02 14:51:22 +0300
committerGitHub <noreply@github.com>2024-12-02 14:51:22 +0300
commit9a34a4f8d668b72868fde3b6a58bb3a57d72c0c9 (patch)
tree8ff5d89e217dec2e8e774663899a0a552cafebd3 /lldb/packages/Python/lldbsuite/test/lldbtest.py
parente6eac65ad6aa2c61475d65f13d6d938d0e3a7728 (diff)
downloadllvm-9a34a4f8d668b72868fde3b6a58bb3a57d72c0c9.zip
llvm-9a34a4f8d668b72868fde3b6a58bb3a57d72c0c9.tar.gz
llvm-9a34a4f8d668b72868fde3b6a58bb3a57d72c0c9.tar.bz2
[lldb] fix fd leak during lldb testsuite (#118093)
During lldb testing dotest.py opens files to dump testcase results, but doesn't close them. This patch makes necessary changes to fix the file descriptors leak.
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lldbtest.py')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lldbtest.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index 8884ef5..1338d16 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -865,13 +865,9 @@ class Base(unittest.TestCase):
session_file = self.getLogBasenameForCurrentTest() + ".log"
self.log_files.append(session_file)
- # Python 3 doesn't support unbuffered I/O in text mode. Open buffered.
- self.session = encoded_file.open(session_file, "utf-8", mode="w")
-
# Optimistically set __errored__, __failed__, __expected__ to False
# initially. If the test errored/failed, the session info
- # (self.session) is then dumped into a session specific file for
- # diagnosis.
+ # is then dumped into a session specific file for diagnosis.
self.__cleanup_errored__ = False
self.__errored__ = False
self.__failed__ = False
@@ -1235,20 +1231,25 @@ class Base(unittest.TestCase):
else:
prefix = "Success"
+ session_file = self.getLogBasenameForCurrentTest() + ".log"
+
+ # Python 3 doesn't support unbuffered I/O in text mode. Open buffered.
+ session = encoded_file.open(session_file, "utf-8", mode="w")
+
if not self.__unexpected__ and not self.__skipped__:
for test, traceback in pairs:
if test is self:
- print(traceback, file=self.session)
+ print(traceback, file=session)
import datetime
print(
"Session info generated @",
datetime.datetime.now().ctime(),
- file=self.session,
+ file=session,
)
- self.session.close()
- del self.session
+ session.close()
+ del session
# process the log files
if prefix != "Success" or lldbtest_config.log_success: