aboutsummaryrefslogtreecommitdiff
path: root/tests/qmp-test.c
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2018-07-03 10:53:38 +0200
committerMarkus Armbruster <armbru@redhat.com>2018-07-03 23:18:56 +0200
commit00ecec151d2323e742af94cccf2de77025f3c0c1 (patch)
treeb7e0beaf23bc7e56f0a76e5ef5bd41f1e4247edd /tests/qmp-test.c
parent674ed7228f03150d15703961ea2a59cd744f3beb (diff)
qmp: Redo how the client requests out-of-band execution
Commit cf869d53172 "qmp: support out-of-band (oob) execution" added a general mechanism for command-independent arguments just for an out-of-band flag: The "control" key is introduced to store this extra flag. "control" field is used to store arguments that are shared by all the commands, rather than command specific arguments. Let "run-oob" be the first. However, it failed to reject unknown members of "control". For instance, in QMP command {"execute": "query-name", "id": 42, "control": {"crap": true}} "crap" gets silently ignored. Instead of fixing this, revert the general "control" mechanism (because YAGNI), and do it the way I initially proposed, with key "exec-oob". Simpler code, simpler interface. An out-of-band command {"execute": "migrate-pause", "id": 42, "control": {"run-oob": true}} becomes {"exec-oob": "migrate-pause", "id": 42} Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20180703085358.13941-13-armbru@redhat.com> [Commit message typo fixed]
Diffstat (limited to 'tests/qmp-test.c')
-rw-r--r--tests/qmp-test.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/tests/qmp-test.c b/tests/qmp-test.c
index c9d01b87ca..a7b6ec98e4 100644
--- a/tests/qmp-test.c
+++ b/tests/qmp-test.c
@@ -176,8 +176,7 @@ static void unblock_blocked_cmd(void)
static void send_oob_cmd_that_fails(QTestState *s, const char *id)
{
- qtest_async_qmp(s, "{ 'execute': 'migrate-pause', 'id': %s,"
- " 'control': { 'run-oob': true } }", id);
+ qtest_async_qmp(s, "{ 'exec-oob': 'migrate-pause', 'id': %s }", id);
}
static void recv_cmd_id(QTestState *s, const char *id)
@@ -229,9 +228,7 @@ static void test_qmp_oob(void)
* Try any command that does not support OOB but with OOB flag. We
* should get failure.
*/
- resp = qtest_qmp(qts,
- "{ 'execute': 'query-cpus',"
- " 'control': { 'run-oob': true } }");
+ resp = qtest_qmp(qts, "{ 'exec-oob': 'query-cpus' }");
g_assert(qdict_haskey(resp, "error"));
qobject_unref(resp);