tests/qtest: capture RESUME events during migration
When running migration tests we monitor for a STOP event so we can skip redundant waits. This will be needed for the RESUME event too shortly. Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20230601161347.1803440-8-berrange@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
parent
aca0406958
commit
266ea334b2
@ -36,6 +36,19 @@ bool migrate_watch_for_stop(QTestState *who, const char *name,
|
||||
return false;
|
||||
}
|
||||
|
||||
bool migrate_watch_for_resume(QTestState *who, const char *name,
|
||||
QDict *event, void *opaque)
|
||||
{
|
||||
bool *seen = opaque;
|
||||
|
||||
if (g_str_equal(name, "RESUME")) {
|
||||
*seen = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Send QMP command "migrate".
|
||||
* Arguments are built from @fmt... (formatted like
|
||||
|
@ -17,6 +17,8 @@
|
||||
|
||||
bool migrate_watch_for_stop(QTestState *who, const char *name,
|
||||
QDict *event, void *opaque);
|
||||
bool migrate_watch_for_resume(QTestState *who, const char *name,
|
||||
QDict *event, void *opaque);
|
||||
|
||||
G_GNUC_PRINTF(3, 4)
|
||||
void migrate_qmp(QTestState *who, const char *uri, const char *fmt, ...);
|
||||
|
@ -44,6 +44,7 @@ unsigned start_address;
|
||||
unsigned end_address;
|
||||
static bool uffd_feature_thread_id;
|
||||
static bool got_stop;
|
||||
static bool got_resume;
|
||||
|
||||
/*
|
||||
* Dirtylimit stop working if dirty page rate error
|
||||
@ -607,6 +608,7 @@ static int test_migrate_start(QTestState **from, QTestState **to,
|
||||
}
|
||||
|
||||
got_stop = false;
|
||||
got_resume = false;
|
||||
bootpath = g_strdup_printf("%s/bootsect", tmpfs);
|
||||
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
|
||||
/* the assembled x86 boot sector should be exactly one sector large */
|
||||
@ -712,6 +714,9 @@ static int test_migrate_start(QTestState **from, QTestState **to,
|
||||
args->opts_target ? args->opts_target : "",
|
||||
ignore_stderr);
|
||||
*to = qtest_init(cmd_target);
|
||||
qtest_qmp_set_event_callback(*to,
|
||||
migrate_watch_for_resume,
|
||||
&got_resume);
|
||||
|
||||
/*
|
||||
* Remove shmem file immediately to avoid memory leak in test failed case.
|
||||
|
Loading…
x
Reference in New Issue
Block a user