qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: peter.maydell@linaro.org
Cc: "Fam Zheng" <fam@euphon.net>, "Thomas Huth" <thuth@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	qemu-devel@nongnu.org, "Gerd Hoffmann" <kraxel@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>
Subject: [Qemu-devel] [PULL 08/19] tests/vm: proper guest shutdown
Date: Mon, 24 Jun 2019 14:43:26 +0100	[thread overview]
Message-ID: <20190624134337.10532-9-alex.bennee@linaro.org> (raw)
In-Reply-To: <20190624134337.10532-1-alex.bennee@linaro.org>

From: Gerd Hoffmann <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>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20190617043858.8290-5-kraxel@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

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



  parent reply	other threads:[~2019-06-24 13:55 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-24 13:43 [Qemu-devel] [PULL 00/19] testing/next (tests/vm, Travis and hyperv build fix) Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 01/19] tests/vm: avoid extra compressed image copy Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 02/19] tests/vm: avoid image presence check and removal Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 03/19] tests/vm: pin ubuntu.i386 image Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 04/19] tests/vm: add source repos on ubuntu.i386 Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 05/19] tests/vm: send proxy environment variables over ssh Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 06/19] tests/vm: use ssh with pty unconditionally Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 07/19] tests/vm: run test builds on snapshot Alex Bennée
2019-06-24 13:43 ` Alex Bennée [this message]
2019-06-24 13:43 ` [Qemu-devel] [PULL 09/19] tests/vm: add vm-boot-{ssh, serial}-<guest> targets Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 10/19] tests/vm: serial console support helpers Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 11/19] tests/vm: openbsd autoinstall, using serial console Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 12/19] tests/vm: freebsd " Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 13/19] tests/vm: netbsd " Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 14/19] tests/vm: fedora " Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 15/19] tests/vm: ubuntu.i386: apt proxy setup Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 16/19] .travis.yml: default the --disable-system build to --static Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 17/19] .travis.yml: force a brew update for MacOS builds Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 18/19] Makefile: Rename the 'vm-test' target as 'vm-help' Alex Bennée
2019-06-24 13:43 ` [Qemu-devel] [PULL 19/19] target/i386: fix feature check in hyperv-stub.c Alex Bennée
2019-07-01  9:52 ` [Qemu-devel] [PULL 00/19] testing/next (tests/vm, Travis and hyperv build fix) Peter Maydell
2019-07-01 15:07   ` Alex Bennée
2019-07-01 15:58   ` Alex Bennée
2019-07-02 10:10     ` Philippe Mathieu-Daudé
2019-07-02 10:28       ` Alex Bennée
2019-07-02 10:29         ` Peter Maydell

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=20190624134337.10532-9-alex.bennee@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=fam@euphon.net \
    --cc=kraxel@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /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).