Commit a2339699 authored by Jeff Cody's avatar Jeff Cody
Browse files

qemu-iotests: add option in common.qemu for mismatch only



Add option to echo response to QMP / HMP command only on mismatch.

Useful for ignore all normal responses, but catching things like
segfaults.

Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 6133b39f
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -50,6 +50,8 @@ _in_fd=4
#
# If $silent is set to anything but an empty string, then
# response is not echoed out.
# If $mismatch_only is set, only non-matching responses will
# be echoed.
function _timed_wait_for()
{
    local h=${1}
@@ -58,14 +60,18 @@ function _timed_wait_for()
    QEMU_STATUS[$h]=0
    while IFS= read -t ${QEMU_COMM_TIMEOUT} resp <&${QEMU_OUT[$h]}
    do
        if [ -z "${silent}" ]; then
        if [ -z "${silent}" ] && [ -z "${mismatch_only}" ]; then
            echo "${resp}" | _filter_testdir | _filter_qemu \
                           | _filter_qemu_io | _filter_qmp | _filter_hmp
        fi
        grep -q "${*}" < <(echo "${resp}")
        if [ $? -eq 0 ]; then
            return
        elif [ -z "${silent}" ] && [ -n "${mismatch_only}" ]; then
            echo "${resp}" | _filter_testdir | _filter_qemu \
                           | _filter_qemu_io | _filter_qmp | _filter_hmp
        fi

    done
    QEMU_STATUS[$h]=-1
    if [ -z "${qemu_error_no_exit}" ]; then