/* * Events can get in the way of responses we are actually waiting for. */ static QDict *return_or_event(QDict *response) { const char *event_string; if (!qdict_haskey(response, "event")) { return response; } /* OK, it was an event */ event_string = qdict_get_str(response, "event"); if (!strcmp(event_string, "STOP")) { got_stop = true; } QDECREF(response); return return_or_event(qtest_qmp_receive(global_qtest)); }
/* * Events can get in the way of responses we are actually waiting for. */ static QDict *wait_command(QTestState *who, const char *command) { const char *event_string; QDict *response; response = qtest_qmp(who, command); while (qdict_haskey(response, "event")) { /* OK, it was an event */ event_string = qdict_get_str(response, "event"); if (!strcmp(event_string, "STOP")) { got_stop = true; } qobject_unref(response); response = qtest_qmp_receive(who); } return response; }