diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2017-09-05 15:59:28 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2017-09-05 15:59:28 +0100 |
commit | 6bbd7e2728f488f881f6a2a521fe7c5083684bc5 (patch) | |
tree | 12774a457cd6664d85a3782e6dada3cec1ab3987 /scripts/qemu.py | |
parent | 6d58d50e5376d8143802a3102289744e660302f0 (diff) | |
parent | b461151ff31c7925f271c297e8abed20231ac7d3 (diff) | |
download | qemu-6bbd7e2728f488f881f6a2a521fe7c5083684bc5.zip qemu-6bbd7e2728f488f881f6a2a521fe7c5083684bc5.tar.gz qemu-6bbd7e2728f488f881f6a2a521fe7c5083684bc5.tar.bz2 |
Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging
# gpg: Signature made Tue 05 Sep 2017 14:28:52 BST
# gpg: using RSA key 0x9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>"
# gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>"
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8
* remotes/stefanha/tags/block-pull-request:
block: document semantics of bdrv_co_preadv|pwritev
qemu-iotests: use context managers for resource cleanup in 194
iotests.py: add FilePath context manager
qemu.py: make VM() a context manager
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'scripts/qemu.py')
-rw-r--r-- | scripts/qemu.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/scripts/qemu.py b/scripts/qemu.py index 880e3e8..4d8ee10 100644 --- a/scripts/qemu.py +++ b/scripts/qemu.py @@ -21,7 +21,14 @@ import qmp.qmp class QEMUMachine(object): - '''A QEMU VM''' + '''A QEMU VM + + Use this object as a context manager to ensure the QEMU process terminates:: + + with VM(binary) as vm: + ... + # vm is guaranteed to be shut down here + ''' def __init__(self, binary, args=[], wrapper=[], name=None, test_dir="/var/tmp", monitor_address=None, socket_scm_helper=None, debug=False): @@ -40,6 +47,13 @@ class QEMUMachine(object): self._socket_scm_helper = socket_scm_helper self._debug = debug + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.shutdown() + return False + # This can be used to add an unused monitor instance. def add_monitor_telnet(self, ip, port): args = 'tcp:%s:%d,server,nowait,telnet' % (ip, port) |