migration-test: Clean up string interpolation into QMP, part 1

Leaving interpolation into JSON to qmp() is more robust than building
QMP input manually, as explained in the recent commit "tests: Clean up
string interpolation into QMP input (simple cases)".

migrate_recover() builds QMP input manually because wait_command()
can't interpolate.  Well, it can since the previous commit.  Simplify
accordingly.

Bonus: gets rid of a non-literal format string.  A step towards
compile-time format string checking without triggering
-Wformat-nonliteral.

Cc: Juan Quintela <quintela@redhat.com>
Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20180806065344.7103-19-armbru@redhat.com>
This commit is contained in:
Markus Armbruster 2018-08-06 08:53:39 +02:00
parent 4399596b15
commit b7281c6989

View File

@ -159,6 +159,7 @@ static void stop_cb(void *opaque, const char *name, QDict *data)
/*
* Events can get in the way of responses we are actually waiting for.
*/
GCC_FMT_ATTR(2, 3)
static QDict *wait_command(QTestState *who, const char *command, ...)
{
va_list ap;
@ -357,13 +358,12 @@ static void migrate_pause(QTestState *who)
static void migrate_recover(QTestState *who, const char *uri)
{
QDict *rsp;
gchar *cmd = g_strdup_printf(
"{ 'execute': 'migrate-recover', "
" 'id': 'recover-cmd', "
" 'arguments': { 'uri': '%s' } }", uri);
rsp = wait_command(who, cmd);
g_free(cmd);
rsp = wait_command(who,
"{ 'execute': 'migrate-recover', "
" 'id': 'recover-cmd', "
" 'arguments': { 'uri': %s } }",
uri);
qobject_unref(rsp);
}