Selaa lähdekoodia

Merge pull request #7508 from ThomasWaldmann/benchmark-use-random-dir-master

benchmark crud: use TemporaryDirectory below given path, fixes #4706
TW 2 vuotta sitten
vanhempi
sitoutus
50812f8033
1 muutettua tiedostoa jossa 2 lisäystä ja 6 poistoa
  1. 2 6
      src/borg/archiver/benchmark_cmd.py

+ 2 - 6
src/borg/archiver/benchmark_cmd.py

@@ -2,7 +2,7 @@ import argparse
 from contextlib import contextmanager
 from contextlib import contextmanager
 import functools
 import functools
 import os
 import os
-import shutil
+import tempfile
 import time
 import time
 
 
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
@@ -60,9 +60,7 @@ class BenchmarkMixIn:
 
 
         @contextmanager
         @contextmanager
         def test_files(path, count, size, random):
         def test_files(path, count, size, random):
-            try:
-                path = os.path.join(path, "borg-test-data")
-                os.makedirs(path)
+            with tempfile.TemporaryDirectory(prefix="borg-test-data-", dir=path) as path:
                 z_buff = None if random else memoryview(zeros)[:size] if size <= len(zeros) else b"\0" * size
                 z_buff = None if random else memoryview(zeros)[:size] if size <= len(zeros) else b"\0" * size
                 for i in range(count):
                 for i in range(count):
                     fname = os.path.join(path, "file_%d" % i)
                     fname = os.path.join(path, "file_%d" % i)
@@ -70,8 +68,6 @@ class BenchmarkMixIn:
                     with SyncFile(fname, binary=True) as fd:  # used for posix_fadvise's sake
                     with SyncFile(fname, binary=True) as fd:  # used for posix_fadvise's sake
                         fd.write(data)
                         fd.write(data)
                 yield path
                 yield path
-            finally:
-                shutil.rmtree(path)
 
 
         if "_BORG_BENCHMARK_CRUD_TEST" in os.environ:
         if "_BORG_BENCHMARK_CRUD_TEST" in os.environ:
             tests = [("Z-TEST", 1, 1, False), ("R-TEST", 1, 1, True)]
             tests = [("Z-TEST", 1, 1, False), ("R-TEST", 1, 1, True)]