Use tempfile.TemporaryDirectory in conform/glibcconform.py.

Now that we require Python 3.4 or later, Python code creating
temporary directories can use tempfile.TemporaryDirectory in "with" to
have the directory deleted automatically instead of needing to use
try/finally to handle removing a directory created with
tempfile.mkdtemp.  This patch does so in conform/glibcconform.py.

Tested for x86_64.

	* conform/glibcconform.py: Do not import shutil.
	(list_exported_functions): Use tempfile.TemporaryDirectory instead
	of mkdtemp.
This commit is contained in:
Joseph Myers 2018-10-29 17:49:07 +00:00
parent c6982f7efc
commit 954cf3c29b
2 changed files with 7 additions and 8 deletions

View file

@ -1,5 +1,9 @@
2018-10-29 Joseph Myers <joseph@codesourcery.com>
* conform/glibcconform.py: Do not import shutil.
(list_exported_functions): Use tempfile.TemporaryDirectory instead
of mkdtemp.
* configure.ac (PYTHON_PROG): Use AC_CHECK_PROG_VER. Set
critic_missing for versions before 3.4.
* configure: Regenerated.

View file

@ -19,7 +19,6 @@
import os.path
import re
import shutil
import subprocess
import tempfile
@ -43,11 +42,9 @@ def list_exported_functions(cc, standard, header):
"""
cc_all = '%s -D_ISOMAC %s' % (cc, CFLAGS[standard])
# tempfile.TemporaryDirectory requires Python 3.2, so use mkdtemp.
temp_dir = tempfile.mkdtemp()
c_file_name = os.path.join(temp_dir, 'test.c')
aux_file_name = os.path.join(temp_dir, 'test.c.aux')
try:
with tempfile.TemporaryDirectory() as temp_dir:
c_file_name = os.path.join(temp_dir, 'test.c')
aux_file_name = os.path.join(temp_dir, 'test.c.aux')
with open(c_file_name, 'w') as c_file:
c_file.write('#include <%s>\n' % header)
fns = set()
@ -72,6 +69,4 @@ def list_exported_functions(cc, standard, header):
else:
raise ValueError("couldn't parse -aux-info output: %s"
% line)
finally:
shutil.rmtree(temp_dir)
return fns