All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PULL 04/29] tests/qemu-iotests: adding savevm/loadvm with postcopy flag test
Date: Tue, 23 Jan 2018 15:01:36 +0100	[thread overview]
Message-ID: <20180123140201.31163-5-kwolf@redhat.com> (raw)
In-Reply-To: <20180123140201.31163-1-kwolf@redhat.com>

From: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>

This patch implements a test case for the scenario that was failing
prior to the patch "migration/ram.c: do not set 'postcopy_running' in
POSTCOPY_INCOMING_END", commit acab30b85d.

This new test file 201 was derived from the test file 181 authored
by Kevin Wolf.

CC: Kevin Wolf <kwolf@redhat.com>
CC: Max Reitz <mreitz@redhat.com>
CC: Cleber Rosa <crosa@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 tests/qemu-iotests/201     | 120 +++++++++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/201.out |  23 +++++++++
 tests/qemu-iotests/group   |   1 +
 3 files changed, 144 insertions(+)
 create mode 100755 tests/qemu-iotests/201
 create mode 100644 tests/qemu-iotests/201.out

diff --git a/tests/qemu-iotests/201 b/tests/qemu-iotests/201
new file mode 100755
index 0000000000..11f640f5df
--- /dev/null
+++ b/tests/qemu-iotests/201
@@ -0,0 +1,120 @@
+#!/bin/bash
+#
+# Test savevm and loadvm after live migration with postcopy flag
+#
+# Copyright (C) 2017, IBM Corporation.
+#
+# This file is derived from tests/qemu-iotests/181 by Kevin Wolf
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+status=1	# failure is the default!
+
+MIG_SOCKET="${TEST_DIR}/migrate"
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+. ./common.qemu
+
+_cleanup()
+{
+    rm -f "${MIG_SOCKET}"
+    _cleanup_test_img
+    _cleanup_qemu
+}
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_supported_fmt qcow2
+_supported_proto generic
+_supported_os Linux
+
+# Internal snapshots are (currently) impossible with refcount_bits=1
+# This was taken from test 080
+_unsupported_imgopts 'refcount_bits=1[^0-9]'
+
+size=64M
+_make_test_img $size
+
+echo
+echo === Starting VMs ===
+echo
+
+qemu_comm_method="monitor"
+
+if [ "$IMGOPTSSYNTAX" = "true" ]; then
+    _launch_qemu \
+        -drive "${TEST_IMG}",cache=${CACHEMODE},id=disk
+else
+    _launch_qemu \
+        -drive file="${TEST_IMG}",cache=${CACHEMODE},driver=$IMGFMT,id=disk
+fi
+src=$QEMU_HANDLE
+
+if [ "$IMGOPTSSYNTAX" = "true" ]; then
+    _launch_qemu \
+        -drive "${TEST_IMG}",cache=${CACHEMODE},id=disk \
+        -incoming "unix:${MIG_SOCKET}"
+else
+    _launch_qemu \
+        -drive file="${TEST_IMG}",cache=${CACHEMODE},driver=$IMGFMT,id=disk \
+        -incoming "unix:${MIG_SOCKET}"
+fi
+dest=$QEMU_HANDLE
+
+echo
+echo === Set \'migrate_set_capability postcopy-ram on\' and migrate ===
+echo
+
+silent=yes
+_send_qemu_cmd $dest 'migrate_set_capability postcopy-ram on' "(qemu)"
+_send_qemu_cmd $src 'migrate_set_capability postcopy-ram on' "(qemu)"
+_send_qemu_cmd $src "migrate -d unix:${MIG_SOCKET}" "(qemu)"
+
+QEMU_COMM_TIMEOUT=1 qemu_cmd_repeat=10 silent=yes \
+    _send_qemu_cmd $src "info migrate" "completed\|failed"
+silent=yes _send_qemu_cmd $src "" "(qemu)"
+
+echo
+echo === Check if migration was successful ===
+echo
+
+QEMU_COMM_TIMEOUT=1 silent=yes \
+    _send_qemu_cmd $src "info migrate" "completed"
+silent=yes _send_qemu_cmd $src "" "(qemu)"
+
+echo
+echo === On destination, execute savevm and loadvm ===
+echo
+
+silent=
+_send_qemu_cmd $dest 'savevm state1' "(qemu)"
+_send_qemu_cmd $dest 'loadvm state1' "(qemu)"
+
+echo
+echo === Shut down and check image ===
+echo
+
+_send_qemu_cmd $src 'quit' ""
+_send_qemu_cmd $dest 'quit' ""
+wait=1 _cleanup_qemu
+
+_check_test_img
+
+# success, all done
+echo "*** done"
+status=0
diff --git a/tests/qemu-iotests/201.out b/tests/qemu-iotests/201.out
new file mode 100644
index 0000000000..9faf06f996
--- /dev/null
+++ b/tests/qemu-iotests/201.out
@@ -0,0 +1,23 @@
+QA output created by 201
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
+
+=== Starting VMs ===
+
+
+=== Set 'migrate_set_capability postcopy-ram on' and migrate ===
+
+
+=== Check if migration was successful ===
+
+
+=== On destination, execute savevm and loadvm ===
+
+(qemu) savevm state1
+(qemu) loadvm state1
+
+=== Shut down and check image ===
+
+(qemu) quit
+(qemu) quit
+No errors were found on the image.
+*** done
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
index 93d96fb22f..c4703cd782 100644
--- a/tests/qemu-iotests/group
+++ b/tests/qemu-iotests/group
@@ -197,5 +197,6 @@
 197 rw auto quick
 198 rw auto
 200 rw auto
+201 rw auto migration
 202 rw auto quick
 203 rw auto
-- 
2.13.6

  parent reply	other threads:[~2018-01-23 14:02 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-23 14:01 [Qemu-devel] [PULL 00/29] Block layer patches Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 01/29] osdep: Retry SETLK upon EINTR Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 02/29] hw/block: Fix pin-based interrupt behaviour of NVMe Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 03/29] tests/.gitignore: Add test-bdrv-drain Kevin Wolf
2018-01-23 14:01 ` Kevin Wolf [this message]
2018-01-23 14:01 ` [Qemu-devel] [PULL 05/29] qcow2: Repair unaligned preallocated zero clusters Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 06/29] iotests: Make BD-{remove, insert}-medium use @id Kevin Wolf
2018-02-12 11:16   ` Christian Borntraeger
2018-02-12 11:33     ` Christian Borntraeger
2018-02-12 12:34       ` Max Reitz
2018-01-23 14:01 ` [Qemu-devel] [PULL 07/29] tests/ahci: Switch tray and medium commands to @id Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 08/29] blockdev: Drop BD-{remove, insert}-medium's @device Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 09/29] blockdev: Mark BD-{remove, insert}-medium stable Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 10/29] qemu-iotests: Fix locking issue in 102 Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 11/29] block/vmdk: Fix , instead of ; at end of line Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 12/29] qcow2: No persistent dirty bitmaps for compat=0.10 Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 13/29] block/qcow: Add blkdebug events Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 14/29] block/vmdk: " Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 15/29] iotests: Fix _img_info for backslashes Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 16/29] iotests: Drop format-specific in _filter_img_info Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 17/29] iotests: Forbid 020 for non-file protocols Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 18/29] iotests: Skip 103 for refcount_bits=1 Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 19/29] iotests: Fix 020 for vmdk Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 20/29] iotests: Fix 051 for compat=0.10 Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 21/29] iotests: Fix 059's reference output Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 22/29] iotests: Fix 067 for compat=0.10 Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 23/29] iotests: Make 089 compatible with compat=0.10 Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 24/29] iotests: Make 184 image-less Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 25/29] iotests: Make 191 work with qcow2 options Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 26/29] iotests: Filter compat-dependent info in 198 Kevin Wolf
2018-01-23 14:01 ` [Qemu-devel] [PULL 27/29] iotests: Make 059 pass on machines with little RAM Kevin Wolf
2018-01-23 14:02 ` [Qemu-devel] [PULL 28/29] iotests: Split 177 into two parts for compat=0.10 Kevin Wolf
2018-01-23 14:02 ` [Qemu-devel] [PULL 29/29] iotests: Disable some tests " Kevin Wolf
2018-01-25  9:53 ` [Qemu-devel] [PULL 00/29] Block layer patches 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=20180123140201.31163-5-kwolf@redhat.com \
    --to=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.