[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 08/19] tests/vm: proper guest shutdown
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [PULL 08/19] tests/vm: proper guest shutdown |
Date: |
Mon, 24 Jun 2019 14:43:26 +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>
Signed-off-by: Alex Bennée <address@hidden>
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] [PULL 00/19] testing/next (tests/vm, Travis and hyperv build fix), Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 06/19] tests/vm: use ssh with pty unconditionally, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 03/19] tests/vm: pin ubuntu.i386 image, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 05/19] tests/vm: send proxy environment variables over ssh, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 08/19] tests/vm: proper guest shutdown,
Alex Bennée <=
- [Qemu-devel] [PULL 19/19] target/i386: fix feature check in hyperv-stub.c, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 10/19] tests/vm: serial console support helpers, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 11/19] tests/vm: openbsd autoinstall, using serial console, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 04/19] tests/vm: add source repos on ubuntu.i386, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 18/19] Makefile: Rename the 'vm-test' target as 'vm-help', Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 01/19] tests/vm: avoid extra compressed image copy, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 07/19] tests/vm: run test builds on snapshot, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 12/19] tests/vm: freebsd autoinstall, using serial console, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 09/19] tests/vm: add vm-boot-{ssh, serial}-<guest> targets, Alex Bennée, 2019/06/24
- [Qemu-devel] [PULL 17/19] .travis.yml: force a brew update for MacOS builds, Alex Bennée, 2019/06/24