[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 15/18] iotests: teach FilePath to produce multipl
From: |
John Snow |
Subject: |
[Qemu-devel] [PATCH v4 15/18] iotests: teach FilePath to produce multiple paths |
Date: |
Tue, 9 Jul 2019 19:25:47 -0400 |
Use "FilePaths" instead of "FilePath" to request multiple files be
cleaned up after we leave that object's scope.
This is not crucial; but it saves a little typing.
Signed-off-by: John Snow <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
---
tests/qemu-iotests/iotests.py | 34 ++++++++++++++++++++++++----------
1 file changed, 24 insertions(+), 10 deletions(-)
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index c544659ecb..6135c9663d 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -358,31 +358,45 @@ class Timeout:
def timeout(self, signum, frame):
raise Exception(self.errmsg)
+def file_pattern(name):
+ return "{0}-{1}".format(os.getpid(), name)
-class FilePath(object):
- '''An auto-generated filename that cleans itself up.
+class FilePaths(object):
+ """
+ FilePaths is an auto-generated filename that cleans itself up.
Use this context manager to generate filenames and ensure that the file
gets deleted::
- with TestFilePath('test.img') as img_path:
+ with FilePaths(['test.img']) as img_path:
qemu_img('create', img_path, '1G')
# migration_sock_path is automatically deleted
- '''
- def __init__(self, name):
- filename = '{0}-{1}'.format(os.getpid(), name)
- self.path = os.path.join(test_dir, filename)
+ """
+ def __init__(self, names):
+ self.paths = []
+ for name in names:
+ self.paths.append(os.path.join(test_dir, file_pattern(name)))
def __enter__(self):
- return self.path
+ return self.paths
def __exit__(self, exc_type, exc_val, exc_tb):
try:
- os.remove(self.path)
+ for path in self.paths:
+ os.remove(path)
except OSError:
pass
return False
+class FilePath(FilePaths):
+ """
+ FilePath is a specialization of FilePaths that takes a single filename.
+ """
+ def __init__(self, name):
+ super(FilePath, self).__init__([name])
+
+ def __enter__(self):
+ return self.paths[0]
def file_path_remover():
for path in reversed(file_path_remover.paths):
@@ -407,7 +421,7 @@ def file_path(*names):
paths = []
for name in names:
- filename = '{0}-{1}'.format(os.getpid(), name)
+ filename = file_pattern(name)
path = os.path.join(test_dir, filename)
file_path_remover.paths.append(path)
paths.append(path)
--
2.21.0
- [Qemu-devel] [PATCH v4 04/18] qapi: add BitmapSyncMode enum, (continued)
- [Qemu-devel] [PATCH v4 04/18] qapi: add BitmapSyncMode enum, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 02/18] drive-backup: create do_backup_common, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 10/18] block/dirty-bitmap: add bdrv_dirty_bitmap_get, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 01/18] qapi/block-core: Introduce BackupCommon, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 13/18] iotests: add testing shim for script-style python tests, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 14/18] iotests: teach run_job to cancel pending jobs, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 12/18] block/backup: add 'always' bitmap sync policy, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 15/18] iotests: teach FilePath to produce multiple paths,
John Snow <=
- [Qemu-devel] [PATCH v4 16/18] iotests: Add virtio-scsi device helper, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 11/18] block/backup: upgrade copy_bitmap to BdrvDirtyBitmap, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 05/18] block/backup: Add mirror sync mode 'bitmap', John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 09/18] block/dirty-bitmap: add bdrv_dirty_bitmap_merge_internal, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 18/18] block/backup: loosen restriction on readonly bitmaps, John Snow, 2019/07/09
- [Qemu-devel] [PATCH v4 17/18] iotests: add test 257 for bitmap-mode backups, John Snow, 2019/07/09