From: Kevin Wolf <kwolf@redhat.com>
To: anthony@codemonkey.ws
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 06/26] tests: allow qemu-iotests to be run against nbd backend
Date: Wed, 14 Nov 2012 19:47:07 +0100 [thread overview]
Message-ID: <1352918847-3696-7-git-send-email-kwolf@redhat.com> (raw)
In-Reply-To: <1352918847-3696-1-git-send-email-kwolf@redhat.com>
From: Nick Thomas <nick@bytemark.co.uk>
To do this, we start a qemu-nbd process at _make_test_img and kill
it in _cleanup_test_img. $TEST_IMG is changed to point at the TCP
server. We also remove the checks for existence of binaries from
common.config - they're duplicated in common, and we can make the
qemu-nbd check conditional on $IMGPROTO being "nbd" if we do it there.
Signed-off-by: Nick Thomas <nick@bytemark.co.uk>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
tests/qemu-iotests/common | 13 ++++++++++---
tests/qemu-iotests/common.config | 10 ++++++----
tests/qemu-iotests/common.rc | 23 ++++++++++++++++++++++-
3 files changed, 38 insertions(+), 8 deletions(-)
diff --git a/tests/qemu-iotests/common b/tests/qemu-iotests/common
index 1f6fdf5..b3aad89 100644
--- a/tests/qemu-iotests/common
+++ b/tests/qemu-iotests/common
@@ -136,6 +136,7 @@ check options
-vmdk test vmdk
-rbd test rbd
-sheepdog test sheepdog
+ -nbd test nbd
-xdiff graphical mode diff
-nocache use O_DIRECT on backing file
-misalign misalign memory allocations
@@ -197,12 +198,14 @@ testlist options
IMGPROTO=rbd
xpand=false
;;
-
-sheepdog)
IMGPROTO=sheepdog
xpand=false
;;
-
+ -nbd)
+ IMGPROTO=nbd
+ xpand=false
+ ;;
-nocache)
QEMU_IO_OPTIONS="$QEMU_IO_OPTIONS --nocache"
xpand=false
@@ -350,7 +353,11 @@ fi
[ "$QEMU" = "" ] && _fatal "qemu not found"
[ "$QEMU_IMG" = "" ] && _fatal "qemu-img not found"
-[ "$QEMU_IO" = "" ] && _fatal "qemu-img not found"
+[ "$QEMU_IO" = "" ] && _fatal "qemu-io not found"
+
+if [ "$IMGPROTO" = "nbd" ] ; then
+ [ "$QEMU_NBD" = "" ] && _fatal "qemu-nbd not found"
+fi
if $valgrind; then
export REAL_QEMU_IO="$QEMU_IO_PROG"
diff --git a/tests/qemu-iotests/common.config b/tests/qemu-iotests/common.config
index df082e7..08a3f10 100644
--- a/tests/qemu-iotests/common.config
+++ b/tests/qemu-iotests/common.config
@@ -90,21 +90,23 @@ export PS_ALL_FLAGS="-ef"
if [ -z "$QEMU_PROG" ]; then
export QEMU_PROG="`set_prog_path qemu`"
fi
-[ "$QEMU_PROG" = "" ] && _fatal "qemu not found"
if [ -z "$QEMU_IMG_PROG" ]; then
export QEMU_IMG_PROG="`set_prog_path qemu-img`"
fi
-[ "$QEMU_IMG_PROG" = "" ] && _fatal "qemu-img not found"
if [ -z "$QEMU_IO_PROG" ]; then
export QEMU_IO_PROG="`set_prog_path qemu-io`"
fi
-[ "$QEMU_IO_PROG" = "" ] && _fatal "qemu-io not found"
+
+if [ -z "$QEMU_NBD_PROG" ]; then
+ export QEMU_NBD_PROG="`set_prog_path qemu-nbd`"
+fi
export QEMU=$QEMU_PROG
-export QEMU_IMG=$QEMU_IMG_PROG
+export QEMU_IMG=$QEMU_IMG_PROG
export QEMU_IO="$QEMU_IO_PROG $QEMU_IO_OPTIONS"
+export QEMU_NBD=$QEMU_NBD_PROG
[ -f /etc/qemu-iotest.config ] && . /etc/qemu-iotest.config
diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc
index 334534f..aef5f52 100644
--- a/tests/qemu-iotests/common.rc
+++ b/tests/qemu-iotests/common.rc
@@ -49,6 +49,9 @@ umask 022
if [ "$IMGPROTO" = "file" ]; then
TEST_IMG=$TEST_DIR/t.$IMGFMT
+elif [ "$IMGPROTO" = "nbd" ]; then
+ TEST_IMG_FILE=$TEST_DIR/t.$IMGFMT
+ TEST_IMG="nbd:127.0.0.1:10810"
else
TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT
fi
@@ -86,6 +89,13 @@ _make_test_img()
local extra_img_options=""
local image_size=$*
local optstr=""
+ local img_name=""
+
+ if [ -n "$TEST_IMG_FILE" ]; then
+ img_name=$TEST_IMG_FILE
+ else
+ img_name=$TEST_IMG
+ fi
if [ -n "$IMGOPTS" ]; then
optstr=$(_optstr_add "$optstr" "$IMGOPTS")
@@ -104,7 +114,7 @@ _make_test_img()
fi
# XXX(hch): have global image options?
- $QEMU_IMG create -f $IMGFMT $extra_img_options $TEST_IMG $image_size | \
+ $QEMU_IMG create -f $IMGFMT $extra_img_options $img_name $image_size | \
sed -e "s#$IMGPROTO:$TEST_DIR#TEST_DIR#g" \
-e "s#$TEST_DIR#TEST_DIR#g" \
-e "s#$IMGFMT#IMGFMT#g" \
@@ -115,12 +125,23 @@ _make_test_img()
-e "s# compat6=\\(on\\|off\\)##g" \
-e "s# static=\\(on\\|off\\)##g" \
-e "s# lazy_refcounts=\\(on\\|off\\)##g"
+
+ # Start an NBD server on the image file, which is what we'll be talking to
+ if [ $IMGPROTO = "nbd" ]; then
+ eval "$QEMU_NBD -v -t -b 127.0.0.1 -p 10810 $TEST_IMG_FILE &"
+ QEMU_NBD_PID=$!
+ sleep 1 # FIXME: qemu-nbd needs to be listening before we continue
+ fi
}
_cleanup_test_img()
{
case "$IMGPROTO" in
+ nbd)
+ kill $QEMU_NBD_PID
+ rm -f $TEST_IMG_FILE
+ ;;
file)
rm -f $TEST_DIR/t.$IMGFMT
rm -f $TEST_DIR/t.$IMGFMT.orig
--
1.7.6.5
next prev parent reply other threads:[~2012-11-14 18:47 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-14 18:47 [Qemu-devel] [PULL 00/26] Block patches Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 01/26] qemu: Document GlusterFS block driver usage Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 02/26] qcow2: Fix refcount table size calculation Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 03/26] qemu-iotests: qcow2: Test growing large refcount table Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 04/26] MAINTAINERS: add Stefan Hajnoczi as block and virtio-blk co-maintainer Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 05/26] block: Workaround for older versions of MinGW gcc Kevin Wolf
2012-11-14 18:47 ` Kevin Wolf [this message]
2012-11-14 18:47 ` [Qemu-devel] [PATCH 07/26] aio: switch aiocb_size type int -> size_t Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 08/26] aio: use g_slice_alloc() for AIOCB pooling Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 09/26] aio: rename AIOPool to AIOCBInfo Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 10/26] fdc: Remove status0 parameter from fdctrl_set_fifo() Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 11/26] fdc-test: split test_media_change() test, so insert part can be reused Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 12/26] fdc-test: insert media before fuzzing registers Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 13/26] fdc-test: add tests for non-DMA READ command Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 14/26] fdc: use status0 field instead of a local variable Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 15/26] fdc: fix FD_SR0_SEEK for non-DMA transfers and multi sectors transfers Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 16/26] fdc: fix FD_SR0_SEEK for initial seek on DMA transfers Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 17/26] fdc: fix false FD_SR0_SEEK Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 18/26] fdc-test: Check READ ID Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 19/26] fdc: implement VERIFY command Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 20/26] fdc-tests: add tests for " Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 21/26] fdc: remove double affectation of FD_MSR_CMDBUSY flag Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 22/26] fdc: fix typo in zero constant Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 23/26] fdc: remove last usage of FD_STATE_SEEK Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 24/26] vmdk: Fix data corruption bug in WRITE and READ handling Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 25/26] megasas: Use bdrv_drain_all instead of qemu_aio_flush Kevin Wolf
2012-11-14 18:47 ` [Qemu-devel] [PATCH 26/26] qemu-io: " Kevin Wolf
2012-11-19 9:12 ` [Qemu-devel] [PULL 00/26] Block patches Kevin Wolf
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=1352918847-3696-7-git-send-email-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=anthony@codemonkey.ws \
--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.