[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>
- [Qemu-devel] [PATCH 0/4] Add common QEMU control functionality to qemu-iotests, Jeff Cody, 2014/03/17
- [Qemu-devel] [PATCH 1/4] block: qemu-iotests - add common.qemu, for bash-controlled qemu tests, Jeff Cody, 2014/03/17
- Re: [Qemu-devel] [PATCH 1/4] block: qemu-iotests - add common.qemu, for bash-controlled qemu tests, Benoît Canet, 2014/03/19
- Re: [Qemu-devel] [PATCH 1/4] block: qemu-iotests - add common.qemu, for bash-controlled qemu tests, Jeff Cody, 2014/03/19
- Re: [Qemu-devel] [PATCH 1/4] block: qemu-iotests - add common.qemu, for bash-controlled qemu tests, Eric Blake, 2014/03/19
- Re: [Qemu-devel] [PATCH 1/4] block: qemu-iotests - add common.qemu, for bash-controlled qemu tests, Eric Blake, 2014/03/19
- Re: [Qemu-devel] [PATCH 1/4] block: qemu-iotests - add common.qemu, for bash-controlled qemu tests, Jeff Cody, 2014/03/19
- Re: [Qemu-devel] [PATCH 1/4] block: qemu-iotests - add common.qemu, for bash-controlled qemu tests, Eric Blake, 2014/03/19
[Qemu-devel] [PATCH 2/4] block: qemu-iotests - update 085 to use common.qemu, Jeff Cody, 2014/03/17
- Re: [Qemu-devel] [PATCH 2/4] block: qemu-iotests - update 085 to use common.qemu,
Benoît Canet <=
[Qemu-devel] [PATCH 3/4] block: qemu-iotests - fix image cleanup when using spaced pathnames, Jeff Cody, 2014/03/17
[Qemu-devel] [PATCH 4/4] block: qemu-iotests: make test 019 and 086 work with spaced pathnames, Jeff Cody, 2014/03/17