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 <ebl...@redhat.com> --- tests/libqtest.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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); -- 2.7.4