From: Pierre-Marie de Rodat Date: Tue, 26 May 2020 14:13:28 +0000 (+0200) Subject: gcc-changelog: remove file descriptor leaks X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bb07057a316f7f8c3daa1a4dd67fd3c5d9d450c7;p=gcc.git gcc-changelog: remove file descriptor leaks Currently, running gcc-changelog's unit tests may clutter the output with tons of warnings such as: .../contrib/gcc-changelog/git_email.py:40: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/tmpt5okd4qp.patch' mode='r' encoding='UTF-8'> lines = open(self.filename).read().splitlines() ResourceWarning: Enable tracemalloc to get the object allocation traceback This commit fixes these leaks, which restores a clean testsuite output. contrib/ * gcc-changelog/git_update_version.py: Close file objects after use. * gcc-changelog/git_email.py: Likewise. * gcc-changelog/test_email.py: Likewise. --- diff --git a/contrib/gcc-changelog/git_email.py b/contrib/gcc-changelog/git_email.py index e1d6b70e80c..8c9df293a66 100755 --- a/contrib/gcc-changelog/git_email.py +++ b/contrib/gcc-changelog/git_email.py @@ -37,7 +37,8 @@ class GitEmail(GitCommit): date = None author = None - lines = open(self.filename).read().splitlines() + with open(self.filename, 'r') as f: + lines = f.read().splitlines() lines = list(takewhile(lambda line: line != '---', lines)) for line in lines: if line.startswith(DATE_PREFIX): diff --git a/contrib/gcc-changelog/git_update_version.py b/contrib/gcc-changelog/git_update_version.py index 3dcc5625eda..6b6ccf68a5e 100755 --- a/contrib/gcc-changelog/git_update_version.py +++ b/contrib/gcc-changelog/git_update_version.py @@ -28,7 +28,8 @@ current_timestamp = datetime.datetime.now().strftime('%Y%m%d\n') def read_timestamp(path): - return open(path).read() + with open(path) as f: + return f.read() def prepend_to_changelog_files(repo, folder, git_commit, add_to_git): @@ -40,7 +41,8 @@ def prepend_to_changelog_files(repo, folder, git_commit, add_to_git): full_path = os.path.join(folder, entry, 'ChangeLog') print('writting to %s' % full_path) if os.path.exists(full_path): - content = open(full_path).read() + with open(full_path) as f: + content = f.read() else: content = '' with open(full_path, 'w+') as f: diff --git a/contrib/gcc-changelog/test_email.py b/contrib/gcc-changelog/test_email.py index bf028a3d40a..1379502e755 100755 --- a/contrib/gcc-changelog/test_email.py +++ b/contrib/gcc-changelog/test_email.py @@ -33,7 +33,8 @@ class TestGccChangelog(unittest.TestCase): filename = None patch_lines = [] - lines = open(os.path.join(script_path, 'test_patches.txt')).read() + with open(os.path.join(script_path, 'test_patches.txt')) as f: + lines = f.read() for line in lines.split('\n'): if line.startswith('==='): if patch_lines: