*/
#define MIGRATION_STATUS_WAIT_TIMEOUT 120
-bool got_stop;
-
-static void check_stop_event(QTestState *who)
+bool migrate_watch_for_stop(QTestState *who, const char *name,
+ QDict *event, void *opaque)
{
- QDict *event = qtest_qmp_event_ref(who, "STOP");
- if (event) {
- got_stop = true;
- qobject_unref(event);
+ bool *seen = opaque;
+
+ if (g_str_equal(name, "STOP")) {
+ *seen = true;
+ return true;
}
+
+ return false;
}
#ifndef _WIN32
va_end(ap);
resp = qtest_qmp_receive(who);
- check_stop_event(who);
g_assert(!qdict_haskey(resp, "error"));
g_assert(qdict_haskey(resp, "return"));
resp = qtest_vqmp(who, command, ap);
va_end(ap);
- check_stop_event(who);
-
g_assert(!qdict_haskey(resp, "error"));
g_assert(qdict_haskey(resp, "return"));
unsigned start_address;
unsigned end_address;
static bool uffd_feature_thread_id;
+static bool got_stop;
/*
* Dirtylimit stop working if dirty page rate error
ignore_stderr);
if (!args->only_target) {
*from = qtest_init(cmd_source);
+ qtest_qmp_set_event_callback(*from,
+ migrate_watch_for_stop,
+ &got_stop);
}
cmd_target = g_strdup_printf("-accel kvm%s -accel tcg%s%s "