[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 06/14] tests/vm: proper guest shutdown
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH v3 06/14] tests/vm: proper guest shutdown |
Date: |
Mon, 20 May 2019 14:47:08 +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 878f1a7a32b8..465c7b80d011 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-",
@@ -201,6 +203,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)
@@ -277,11 +283,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
- Re: [Qemu-devel] [PATCH v3 05/14] tests/vm: run test builds on snapshot, (continued)
- [Qemu-devel] [PATCH v3 09/14] tests/vm: serial console support helpers, Gerd Hoffmann, 2019/05/20
- [Qemu-devel] [PATCH v3 04/14] tests/vm: use ssh with pty unconditionally, Gerd Hoffmann, 2019/05/20
- [Qemu-devel] [PATCH v3 01/14] scripts: use git archive in archive-source, Gerd Hoffmann, 2019/05/20
- [Qemu-devel] [PATCH v3 14/14] tests/vm: ubuntu.i386: apt proxy setup, Gerd Hoffmann, 2019/05/20
- [Qemu-devel] [PATCH v3 07/14] tests/vm: add vm-boot-{ssh, serial}-<guest> targets, Gerd Hoffmann, 2019/05/20
- [Qemu-devel] [PATCH v3 06/14] tests/vm: proper guest shutdown,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH v3 02/14] tests/vm: python3 fixes, Gerd Hoffmann, 2019/05/20
- [Qemu-devel] [PATCH v3 11/14] tests/vm: freebsd autoinstall, using serial console, Gerd Hoffmann, 2019/05/20
- [Qemu-devel] [PATCH v3 13/14] tests/vm: fedora autoinstall, using serial console, Gerd Hoffmann, 2019/05/20
- [Qemu-devel] [PATCH v3 12/14] tests/vm: netbsd autoinstall, using serial console, Gerd Hoffmann, 2019/05/20