summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2019-07-12 05:53:39 +0200
committerJürg Billeter <j@bitron.ch>2019-08-20 07:41:23 +0200
commitecf5511baebcfdc83260a814af376377ff76f0de (patch)
treeb23507f5bc6d467817ac7198f8026795b1e20b52
parent8c18f1b61042719e756f29683e7eb62f561a3939 (diff)
downloadbuildstream-ecf5511baebcfdc83260a814af376377ff76f0de.tar.gz
tests/internals/storage.py: Use context manager for casd termination
-rw-r--r--tests/internals/storage.py35
1 files changed, 19 insertions, 16 deletions
diff --git a/tests/internals/storage.py b/tests/internals/storage.py
index c23283221..385162c13 100644
--- a/tests/internals/storage.py
+++ b/tests/internals/storage.py
@@ -1,3 +1,4 @@
+from contextlib import contextmanager
import multiprocessing
import os
import signal
@@ -28,23 +29,26 @@ def _queue_wrapper(target, queue, *args):
queue.put(None)
+@contextmanager
def setup_backend(backend_class, tmpdir):
if backend_class == FileBasedDirectory:
- return backend_class(os.path.join(tmpdir, "vdir"))
+ yield backend_class(os.path.join(tmpdir, "vdir"))
else:
cas_cache = CASCache(tmpdir)
- return backend_class(cas_cache)
+ try:
+ yield backend_class(cas_cache)
+ finally:
+ cas_cache.release_resources()
def _test_import_subprocess(tmpdir, datafiles, backend):
original = os.path.join(str(datafiles), "original")
- c = setup_backend(backend, str(tmpdir))
+ with setup_backend(backend, str(tmpdir)) as c:
+ c.import_files(original)
- c.import_files(original)
-
- assert "bin/bash" in c.list_relative_paths()
- assert "bin/hello" in c.list_relative_paths()
+ assert "bin/bash" in c.list_relative_paths()
+ assert "bin/hello" in c.list_relative_paths()
@pytest.mark.parametrize("backend", [
@@ -71,18 +75,17 @@ def _test_modified_file_list_subprocess(tmpdir, datafiles, backend):
original = os.path.join(str(datafiles), "original")
overlay = os.path.join(str(datafiles), "overlay")
- c = setup_backend(backend, str(tmpdir))
-
- c.import_files(original)
+ with setup_backend(backend, str(tmpdir)) as c:
+ c.import_files(original)
- c.mark_unmodified()
+ c.mark_unmodified()
- c.import_files(overlay)
+ c.import_files(overlay)
- print("List of all paths in imported results: {}".format(c.list_relative_paths()))
- assert "bin/bash" in c.list_relative_paths()
- assert "bin/bash" in c.list_modified_paths()
- assert "bin/hello" not in c.list_modified_paths()
+ print("List of all paths in imported results: {}".format(c.list_relative_paths()))
+ assert "bin/bash" in c.list_relative_paths()
+ assert "bin/bash" in c.list_modified_paths()
+ assert "bin/hello" not in c.list_modified_paths()
@pytest.mark.parametrize("backend", [