ext: Fix tmpfiles in testlib
Previously, the testlib would generate and not clean up 100s of temporary files in /tmp. This puts all of the tempfiles in the same directory to make sure they are cleaned up on a successful test. Change-Id: If4dcd93ab4b5df556c046753266a71365d1388c1 Signed-off-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19528 Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
committed by
Jason Lowe-Power
parent
a0414b585b
commit
88d845aba1
@@ -390,13 +390,13 @@ def _copy_file_keep_perms(source, target):
|
||||
os.chown(target, st[stat.ST_UID], st[stat.ST_GID])
|
||||
|
||||
|
||||
def _filter_file_inplace(fname, filters):
|
||||
def _filter_file_inplace(fname, dir, filters):
|
||||
'''
|
||||
Filter the given file writing filtered lines out to a temporary file, then
|
||||
copy that tempfile back into the original file.
|
||||
'''
|
||||
reenter = False
|
||||
(_, tfname) = tempfile.mkstemp(text=True)
|
||||
(_, tfname) = tempfile.mkstemp(dir=dir, text=True)
|
||||
with open(tfname, 'w') as tempfile_:
|
||||
for line in _filter_file(fname, filters):
|
||||
tempfile_.write(line)
|
||||
@@ -414,11 +414,11 @@ def diff_out_file(ref_file, out_file, logger, ignore_regexes=tuple()):
|
||||
if not os.path.exists(out_file):
|
||||
raise OSError("%s doesn't exist in output directory" % out_file)
|
||||
|
||||
_filter_file_inplace(out_file, ignore_regexes)
|
||||
_filter_file_inplace(ref_file, ignore_regexes)
|
||||
_filter_file_inplace(out_file, os.path.dirname(out_file), ignore_regexes)
|
||||
_filter_file_inplace(ref_file, os.path.dirname(out_file), ignore_regexes)
|
||||
|
||||
#try :
|
||||
(_, tfname) = tempfile.mkstemp(text=True)
|
||||
(_, tfname) = tempfile.mkstemp(dir=os.path.dirname(out_file), text=True)
|
||||
with open(tfname, 'r+') as tempfile_:
|
||||
try:
|
||||
log_call(logger, ['diff', out_file, ref_file], stdout=tempfile_)
|
||||
@@ -457,4 +457,4 @@ class Timer():
|
||||
|
||||
@staticmethod
|
||||
def timestamp():
|
||||
return time.time()
|
||||
return time.time()
|
||||
|
||||
Reference in New Issue
Block a user