Remove all of the code that sets capabilities via migrate_set_capabilities. All the users have already been converted to use the new API.
Also remove all usage of the use-config key. This is not needed anymore, tests should always pass the config object, even if empty. The ensure_non_converge and ensure_converge functions don't need the QTestState parameter anymore because there will be no fallback, the config will always be used. Signed-off-by: Fabiano Rosas <[email protected]> --- tests/qtest/migration/cpr-tests.c | 3 - tests/qtest/migration/framework.c | 86 +++----------------------- tests/qtest/migration/migration-qmp.c | 82 +++++------------------- tests/qtest/migration/migration-qmp.h | 4 +- tests/qtest/migration/migration-util.c | 1 - tests/qtest/migration/migration-util.h | 34 ---------- tests/qtest/migration/misc-tests.c | 16 +---- tests/qtest/migration/precopy-tests.c | 24 +++---- 8 files changed, 37 insertions(+), 213 deletions(-) diff --git a/tests/qtest/migration/cpr-tests.c b/tests/qtest/migration/cpr-tests.c index 57199ed3b8..f8c20b9038 100644 --- a/tests/qtest/migration/cpr-tests.c +++ b/tests/qtest/migration/cpr-tests.c @@ -186,9 +186,6 @@ static void test_cpr_exec(MigrateCommon *args) FILE_TEST_FILENAME); g_autofree char *channels = NULL; - /* temporary */ - qdict_put_bool(args->start.config, "use-config", true); - if (migrate_start(&from, NULL, args->listen_uri, &args->start)) { return; } diff --git a/tests/qtest/migration/framework.c b/tests/qtest/migration/framework.c index f596f1c171..363604031e 100644 --- a/tests/qtest/migration/framework.c +++ b/tests/qtest/migration/framework.c @@ -209,70 +209,21 @@ static QList *migrate_start_get_qmp_capabilities(const MigrateStart *args) } static void migrate_start_set_default_options(MigrateStart *args) -{ - if (args->config && qdict_get_bool(args->config, "use-config")) { - /* - * Always enable migration events. Libvirt always uses it, - * let's mimic that. - */ - qdict_put_bool(args->config, "events", true); - - /* - * Default number of channels should be fine for most - * tests. Individual tests can override by calling - * migrate_set_parameter() directly. - */ - if (qdict_get_try_bool(args->config, "multifd", false)) { - qdict_put_int(args->config, "multifd-channels", - MULTIFD_TEST_CHANNELS); - } - - return; - } -} - -static void migrate_start_set_capabilities(QTestState *from, QTestState *to, - MigrateStart *args) { /* - * MigrationCapability_lookup and MIGRATION_CAPABILITY_ constants - * are from qapi-types-migration.h. + * Always enable migration events. Libvirt always uses it, + * let's mimic that. */ - for (uint8_t i = 0; i < MIGRATION_CAPABILITY__MAX; i++) { - if (!args->caps[i]) { - continue; - } - if (from) { - migrate_set_capability(from, - MigrationCapability_lookup.array[i], true); - } - if (to) { - migrate_set_capability(to, - MigrationCapability_lookup.array[i], true); - } - } - - /* - * Always enable migration events. Libvirt always uses it, let's try - * to mimic as closer as that. - */ - migrate_set_capability(from, "events", true); - if (!args->defer_target_connect && to) { - migrate_set_capability(to, "events", true); - } + qdict_put_bool(args->config, "events", true); /* * Default number of channels should be fine for most * tests. Individual tests can override by calling * migrate_set_parameter() directly. */ - if (args->caps[MIGRATION_CAPABILITY_MULTIFD]) { - migrate_set_parameter_int(from, "multifd-channels", - MULTIFD_TEST_CHANNELS); - if (to) { - migrate_set_parameter_int(to, "multifd-channels", - MULTIFD_TEST_CHANNELS); - } + if (qdict_get_try_bool(args->config, "multifd", false)) { + qdict_put_int(args->config, "multifd-channels", + MULTIFD_TEST_CHANNELS); } return; @@ -429,7 +380,7 @@ int migrate_args(char **from, char **to, const char *uri, MigrateStart *args) */ events = args->defer_target_connect ? "-global migration.x-events=on" : ""; - if (!args->incoming_defer && args->config) { + if (!args->incoming_defer) { QDict *conf = fixup_tls_creds(args->config); GString *json = qobject_to_json(QOBJECT(conf)); @@ -512,11 +463,9 @@ int migrate_start(QTestState **from, QTestState **to, const char *uri, bootfile_create(qtest_get_arch(), tmpfs, args->suspend_me); src_state.suspend_me = args->suspend_me; - args->config = config_load(args->config); if (migrate_args(&cmd_source, &cmd_target, uri, args)) { return -1; } - config_put(args->config); if (!args->only_target) { *from = qtest_init_ext(QEMU_ENV_SRC, cmd_source, capabilities, true); @@ -534,9 +483,6 @@ int migrate_start(QTestState **from, QTestState **to, const char *uri, } migrate_mem_type_cleanup(args->mem_type); - migrate_start_set_capabilities(*from, - args->only_source ? NULL : *to, - args); return 0; } @@ -598,7 +544,7 @@ static int migrate_postcopy_prepare(QTestState **from_ptr, args->start_hook_data); } - migrate_ensure_non_converge(from, args->start.config); + migrate_ensure_non_converge(args->start.config); migrate_prepare_for_dirty_mem(from); channels = qobject_from_json("[ { 'channel-type': 'main'," @@ -654,9 +600,6 @@ void test_postcopy_common(MigrateCommon *args) { QTestState *from, *to; - /* temporary */ - qdict_put_bool(args->start.config, "use-config", true); - if (migrate_postcopy_prepare(&from, &to, args)) { return; } @@ -790,9 +733,6 @@ void test_postcopy_recovery_common(MigrateCommon *args) QTestState *from, *to; g_autofree char *uri = NULL; - /* temporary */ - qdict_put_bool(args->start.config, "use-config", true); - /* * Always enable OOB QMP capability for recovery tests, migrate-recover is * executed out-of-band @@ -868,9 +808,6 @@ int test_precopy_common(MigrateCommon *args) QObject *in_channels = NULL; QObject *out_channels = NULL; - /* temporary */ - qdict_put_bool(args->start.config, "use-config", true); - g_assert(!args->cpr_channel || args->connect_channels); if (args->start.incoming_defer) { g_assert(args->listen_uri || args->connect_channels); @@ -906,7 +843,7 @@ int test_precopy_common(MigrateCommon *args) } if (args->live) { - migrate_ensure_non_converge(from, args->start.config); + migrate_ensure_non_converge(args->start.config); migrate_prepare_for_dirty_mem(from); } else { /* @@ -1059,9 +996,6 @@ void test_file_common(MigrateCommon *args, bool stop_src) void *data_hook = NULL; bool check_offset = false; - /* temporary */ - qdict_put_bool(args->start.config, "use-config", true); - if (migrate_start(&from, &to, args->listen_uri, &args->start)) { return; } @@ -1089,7 +1023,7 @@ void test_file_common(MigrateCommon *args, bool stop_src) data_hook = args->start_hook_full(from, to, args->start_hook_data); } - migrate_ensure_converge(from, args->start.config); + migrate_ensure_converge(args->start.config); wait_for_serial("src_serial"); if (stop_src) { diff --git a/tests/qtest/migration/migration-qmp.c b/tests/qtest/migration/migration-qmp.c index a4dde029ee..a9edc793cd 100644 --- a/tests/qtest/migration/migration-qmp.c +++ b/tests/qtest/migration/migration-qmp.c @@ -96,11 +96,8 @@ void migrate_qmp_fail(QTestState *who, const char *uri, qdict_put_obj(args, "channels", channels); } - config = config_load(config); - if (config) { - qdict_put_obj(args, "config", QOBJECT(config)); - qobject_ref(config); - } + qdict_put_obj(args, "config", QOBJECT(config)); + qobject_ref(config); err = qtest_qmp_assert_failure_ref( who, "{ 'execute': 'migrate', 'arguments': %p}", args); @@ -108,7 +105,6 @@ void migrate_qmp_fail(QTestState *who, const char *uri, g_assert(qdict_haskey(err, "desc")); qobject_unref(err); - config_put(config); } /* @@ -142,26 +138,11 @@ void migrate_qmp(QTestState *who, QTestState *to, const char *uri, qdict_put_obj(args, "channels", channels); } - config = config_load(config); - if (config) { - qdict_put_obj(args, "config", QOBJECT(config)); - qobject_ref(config); - } + qdict_put_obj(args, "config", QOBJECT(config)); + qobject_ref(config); qtest_qmp_assert_success(who, "{ 'execute': 'migrate', 'arguments': %p}", args); - config_put(config); -} - -void migrate_set_capability(QTestState *who, const char *capability, - bool value) -{ - qtest_qmp_assert_success(who, - "{ 'execute': 'migrate-set-capabilities'," - "'arguments': { " - "'capabilities': [ { " - "'capability': %s, 'state': %i } ] } }", - capability, value); } void migrate_incoming_qmp(QTestState *to, const char *uri, QObject *channels, @@ -185,13 +166,10 @@ void migrate_incoming_qmp(QTestState *to, const char *uri, QObject *channels, } /* This function relies on the event to work, make sure it's enabled */ - migrate_set_capability(to, "events", true); + qdict_put_bool(config, "events", true); - config = config_load(config); - if (config) { - qdict_put_obj(args, "config", QOBJECT(config)); - qobject_ref(config); - } + qdict_put_obj(args, "config", QOBJECT(config)); + qobject_ref(config); rsp = qtest_qmp(to, "{ 'execute': 'migrate-incoming', 'arguments': %p}", args); @@ -205,7 +183,6 @@ void migrate_incoming_qmp(QTestState *to, const char *uri, QObject *channels, qobject_unref(rsp); migration_event_wait(to, "setup"); - config_put(config); } static bool check_migration_status(QTestState *who, const char *goal, @@ -463,22 +440,6 @@ void migrate_set_parameter_str(QTestState *who, const char *parameter, migrate_check_parameter_str(who, parameter, value); } -void migrate_set_parameter_strv(QTestState *who, const char *parameter, - char **strv) -{ - g_autofree char *args = g_strjoinv("\",\"", strv); - g_autoptr(GString) value = g_string_new(""); - g_autofree char *command = NULL; - - g_string_printf(value, "\"%s\"", args); - - command = g_strdup_printf("{ 'execute': 'migrate-set-parameters'," - "'arguments': { %%s: [ %s ]}}", - value->str); - - qtest_qmp_assert_success(who, command, parameter); -} - void migrate_set_parameter_null(QTestState *who, const char *parameter) { qtest_qmp_assert_success(who, @@ -534,32 +495,17 @@ void migrate_ongoing_ensure_converge(QTestState *who) migrate_set_parameter_int(who, "downtime-limit", 30 * 1000); } -void migrate_ensure_non_converge(QTestState *who, QDict *config) +void migrate_ensure_non_converge(QDict *config) { - config = config_load(config); - if (config) { - /* Can't converge with 1ms downtime + 3 mbs bandwidth limit */ - qdict_put_int(config, "max-bandwidth", 3 * 1000 * 1000); - qdict_put_int(config, "downtime-limit", 1); - } else { - assert(who); - migrate_ongoing_ensure_non_converge(who); - } - config_put(config); + /* Can't converge with 1ms downtime + 3 mbs bandwidth limit */ + qdict_put_int(config, "max-bandwidth", 3 * 1000 * 1000); + qdict_put_int(config, "downtime-limit", 1); } -void migrate_ensure_converge(QTestState *who, QDict *config) +void migrate_ensure_converge(QDict *config) { - config = config_load(config); - /* Should converge with 30s downtime + 1 gbs bandwidth limit */ - if (config) { - qdict_put_int(config, "max-bandwidth", 1 * 1000 * 1000 * 1000); - qdict_put_int(config, "downtime-limit", 30 * 1000); - } else { - assert(who); - migrate_ongoing_ensure_converge(who); - } - config_put(config); + qdict_put_int(config, "max-bandwidth", 1 * 1000 * 1000 * 1000); + qdict_put_int(config, "downtime-limit", 30 * 1000); } void migrate_pause(QTestState *who) diff --git a/tests/qtest/migration/migration-qmp.h b/tests/qtest/migration/migration-qmp.h index 7daeb913fa..da0d99af59 100644 --- a/tests/qtest/migration/migration-qmp.h +++ b/tests/qtest/migration/migration-qmp.h @@ -42,8 +42,8 @@ void migrate_set_parameter_bool(QTestState *who, const char *parameter, int value); void migrate_ongoing_ensure_non_converge(QTestState *who); void migrate_ongoing_ensure_converge(QTestState *who); -void migrate_ensure_non_converge(QTestState *who, QDict *config); -void migrate_ensure_converge(QTestState *who, QDict *config); +void migrate_ensure_non_converge(QDict *config); +void migrate_ensure_converge(QDict *config); void migrate_pause(QTestState *who); void migrate_continue(QTestState *who, const char *state); void migrate_recover(QTestState *who, const char *uri); diff --git a/tests/qtest/migration/migration-util.c b/tests/qtest/migration/migration-util.c index efe1ae25de..c6f5ae3cb1 100644 --- a/tests/qtest/migration/migration-util.c +++ b/tests/qtest/migration/migration-util.c @@ -255,7 +255,6 @@ static void migration_test_wrapper(const void *data) test->data = g_new0(MigrateCommon, 1); test->data->start.config = qdict_new(); - qdict_put_bool(test->data->start.config, "use-config", false); g_test_message("Running /%s%s", qtest_get_arch(), test->name); test->func(test->name, test->data); diff --git a/tests/qtest/migration/migration-util.h b/tests/qtest/migration/migration-util.h index ec58868197..da523fb2f7 100644 --- a/tests/qtest/migration/migration-util.h +++ b/tests/qtest/migration/migration-util.h @@ -61,38 +61,4 @@ char *migrate_get_connect_uri(QTestState *who); void migrate_set_ports(QTestState *to, QList *channel_list); QDict *fixup_tls_creds(QDict *config); -/* - * Scaffolding to allow the framework _common functions and _qmp - * functions to use the config object while some tests are still using - * migrate_set_*. Tests that have been converted will set use-config = - * true on the config dict. - */ -static bool has_key; -static bool use_config; -static inline QDict *config_load(QDict *config) -{ - if (!config) { - return NULL; - } - - has_key = qdict_haskey(config, "use-config"); - if (has_key) { - use_config = qdict_get_try_bool(config, "use-config", false); - qdict_del(config, "use-config"); - } - - if (use_config) { - return config; - } - - return NULL; -} - -static inline void config_put(QDict *config) -{ - if (config && has_key) { - qdict_put_bool(config, "use-config", use_config); - } -} - #endif /* MIGRATION_UTIL_H */ diff --git a/tests/qtest/migration/misc-tests.c b/tests/qtest/migration/misc-tests.c index 7e38d26ab2..4bac7fff41 100644 --- a/tests/qtest/migration/misc-tests.c +++ b/tests/qtest/migration/misc-tests.c @@ -28,9 +28,6 @@ static void test_baddest(char *name, MigrateCommon *args) args->start.hide_stderr = true; - /* temporary */ - qdict_put_bool(args->start.config, "use-config", true); - if (migrate_start(&from, &to, "tcp:127.0.0.1:0", &args->start)) { return; } @@ -55,9 +52,6 @@ static void test_analyze_script(char *name, MigrateCommon *args) return; } - /* temporary */ - qdict_put_bool(args->start.config, "use-config", true); - /* dummy url */ if (migrate_start(&from, &to, "tcp:127.0.0.1:0", &args->start)) { return; @@ -74,7 +68,7 @@ static void test_analyze_script(char *name, MigrateCommon *args) file = g_strdup_printf("%s/migfile", tmpfs); uri = g_strdup_printf("exec:cat > %s", file); - migrate_ensure_converge(from, args->start.config); + migrate_ensure_converge(args->start.config); migrate_qmp(from, to, uri, NULL, args->start.config, "{}"); wait_for_migration_complete(from); @@ -103,16 +97,13 @@ static void test_ignore_shared(char *name, MigrateCommon *args) args->start.mem_type = MEM_TYPE_SHMEM; - /* temporary */ - qdict_put_bool(args->start.config, "use-config", true); - qdict_put_bool(args->start.config, "x-ignore-shared", true); if (migrate_start(&from, &to, uri, &args->start)) { return; } - migrate_ensure_non_converge(from, args->start.config); + migrate_ensure_non_converge(args->start.config); migrate_prepare_for_dirty_mem(from); /* Wait for the first serial output from the source */ @@ -141,9 +132,6 @@ static void do_test_validate_uuid(MigrateStart *args, bool should_fail) g_autofree char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); QTestState *from, *to; - /* temporary */ - qdict_put_bool(args->config, "use-config", true); - if (migrate_start(&from, &to, uri, args)) { return; } diff --git a/tests/qtest/migration/precopy-tests.c b/tests/qtest/migration/precopy-tests.c index f8f46322bc..bb96cbb56f 100644 --- a/tests/qtest/migration/precopy-tests.c +++ b/tests/qtest/migration/precopy-tests.c @@ -374,7 +374,7 @@ static void test_auto_converge(char *name, MigrateCommon *args) * Set the initial parameters so that the migration could not converge * without throttling. */ - migrate_ensure_non_converge(from, args->start.config); + migrate_ensure_non_converge(args->start.config); /* To check remaining size after precopy */ qdict_put_bool(args->start.config, "pause-before-switchover", true); @@ -536,9 +536,6 @@ static void test_multifd_tcp_cancel(MigrateCommon *args, bool postcopy_ram) { QTestState *from, *to, *to2; - /* temporary */ - qdict_put_bool(args->start.config, "use-config", true); - args->start.hide_stderr = true; args->start.incoming_defer = true; @@ -546,7 +543,7 @@ static void test_multifd_tcp_cancel(MigrateCommon *args, bool postcopy_ram) return; } - migrate_ensure_non_converge(from, args->start.config); + migrate_ensure_non_converge(args->start.config); migrate_prepare_for_dirty_mem(from); if (postcopy_ram) { @@ -598,7 +595,7 @@ static void test_multifd_tcp_cancel(MigrateCommon *args, bool postcopy_ram) migrate_incoming_qmp(to2, "tcp:127.0.0.1:0", NULL, args->start.config, "{}"); - migrate_ensure_non_converge(from, args->start.config); + migrate_ensure_non_converge(args->start.config); migrate_qmp(from, to2, NULL, NULL, args->start.config, "{}"); @@ -632,7 +629,7 @@ static void test_cancel_src_after_failed(QTestState *from, QTestState *to, */ wait_for_serial("src_serial"); - migrate_ensure_converge(from, args->config); + migrate_ensure_converge(args->config); migrate_qmp(from, to, uri, NULL, args->config, "{}"); @@ -658,7 +655,7 @@ static void test_cancel_src_after_cancelled(QTestState *from, QTestState *to, "{ 'exit-on-error': false }"); wait_for_serial("src_serial"); - migrate_ensure_converge(from, args->config); + migrate_ensure_converge(args->config); migrate_qmp(from, to, uri, NULL, args->config, "{}"); @@ -684,7 +681,7 @@ static void test_cancel_src_after_complete(QTestState *from, QTestState *to, "{ 'exit-on-error': false }"); wait_for_serial("src_serial"); - migrate_ensure_converge(from, args->config); + migrate_ensure_converge(args->config); migrate_qmp(from, to, uri, NULL, args->config, "{}"); @@ -715,7 +712,7 @@ static void test_cancel_src_after_none(QTestState *from, QTestState *to, migrate_incoming_qmp(to, uri, NULL, args->config, "{ 'exit-on-error': false }"); - migrate_ensure_converge(from, args->config); + migrate_ensure_converge(args->config); migrate_qmp(from, to, uri, NULL, args->config, "{}"); wait_for_migration_complete(from); @@ -730,7 +727,7 @@ static void test_cancel_src_pre_switchover(QTestState *from, QTestState *to, "{ 'exit-on-error': false }"); wait_for_serial("src_serial"); - migrate_ensure_converge(from, args->config); + migrate_ensure_converge(args->config); migrate_qmp(from, to, uri, NULL, args->config, "{}"); @@ -751,9 +748,6 @@ static void test_cancel_src_after_status(char *test_path, MigrateCommon *args) g_autofree char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); QTestState *from, *to; - /* temporary */ - qdict_put_bool(args->start.config, "use-config", true); - args->start.hide_stderr = true; args->start.incoming_defer = true; @@ -1103,7 +1097,7 @@ static void test_dirty_limit(char *name, MigrateCommon *args) } /* Prepare for dirty limit migration and wait src vm show up */ - migrate_ensure_non_converge(from, args->start.config); + migrate_ensure_non_converge(args->start.config); migrate_dirty_limit_wait_showup(args->start.config, dirtylimit_period, dirtylimit_value); -- 2.51.0
