[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] tests: allow qemu-iotests to be run against nbd
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] tests: allow qemu-iotests to be run against nbd backend |
Date: |
Wed, 31 Oct 2012 15:33:55 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121016 Thunderbird/16.0.1 |
Il 31/10/2012 15:01, address@hidden ha scritto:
> From: Nick Thomas <address@hidden>
>
> 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.
>
> Signed-off-by: Nick Thomas <address@hidden>
> ---
> tests/qemu-iotests/common | 7 +++++--
> tests/qemu-iotests/common.config | 8 +++++++-
> tests/qemu-iotests/common.rc | 23 ++++++++++++++++++++++-
> 3 files changed, 34 insertions(+), 4 deletions(-)
>
> diff --git a/tests/qemu-iotests/common b/tests/qemu-iotests/common
> index 1f6fdf5..09dfdf1 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
> diff --git a/tests/qemu-iotests/common.config
> b/tests/qemu-iotests/common.config
> index df082e7..5383e4d 100644
> --- a/tests/qemu-iotests/common.config
> +++ b/tests/qemu-iotests/common.config
> @@ -102,9 +102,15 @@ if [ -z "$QEMU_IO_PROG" ]; then
> 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
> +[ "$QEMU_IO_PROG" = "" ] && _fatal "qemu-io not found"
> +
> 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
>
Acked-by: Paolo Bonzini <address@hidden>
Paolo