From 88d845aba16bdda902f22ab8338f8c46ff801e49 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 16 Jul 2019 15:13:06 -0700 Subject: [PATCH] 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 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19528 Reviewed-by: Bobby R. Bruce Reviewed-by: Nikos Nikoleris Maintainer: Jason Lowe-Power Tested-by: kokoro --- ext/testlib/helper.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ext/testlib/helper.py b/ext/testlib/helper.py index 18256eab0..ac49e468e 100644 --- a/ext/testlib/helper.py +++ b/ext/testlib/helper.py @@ -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() \ No newline at end of file + return time.time() -- 2.30.2