Commit 7ffe3124 authored by John Snow's avatar John Snow
Browse files

libqtest: add qmp_eventwait_ref



Wait for an event, but return a copy so we can investigate parameters.

Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarKevin Wolf <kwolf@redhat.com>
Message-id: 1478553214-497-3-git-send-email-jsnow@redhat.com
Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
parent c47ee043
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -533,7 +533,7 @@ void qtest_qmp_discard_response(QTestState *s, const char *fmt, ...)
    QDECREF(response);
}

void qtest_qmp_eventwait(QTestState *s, const char *event)
QDict *qtest_qmp_eventwait_ref(QTestState *s, const char *event)
{
    QDict *response;

@@ -541,13 +541,20 @@ void qtest_qmp_eventwait(QTestState *s, const char *event)
        response = qtest_qmp_receive(s);
        if ((qdict_haskey(response, "event")) &&
            (strcmp(qdict_get_str(response, "event"), event) == 0)) {
            QDECREF(response);
            break;
            return response;
        }
        QDECREF(response);
    }
}

void qtest_qmp_eventwait(QTestState *s, const char *event)
{
    QDict *response;

    response = qtest_qmp_eventwait_ref(s, event);
    QDECREF(response);
}

char *qtest_hmpv(QTestState *s, const char *fmt, va_list ap)
{
    char *cmd;
+22 −0
Original line number Diff line number Diff line
@@ -113,6 +113,16 @@ QDict *qtest_qmp_receive(QTestState *s);
 */
void qtest_qmp_eventwait(QTestState *s, const char *event);

/**
 * qtest_qmp_eventwait_ref:
 * @s: #QTestState instance to operate on.
 * @s: #event event to wait for.
 *
 * Continuosly polls for QMP responses until it receives the desired event.
 * Returns a copy of the event for further investigation.
 */
QDict *qtest_qmp_eventwait_ref(QTestState *s, const char *event);

/**
 * qtest_hmpv:
 * @s: #QTestState instance to operate on.
@@ -558,6 +568,18 @@ static inline void qmp_eventwait(const char *event)
    return qtest_qmp_eventwait(global_qtest, event);
}

/**
 * qmp_eventwait_ref:
 * @s: #event event to wait for.
 *
 * Continuosly polls for QMP responses until it receives the desired event.
 * Returns a copy of the event for further investigation.
 */
static inline QDict *qmp_eventwait_ref(const char *event)
{
    return qtest_qmp_eventwait_ref(global_qtest, event);
}

/**
 * hmp:
 * @fmt...: HMP command to send to QEMU