[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v1 08/17] tests/vm: proper guest shutdown
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [PATCH v1 08/17] tests/vm: proper guest shutdown |
Date: |
Wed, 19 Jun 2019 20:40:12 +0100 |
From: Gerd Hoffmann <address@hidden>
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>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
[AJB: added tags]
Signed-off-by: Alex Bennée <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 395eefaec9..f27178f3c7 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.20.1
- [Qemu-devel] [PATCH v1 00/17] testing/next (Travis fixes, more tests/vm), Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 01/17] tests/vm: avoid extra compressed image copy, Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 04/17] tests/vm: add source repos on ubuntu.i386, Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 02/17] tests/vm: avoid image presence check and removal, Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 03/17] tests/vm: pin ubuntu.i386 image, Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 08/17] tests/vm: proper guest shutdown,
Alex Bennée <=
- [Qemu-devel] [PATCH v1 10/17] tests/vm: serial console support helpers, Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 14/17] tests/vm: fedora autoinstall, using serial console, Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 07/17] tests/vm: run test builds on snapshot, Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 06/17] tests/vm: use ssh with pty unconditionally, Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 05/17] tests/vm: send proxy environment variables over ssh, Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 09/17] tests/vm: add vm-boot-{ssh, serial}-<guest> targets, Alex Bennée, 2019/06/19
- [Qemu-devel] [PATCH v1 17/17] .travis.yml: force a brew update for MacOS builds, Alex Bennée, 2019/06/19