qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]