qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/4] block: qemu-iotests - update 085 to use com


From: Benoît Canet
Subject: Re: [Qemu-devel] [PATCH 2/4] block: qemu-iotests - update 085 to use common.qemu
Date: Wed, 19 Mar 2014 14:44:46 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

The Monday 17 Mar 2014 à 21:24:38 (-0400), Jeff Cody wrote :
> The new functionality of common.qemu implements the QEMU control
> and communication functionality that was originally in test 085.
> 
> This removes that now-duplicate functionality, and uses the
> common.qemu functions.
> 
> Signed-off-by: Jeff Cody <address@hidden>
> ---
>  tests/qemu-iotests/085 | 73 
> +++++++++-----------------------------------------
>  1 file changed, 12 insertions(+), 61 deletions(-)
> 
> diff --git a/tests/qemu-iotests/085 b/tests/qemu-iotests/085
> index 33c8dc4..56cd6f8 100755
> --- a/tests/qemu-iotests/085
> +++ b/tests/qemu-iotests/085
> @@ -30,10 +30,6 @@ echo "QA output created by $seq"
>  
>  here=`pwd`
>  status=1     # failure is the default!
> -qemu_pid=
> -
> -QMP_IN="${TEST_DIR}/qmp-in-$$"
> -QMP_OUT="${TEST_DIR}/qmp-out-$$"
>  
>  snapshot_virt0="snapshot-v0.qcow2"
>  snapshot_virt1="snapshot-v1.qcow2"
> @@ -42,10 +38,7 @@ MAX_SNAPSHOTS=10
>  
>  _cleanup()
>  {
> -    kill -KILL ${qemu_pid}
> -    wait ${qemu_pid} 2>/dev/null  # silent kill
> -
> -    rm -f "${QMP_IN}" "${QMP_OUT}"
> +    _cleanup_qemu
>      for i in $(seq 1 ${MAX_SNAPSHOTS})
>      do
>          rm -f "${TEST_DIR}/${i}-${snapshot_virt0}"
> @@ -59,43 +52,12 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
>  # get standard environment, filters and checks
>  . ./common.rc
>  . ./common.filter
> +. ./common.qemu
>  
>  _supported_fmt qcow2
>  _supported_proto file
>  _supported_os Linux
>  
> -# Wait for expected QMP response from QEMU.  Will time out
> -# after 10 seconds, which counts as failure.
> -#
> -# $1 is the string to expect
> -#
> -# If $silent is set to anything but an empty string, then
> -# response is not echoed out.
> -function timed_wait_for()
> -{
> -    while read -t 10 resp <&5
> -    do
> -        if [ "${silent}" == "" ]; then
> -            echo "${resp}" | _filter_testdir | _filter_qemu
> -        fi
> -        grep -q "${1}" < <(echo ${resp})
> -        if [ $? -eq 0 ]; then
> -            return
> -        fi
> -    done
> -    echo "Timeout waiting for ${1}"
> -    exit 1  # Timeout means the test failed
> -}
> -
> -# Sends QMP command to QEMU, and waits for the expected response
> -#
> -# ${1}:  String of the QMP command to send
> -# ${2}:  String that the QEMU response should contain
> -function send_qmp_cmd()
> -{
> -    echo "${1}" >&6
> -    timed_wait_for "${2}"
> -}
>  
>  # ${1}: unique identifier for the snapshot filename
>  function create_single_snapshot()
> @@ -104,7 +66,7 @@ function create_single_snapshot()
>                        'arguments': { 'device': 'virtio0',
>                                       
> 'snapshot-file':'"${TEST_DIR}/${1}-${snapshot_virt0}"',
>                                       'format': 'qcow2' } }"
> -    send_qmp_cmd "${cmd}" "return"
> +    _send_qemu_cmd $h "${cmd}" "return"
>  }
>  
>  # ${1}: unique identifier for the snapshot filename
> @@ -120,14 +82,11 @@ function create_group_snapshot()
>                         'snapshot-file': 
> '"${TEST_DIR}/${1}-${snapshot_virt1}"' } } ]
>               } }"
>  
> -    send_qmp_cmd "${cmd}" "return"
> +    _send_qemu_cmd $h "${cmd}" "return"
>  }
>  
>  size=128M
>  
> -mkfifo "${QMP_IN}"
> -mkfifo "${QMP_OUT}"
> -
>  _make_test_img $size
>  mv "${TEST_IMG}" "${TEST_IMG}.orig"
>  _make_test_img $size
> @@ -136,23 +95,15 @@ echo
>  echo === Running QEMU ===
>  echo
>  
> -"${QEMU}" -nographic -monitor none -serial none -qmp stdio\
> -          -drive file="${TEST_IMG}.orig",if=virtio\
> -          -drive file="${TEST_IMG}",if=virtio 2>&1 >"${QMP_OUT}" 
> <"${QMP_IN}"&
> -qemu_pid=$!
> -
> -# redirect fifos to file descriptors, to keep from blocking
> -exec 5<"${QMP_OUT}"
> -exec 6>"${QMP_IN}"
> -
> -# Don't print response, since it has version information in it
> -silent=yes timed_wait_for "capabilities"
> +qemu_comm_method="qmp"
> +_launch_qemu -drive file="${TEST_IMG}.orig",if=virtio -drive 
> file="${TEST_IMG}",if=virtio
> +h=$QEMU_HANDLE
>  
>  echo
>  echo === Sending capabilities ===
>  echo
>  
> -send_qmp_cmd "{ 'execute': 'qmp_capabilities' }" "return"
> +_send_qemu_cmd $h "{ 'execute': 'qmp_capabilities' }" "return"
>  
>  echo
>  echo === Create a single snapshot on virtio0 ===
> @@ -165,16 +116,16 @@ echo
>  echo === Invalid command - missing device and nodename ===
>  echo
>  
> -send_qmp_cmd "{ 'execute': 'blockdev-snapshot-sync',
> -                      'arguments': { 
> 'snapshot-file':'"${TEST_DIR}"/1-${snapshot_virt0}',
> +_send_qemu_cmd $h "{ 'execute': 'blockdev-snapshot-sync',
> +                         'arguments': { 
> 'snapshot-file':'"${TEST_DIR}/1-${snapshot_virt0}"',
>                                       'format': 'qcow2' } }" "error"
>  
>  echo
>  echo === Invalid command - missing snapshot-file ===
>  echo
>  
> -send_qmp_cmd "{ 'execute': 'blockdev-snapshot-sync',
> -                      'arguments': { 'device': 'virtio0',
> +_send_qemu_cmd $h "{ 'execute': 'blockdev-snapshot-sync',
> +                         'arguments': { 'device': 'virtio0',
>                                       'format': 'qcow2' } }" "error"
>  echo
>  echo
> -- 
> 1.8.3.1
> 
> 
Reviewed-by: Benoit Canet <address@hidden>



reply via email to

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