tests/qtests: add qtest_qmp_add_client()

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Marc-André Lureau 2021-10-07 01:07:30 +04:00
parent 99997823bb
commit 2c7294d72c
2 changed files with 29 additions and 0 deletions

View file

@ -744,6 +744,16 @@ void qtest_qmp_device_add_qdict(QTestState *qts, const char *drv,
void qtest_qmp_device_add(QTestState *qts, const char *driver, const char *id,
const char *fmt, ...) GCC_FMT_ATTR(4, 5);
/**
* qtest_qmp_add_client:
* @qts: QTestState instance to operate on
* @protocol: the protocol to add to
* @fd: the client file-descriptor
*
* Call QMP ``getfd`` followed by ``add_client`` with the given @fd.
*/
void qtest_qmp_add_client(QTestState *qts, const char *protocol, int fd);
/**
* qtest_qmp_device_del:
* @qts: QTestState instance to operate on

View file

@ -1453,6 +1453,25 @@ void qtest_qmp_device_add(QTestState *qts, const char *driver, const char *id,
qobject_unref(args);
}
void qtest_qmp_add_client(QTestState *qts, const char *protocol, int fd)
{
QDict *resp;
resp = qtest_qmp_fds(qts, &fd, 1, "{'execute': 'getfd',"
"'arguments': {'fdname': 'fdname'}}");
g_assert(resp);
g_assert(!qdict_haskey(resp, "event")); /* We don't expect any events */
g_assert(!qdict_haskey(resp, "error"));
qobject_unref(resp);
resp = qtest_qmp(
qts, "{'execute': 'add_client',"
"'arguments': {'protocol': %s, 'fdname': 'fdname'}}", protocol);
g_assert(resp);
g_assert(!qdict_haskey(resp, "event")); /* We don't expect any events */
g_assert(!qdict_haskey(resp, "error"));
qobject_unref(resp);
}
/*
* Generic hot-unplugging test via the device_del QMP command.