diff mbox

[10/36] qtest: Avoid dynamic JSON in libqtest

Message ID 1480535094-23831-11-git-send-email-eblake@redhat.com
State New
Headers show

Commit Message

Eric Blake Nov. 30, 2016, 7:44 p.m. UTC
The qobject_from_jsonf() function implements a pseudo-printf
language for creating a QObject through the extension of dynamic
JSON; however, it is hard-coded to only parse a subset of
formats understood by -Wformat and is not a straight synonym to
bare printf().  During a recent cleanup due to problems caused
by PRId64, it was questioned whether the maintenance burden of
keeping the dynamic JSON extension can be counterbalanced by
converting code to use alternative ways of describing QObject.

The only use of dynamic JSON in the testsuite glue code was
the creation of a human monitor command over QMP, and is a
relatively straightforward update.

Signed-off-by: Eric Blake <eblake@redhat.com>
---
 tests/libqtest.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/tests/libqtest.c b/tests/libqtest.c
index 0796bb0..26c4beb 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -580,11 +580,11 @@  char *qtest_hmpv(QTestState *s, const char *fmt, va_list ap)
     char *cmd;
     QDict *resp;
     char *ret;
+    QDict *args = qdict_new();

     cmd = g_strdup_vprintf(fmt, ap);
-    resp = qtest_qmp(s, "{'execute': 'human-monitor-command',"
-                     " 'arguments': {'command-line': %s}}",
-                     cmd);
+    qdict_put_str(args, "command-line", cmd);
+    resp = qtest_qmp_cmd(s, "human-monitor-command", args);
     ret = g_strdup(qdict_get_try_str(resp, "return"));
     g_assert(ret);
     QDECREF(resp);