Sfoglia il codice sorgente

Merge pull request #5906 from ThomasWaldmann/benchmark-cleanup-1.1

benchmark: make sure cleanup happens even on exceptions, fixes #5630
TW 3 anni fa
parent
commit
d84e7f4254
1 ha cambiato i file con 11 aggiunte e 9 eliminazioni
  1. 11 9
      src/borg/archiver.py

+ 11 - 9
src/borg/archiver.py

@@ -464,15 +464,17 @@ class Archiver:
 
         @contextmanager
         def test_files(path, count, size, random):
-            path = os.path.join(path, 'borg-test-data')
-            os.makedirs(path)
-            for i in range(count):
-                fname = os.path.join(path, 'file_%d' % i)
-                data = b'\0' * size if not random else os.urandom(size)
-                with SyncFile(fname, binary=True) as fd:  # used for posix_fadvise's sake
-                    fd.write(data)
-            yield path
-            shutil.rmtree(path)
+            try:
+                path = os.path.join(path, 'borg-test-data')
+                os.makedirs(path)
+                for i in range(count):
+                    fname = os.path.join(path, 'file_%d' % i)
+                    data = b'\0' * size if not random else os.urandom(size)
+                    with SyncFile(fname, binary=True) as fd:  # used for posix_fadvise's sake
+                        fd.write(data)
+                yield path
+            finally:
+                shutil.rmtree(path)
 
         if '_BORG_BENCHMARK_CRUD_TEST' in os.environ:
             tests = [