From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org, qemu-block@nongnu.org
Cc: Fam Zheng <fam@euphon.net>, Kevin Wolf <kwolf@redhat.com>,
vsementsov@virtuozzo.com, Juan Quintela <quintela@redhat.com>,
Wen Congyang <wencongyang2@huawei.com>,
Xie Changlong <xiechanglong.d@gmail.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
John Snow <jsnow@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Max Reitz <mreitz@redhat.com>
Subject: [Qemu-devel] [PATCH v3 15/18] iotests: teach FilePath to produce multiple paths
Date: Fri, 5 Jul 2019 16:16:28 -0400 [thread overview]
Message-ID: <20190705201631.26266-16-jsnow@redhat.com> (raw)
In-Reply-To: <20190705201631.26266-1-jsnow@redhat.com>
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.
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
---
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
next prev parent reply other threads:[~2019-07-05 20:29 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-05 20:16 [Qemu-devel] [PATCH v3 00/18] bitmaps: introduce 'bitmap' sync mode John Snow
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 01/18] qapi/block-core: Introduce BackupCommon John Snow
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 02/18] drive-backup: create do_backup_common John Snow
2019-07-09 18:28 ` Max Reitz
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 03/18] blockdev-backup: utilize do_backup_common John Snow
2019-07-09 18:33 ` Max Reitz
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 04/18] qapi: add BitmapSyncMode enum John Snow
2019-07-09 18:34 ` Max Reitz
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 05/18] block/backup: Add mirror sync mode 'bitmap' John Snow
2019-07-09 18:38 ` Max Reitz
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 06/18] block/backup: add 'never' policy to bitmap sync mode John Snow
2019-07-09 18:38 ` Max Reitz
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 07/18] hbitmap: Fix merge when b is empty, and result is not an alias of a John Snow
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 08/18] hbitmap: enable merging across granularities John Snow
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 09/18] block/dirty-bitmap: add bdrv_dirty_bitmap_merge_internal John Snow
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 10/18] block/dirty-bitmap: add bdrv_dirty_bitmap_get John Snow
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 11/18] block/backup: upgrade copy_bitmap to BdrvDirtyBitmap John Snow
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 12/18] block/backup: add 'always' bitmap sync policy John Snow
2019-07-09 18:46 ` Max Reitz
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 13/18] iotests: add testing shim for script-style python tests John Snow
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 14/18] iotests: teach run_job to cancel pending jobs John Snow
2019-07-05 20:16 ` John Snow [this message]
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 16/18] iotests: Add virtio-scsi device helper John Snow
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 17/18] iotests: add test 257 for bitmap-mode backups John Snow
2019-07-09 18:49 ` Max Reitz
2019-07-09 23:14 ` John Snow
2019-07-05 20:16 ` [Qemu-devel] [PATCH v3 18/18] block/backup: loosen restriction on readonly bitmaps John Snow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190705201631.26266-16-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=armbru@redhat.com \
--cc=dgilbert@redhat.com \
--cc=fam@euphon.net \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=stefanha@redhat.com \
--cc=vsementsov@virtuozzo.com \
--cc=wencongyang2@huawei.com \
--cc=xiechanglong.d@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).