From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Fam Zheng" <fam@euphon.net>, "Ed Maste" <emaste@freebsd.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Kamil Rytarowski" <kamil@netbsd.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"Li-Wen Hsu" <lwhsu@freebsd.org>,
"Brad Smith" <brad@comstyle.com>
Subject: [Qemu-devel] [PATCH v4 04/11] tests/vm: proper guest shutdown
Date: Mon, 17 Jun 2019 06:38:51 +0200 [thread overview]
Message-ID: <20190617043858.8290-5-kraxel@redhat.com> (raw)
In-Reply-To: <20190617043858.8290-1-kraxel@redhat.com>
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 <kraxel@redhat.com>
Tested-by: Thomas Huth <thuth@redhat.com>
---
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
next prev parent reply other threads:[~2019-06-17 4:41 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-17 4:38 [Qemu-devel] [PATCH v4 00/11] tests/vm: serial console autoinstall, misc fixes Gerd Hoffmann
2019-06-17 4:38 ` [Qemu-devel] [PATCH v4 01/11] tests/vm: send proxy environment variables over ssh Gerd Hoffmann
2019-06-17 4:38 ` [Qemu-devel] [PATCH v4 02/11] tests/vm: use ssh with pty unconditionally Gerd Hoffmann
2019-06-17 16:09 ` Philippe Mathieu-Daudé
2019-06-17 4:38 ` [Qemu-devel] [PATCH v4 03/11] tests/vm: run test builds on snapshot Gerd Hoffmann
2019-06-17 16:15 ` Philippe Mathieu-Daudé
2019-06-17 4:38 ` Gerd Hoffmann [this message]
2019-06-17 16:09 ` [Qemu-devel] [PATCH v4 04/11] tests/vm: proper guest shutdown Philippe Mathieu-Daudé
2019-06-17 4:38 ` [Qemu-devel] [PATCH v4 05/11] tests/vm: add vm-boot-{ssh, serial}-<guest> targets Gerd Hoffmann
2019-06-17 16:11 ` Philippe Mathieu-Daudé
2019-06-17 4:38 ` [Qemu-devel] [PATCH v4 06/11] tests/vm: serial console support helpers Gerd Hoffmann
2019-06-17 16:12 ` Philippe Mathieu-Daudé
2019-06-17 4:38 ` [Qemu-devel] [PATCH v4 07/11] tests/vm: openbsd autoinstall, using serial console Gerd Hoffmann
2019-06-17 16:12 ` Philippe Mathieu-Daudé
2019-06-17 4:38 ` [Qemu-devel] [PATCH v4 08/11] tests/vm: freebsd " Gerd Hoffmann
2019-06-17 4:38 ` [Qemu-devel] [PATCH v4 09/11] tests/vm: netbsd " Gerd Hoffmann
2019-06-17 16:13 ` Philippe Mathieu-Daudé
2019-07-05 10:24 ` Alex Bennée
2019-07-05 10:43 ` Kamil Rytarowski
2019-07-05 10:47 ` Philippe Mathieu-Daudé
2019-07-05 10:49 ` Kamil Rytarowski
2019-07-05 10:52 ` Peter Maydell
2019-07-05 11:05 ` Daniel P. Berrangé
2019-07-05 11:10 ` Alex Bennée
2019-06-17 4:38 ` [Qemu-devel] [PATCH v4 10/11] tests/vm: fedora " Gerd Hoffmann
2019-06-17 16:13 ` Philippe Mathieu-Daudé
2019-06-17 4:38 ` [Qemu-devel] [PATCH v4 11/11] tests/vm: ubuntu.i386: apt proxy setup Gerd Hoffmann
2019-06-17 9:21 ` [Qemu-devel] [PATCH v4 00/11] tests/vm: serial console autoinstall, misc fixes Alex Bennée
2019-06-17 15:44 ` Alex Bennée
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190617043858.8290-5-kraxel@redhat.com \
--to=kraxel@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=brad@comstyle.com \
--cc=emaste@freebsd.org \
--cc=fam@euphon.net \
--cc=kamil@netbsd.org \
--cc=lwhsu@freebsd.org \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).