Allow migrate_start_set_capabilities() to set the config object instead of setting the capabilities via calls to migrate-set-capabilities.
Signed-off-by: Fabiano Rosas <faro...@suse.de> --- tests/qtest/migration/framework.c | 31 +++++++++++++++++++++++++++++++ tests/qtest/migration/framework.h | 1 + 2 files changed, 32 insertions(+) diff --git a/tests/qtest/migration/framework.c b/tests/qtest/migration/framework.c index 407c9023c0..9ff5576328 100644 --- a/tests/qtest/migration/framework.c +++ b/tests/qtest/migration/framework.c @@ -211,6 +211,37 @@ static QList *migrate_start_get_qmp_capabilities(const MigrateStart *args) static void migrate_start_set_capabilities(QTestState *from, QTestState *to, MigrateStart *args) { + if (args->config) { + const char *cap_multifd; + bool multifd; + + for (uint8_t i = 0; i < MIGRATION_CAPABILITY__MAX; i++) { + const char *cap = MigrationCapability_lookup.array[i]; + + if (!args->caps[i]) { + continue; + } + + qdict_put_bool(args->config, cap, true); + } + + if (!args->defer_target_connect) { + qdict_put_bool(args->config, "events", true); + } + + cap_multifd = MigrationCapability_str(MIGRATION_CAPABILITY_MULTIFD); + multifd = qdict_get_try_bool(args->config, cap_multifd, false); + + if (multifd) { + qdict_put_int(args->config, "multifd-channels", + MULTIFD_TEST_CHANNELS); + qdict_put_int(args->config, "multifd-channels", + MULTIFD_TEST_CHANNELS); + } + + return; + } + /* * MigrationCapability_lookup and MIGRATION_CAPABILITY_ constants * are from qapi-types-migration.h. diff --git a/tests/qtest/migration/framework.h b/tests/qtest/migration/framework.h index 01e425e64e..9b281d6757 100644 --- a/tests/qtest/migration/framework.h +++ b/tests/qtest/migration/framework.h @@ -128,6 +128,7 @@ typedef struct { * migration_set_capabilities(). */ bool caps[MIGRATION_CAPABILITY__MAX]; + QDict *config; } MigrateStart; typedef enum PostcopyRecoveryFailStage { -- 2.35.3