[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 04/11] tests/vm: proper guest shutdown
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH v4 04/11] tests/vm: proper guest shutdown |
Date: |
Mon, 17 Jun 2019 06:38:51 +0200 |
When not running in snapshot mode ask the guest to poweroff and wait for
this to finish instead of simply quitting qemu, so the guest can flush
pending updates to disk.
Signed-off-by: Gerd Hoffmann <address@hidden>
Tested-by: Thomas Huth <address@hidden>
---
tests/vm/basevm.py | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index 395eefaec948..f27178f3c7c2 100755
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -51,6 +51,8 @@ class BaseVM(object):
name = "#base"
# The guest architecture, to be overridden by subclasses
arch = "#arch"
+ # command to halt the guest, can be overridden by subclasses
+ poweroff = "poweroff"
def __init__(self, debug=False, vcpus=None):
self._guest = None
self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
@@ -202,6 +204,10 @@ class BaseVM(object):
def wait(self):
self._guest.wait()
+ def graceful_shutdown(self):
+ self.ssh_root(self.poweroff)
+ self._guest.wait()
+
def qmp(self, *args, **kwargs):
return self._guest.qmp(*args, **kwargs)
@@ -278,11 +284,13 @@ def main(vmcls):
traceback.print_exc()
return 2
- if args.interactive:
- if vm.ssh(*cmd) == 0:
- return 0
+ exitcode = 0
+ if vm.ssh(*cmd) != 0:
+ exitcode = 3
+ if exitcode != 0 and args.interactive:
vm.ssh()
- return 3
- else:
- if vm.ssh(*cmd) != 0:
- return 3
+
+ if not args.snapshot:
+ vm.graceful_shutdown()
+
+ return exitcode
--
2.18.1
- [Qemu-devel] [PATCH v4 00/11] tests/vm: serial console autoinstall, misc fixes., Gerd Hoffmann, 2019/06/17
- [Qemu-devel] [PATCH v4 01/11] tests/vm: send proxy environment variables over ssh, Gerd Hoffmann, 2019/06/17
- [Qemu-devel] [PATCH v4 11/11] tests/vm: ubuntu.i386: apt proxy setup, Gerd Hoffmann, 2019/06/17
- [Qemu-devel] [PATCH v4 02/11] tests/vm: use ssh with pty unconditionally, Gerd Hoffmann, 2019/06/17
- [Qemu-devel] [PATCH v4 03/11] tests/vm: run test builds on snapshot, Gerd Hoffmann, 2019/06/17
- [Qemu-devel] [PATCH v4 04/11] tests/vm: proper guest shutdown,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH v4 06/11] tests/vm: serial console support helpers, Gerd Hoffmann, 2019/06/17
- [Qemu-devel] [PATCH v4 05/11] tests/vm: add vm-boot-{ssh, serial}-<guest> targets, Gerd Hoffmann, 2019/06/17
- [Qemu-devel] [PATCH v4 10/11] tests/vm: fedora autoinstall, using serial console, Gerd Hoffmann, 2019/06/17
- [Qemu-devel] [PATCH v4 07/11] tests/vm: openbsd autoinstall, using serial console, Gerd Hoffmann, 2019/06/17
- [Qemu-devel] [PATCH v4 09/11] tests/vm: netbsd autoinstall, using serial console, Gerd Hoffmann, 2019/06/17