* [Qemu-devel] [PATCH v2] tests: allow qemu-iotests to be run against nbd backend
@ 2012-11-02 10:28 nick
2012-11-02 12:41 ` Paolo Bonzini
0 siblings, 1 reply; 4+ messages in thread
From: nick @ 2012-11-02 10:28 UTC (permalink / raw)
To: qemu-devel; +Cc: kwolf, pbonzini, Nick Thomas
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>
---
tests/qemu-iotests/common | 14 +++++++++++---
tests/qemu-iotests/common.config | 10 ++++++----
tests/qemu-iotests/common.rc | 23 ++++++++++++++++++++++-
3 files changed, 39 insertions(+), 8 deletions(-)
diff --git a/tests/qemu-iotests/common b/tests/qemu-iotests/common
index 1f6fdf5..195722e 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,9 +353,14 @@ 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"
export QEMU_IO_PROG=valgrind_qemu_io
fi
+
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.2.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH v2] tests: allow qemu-iotests to be run against nbd backend
2012-11-02 10:28 [Qemu-devel] [PATCH v2] tests: allow qemu-iotests to be run against nbd backend nick
@ 2012-11-02 12:41 ` Paolo Bonzini
2012-11-02 13:01 ` Nicholas Thomas
2012-11-02 13:19 ` Kevin Wolf
0 siblings, 2 replies; 4+ messages in thread
From: Paolo Bonzini @ 2012-11-02 12:41 UTC (permalink / raw)
To: nick; +Cc: kwolf, qemu-devel
Il 02/11/2012 11:28, nick@bytemark.co.uk ha scritto:
> @@ -197,12 +198,14 @@ testlist options
> IMGPROTO=rbd
> xpand=false
> ;;
> -
> -sheepdog)
> IMGPROTO=sheepdog
> xpand=false
> ;;
> -
> + -nbd)
> + IMGPROTO=nbd
> + xpand=false
> + ;;
> -nocache)
Spacing problem?
Paolo
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH v2] tests: allow qemu-iotests to be run against nbd backend
2012-11-02 12:41 ` Paolo Bonzini
@ 2012-11-02 13:01 ` Nicholas Thomas
2012-11-02 13:19 ` Kevin Wolf
1 sibling, 0 replies; 4+ messages in thread
From: Nicholas Thomas @ 2012-11-02 13:01 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kwolf, qemu-devel
On Fri, 2012-11-02 at 13:41 +0100, Paolo Bonzini wrote:
> Il 02/11/2012 11:28, nick@bytemark.co.uk ha scritto:
> > @@ -197,12 +198,14 @@ testlist options
> > IMGPROTO=rbd
> > xpand=false
> > ;;
> > -
> > -sheepdog)
> > IMGPROTO=sheepdog
> > xpand=false
> > ;;
> > -
> > + -nbd)
> > + IMGPROTO=nbd
> > + xpand=false
> > + ;;
> > -nocache)
>
> Spacing problem?
>
> Paolo
Tabs vs. spaces. Blarg. v3 emailed.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH v2] tests: allow qemu-iotests to be run against nbd backend
2012-11-02 12:41 ` Paolo Bonzini
2012-11-02 13:01 ` Nicholas Thomas
@ 2012-11-02 13:19 ` Kevin Wolf
1 sibling, 0 replies; 4+ messages in thread
From: Kevin Wolf @ 2012-11-02 13:19 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: qemu-devel, nick
Am 02.11.2012 13:41, schrieb Paolo Bonzini:
> Il 02/11/2012 11:28, nick@bytemark.co.uk ha scritto:
>> @@ -197,12 +198,14 @@ testlist options
>> IMGPROTO=rbd
>> xpand=false
>> ;;
>> -
>> -sheepdog)
>> IMGPROTO=sheepdog
>> xpand=false
>> ;;
>> -
>> + -nbd)
>> + IMGPROTO=nbd
>> + xpand=false
>> + ;;
>> -nocache)
>
> Spacing problem?
Yes, tabs in the original code. Not sure how to deal best with it...
Kevin
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-11-02 13:20 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-02 10:28 [Qemu-devel] [PATCH v2] tests: allow qemu-iotests to be run against nbd backend nick
2012-11-02 12:41 ` Paolo Bonzini
2012-11-02 13:01 ` Nicholas Thomas
2012-11-02 13:19 ` Kevin Wolf
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.