Remove AutoDeletedDir
Replace the only usage with a simple try/finally and remove the class.
This commit is contained in:
parent
edbcb2bfc8
commit
58640bdff9
|
@ -224,21 +224,6 @@ class TestDef:
|
|||
return (s_id, self.path, self.name or '') < (o_id, other.path, other.name or '')
|
||||
return NotImplemented
|
||||
|
||||
class AutoDeletedDir:
|
||||
def __init__(self, d):
|
||||
self.dir = d
|
||||
|
||||
def __enter__(self):
|
||||
os.makedirs(self.dir, exist_ok=True)
|
||||
return self.dir
|
||||
|
||||
def __exit__(self, _type, value, traceback):
|
||||
# We don't use tempfile.TemporaryDirectory, but wrap the
|
||||
# deletion in the AutoDeletedDir class because
|
||||
# it fails on Windows due antivirus programs
|
||||
# holding files open.
|
||||
mesonlib.windows_proof_rmtree(self.dir)
|
||||
|
||||
failing_logs = []
|
||||
print_debug = 'MESON_PRINT_TEST_OUTPUT' in os.environ
|
||||
under_ci = 'CI' in os.environ
|
||||
|
@ -519,7 +504,8 @@ def detect_parameter_files(test: TestDef, test_build_dir: str) -> (Path, Path):
|
|||
def run_test(test: TestDef, extra_args, compiler, backend, flags, commands, should_fail, use_tmp: bool):
|
||||
if test.skip:
|
||||
return None
|
||||
with AutoDeletedDir(create_deterministic_builddir(test, use_tmp)) as build_dir:
|
||||
build_dir = create_deterministic_builddir(test, use_tmp)
|
||||
try:
|
||||
with TemporaryDirectoryWinProof(prefix='i ', dir=None if use_tmp else os.getcwd()) as install_dir:
|
||||
try:
|
||||
return _run_test(test, build_dir, install_dir, extra_args, compiler, backend, flags, commands, should_fail)
|
||||
|
@ -527,6 +513,8 @@ def run_test(test: TestDef, extra_args, compiler, backend, flags, commands, shou
|
|||
return r
|
||||
finally:
|
||||
mlog.shutdown() # Close the log file because otherwise Windows wets itself.
|
||||
finally:
|
||||
mesonlib.windows_proof_rmtree(build_dir)
|
||||
|
||||
def _run_test(test: TestDef, test_build_dir: str, install_dir: str, extra_args, compiler, backend, flags, commands, should_fail):
|
||||
compile_commands, clean_commands, install_commands, uninstall_commands = commands
|
||||
|
|
Loading…
Reference in New Issue