On 5/26/20 4:47 PM, Pierre-Marie de Rodat wrote:
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.
Hello.
Oh, that's new for me. I've never seen the warning.
Please install the patch.
Martin
contrib/
* gcc-changelog/git_email.py: Close file objects after use.
* gcc-changelog/test_email.py: Likewise.
---
contrib/gcc-changelog/git_email.py | 3 ++-
contrib/gcc-changelog/git_update_version.py | 6 ++++--
contrib/gcc-changelog/test_email.py | 3 ++-
3 files changed, 8 insertions(+), 4 deletions(-)
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: