From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, peter.maydell@linaro.org, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PULL 2/2] iotests: simple mirror test with kvm on 1G image
Date: Mon, 3 Dec 2018 17:58:10 +0100 [thread overview]
Message-ID: <20181203165810.14509-3-kwolf@redhat.com> (raw)
In-Reply-To: <20181203165810.14509-1-kwolf@redhat.com>
From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
This test is broken without previous commit fixing dead-lock in mirror.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Acked-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
tests/qemu-iotests/235 | 76 ++++++++++++++++++++++++++++++++++++++
tests/qemu-iotests/235.out | 3 ++
tests/qemu-iotests/group | 1 +
3 files changed, 80 insertions(+)
create mode 100755 tests/qemu-iotests/235
create mode 100644 tests/qemu-iotests/235.out
diff --git a/tests/qemu-iotests/235 b/tests/qemu-iotests/235
new file mode 100755
index 0000000000..da044ed34e
--- /dev/null
+++ b/tests/qemu-iotests/235
@@ -0,0 +1,76 @@
+#!/usr/bin/env python
+#
+# Simple mirror test
+#
+# Copyright (c) 2018 Virtuozzo International GmbH. All rights reserved.
+#
+# 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/>.
+#
+
+import sys
+import os
+import iotests
+from iotests import qemu_img_create, qemu_io, file_path, log
+
+sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'scripts'))
+
+from qemu import QEMUMachine
+
+# Note:
+# This test was added to check that mirror dead-lock was fixed (see previous
+# commit before this test addition).
+# And it didn't reproduce if at least one of the following:
+# 1. use small image size
+# 2. use raw format (not qcow2)
+# 3. drop kvm and use iotests.VM() (maybe, because of qtest) (however, it still
+# reproduces, if just drop kvm, but gdb failed to produce full backtraces
+# for me)
+# 4. add iothread
+
+size = 1 * 1024 * 1024 * 1024
+
+iotests.verify_image_format(supported_fmts=['qcow2'])
+
+disk = file_path('disk')
+
+# prepare source image
+qemu_img_create('-f', iotests.imgfmt, '-o', 'preallocation=metadata', disk,
+ str(size))
+
+vm = QEMUMachine(iotests.qemu_prog)
+vm.add_args('-machine', 'pc,accel=kvm')
+vm.add_args('-drive', 'id=src,file=' + disk)
+vm.launch()
+
+log(vm.qmp('object-add', qom_type='throttle-group', id='tg0',
+ props={ 'x-bps-total': size }))
+
+log(vm.qmp('blockdev-add',
+ **{ 'node-name': 'target',
+ 'driver': 'throttle',
+ 'throttle-group': 'tg0',
+ 'file': {
+ 'driver': 'null-co',
+ 'size': size
+ } }))
+
+log(vm.qmp('blockdev-mirror', device='src', target='target', sync='full'))
+
+try:
+ vm.event_wait('BLOCK_JOB_READY', timeout=10.0)
+except:
+ vm.shutdown()
+ raise
+
+vm.shutdown()
diff --git a/tests/qemu-iotests/235.out b/tests/qemu-iotests/235.out
new file mode 100644
index 0000000000..39db621e04
--- /dev/null
+++ b/tests/qemu-iotests/235.out
@@ -0,0 +1,3 @@
+{"return": {}}
+{"return": {}}
+{"return": {}}
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
index 8c56a0ad11..61a6d98ebd 100644
--- a/tests/qemu-iotests/group
+++ b/tests/qemu-iotests/group
@@ -232,3 +232,4 @@
232 auto quick
233 auto quick
234 auto quick migration
+235 auto quick
--
2.19.2
next prev parent reply other threads:[~2018-12-03 16:58 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-03 16:58 [Qemu-devel] [PULL 0/2] Block layer patches Kevin Wolf
2018-12-03 16:58 ` [Qemu-devel] [PULL 1/2] mirror: fix dead-lock Kevin Wolf
2018-12-03 16:58 ` Kevin Wolf [this message]
[not found] ` <dc86835f-65d9-cada-dc9b-1f2c708521f9@de.ibm.com>
[not found] ` <75f7e3cc-bd46-c743-84ab-cd68bcb1dcfb@de.ibm.com>
2018-12-05 8:23 ` [Qemu-devel] [qemu-s390x] [PULL 2/2] iotests: simple mirror test with kvm on 1G image Christian Borntraeger
2018-12-05 8:46 ` Kevin Wolf
2018-12-05 9:01 ` Christian Borntraeger
2018-12-05 12:00 ` Vladimir Sementsov-Ogievskiy
2018-12-05 12:35 ` Christian Borntraeger
2018-12-05 13:39 ` Vladimir Sementsov-Ogievskiy
2018-12-05 15:52 ` Christian Borntraeger
2018-12-05 16:09 ` Vladimir Sementsov-Ogievskiy
2018-12-05 16:23 ` Christian Borntraeger
2018-12-06 11:05 ` Christian Borntraeger
2018-12-07 12:14 ` Kevin Wolf
2018-12-03 17:43 ` [Qemu-devel] [PULL 0/2] 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=20181203165810.14509-3-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=peter.maydell@linaro.org \
--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.