Pass the config directly via the migrate/incoming command.
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
tests/qtest/migration/framework.h | 2 ++
tests/qtest/migration/misc-tests.c | 39 ++++++++++++++++++++++++++++++
2 files changed, 41 insertions(+)
diff --git a/tests/qtest/migration/framework.h b/tests/qtest/migration/framework.h
index 01e425e64e..e55cd33fa8 100644
--- a/tests/qtest/migration/framework.h
+++ b/tests/qtest/migration/framework.h
@@ -145,6 +145,8 @@ typedef struct {
/* Optional: fine tune start parameters */
MigrateStart start;
+ const char *config;
+
/* Required: the URI for the dst QEMU to listen on */
const char *listen_uri;
diff --git a/tests/qtest/migration/misc-tests.c b/tests/qtest/migration/misc-tests.c
index 54995256d8..e835865aee 100644
--- a/tests/qtest/migration/misc-tests.c
+++ b/tests/qtest/migration/misc-tests.c
@@ -256,6 +256,42 @@ static void test_validate_uri_channels_none_set(void)
do_test_validate_uri_channel(&args);
}
+static void test_config_migrate(void)
+{
+ QTestState *from, *to;
+ MigrateStart args = {
+ .hide_stderr = false,
+ };
+ const char *config = "{"
+ "'events':true, "
+ "'multifd':true, "
+ "'multifd-channels': 4"
+ "}";
+
+ if (migrate_start(&from, &to, "defer", &args)) {
+ return;
+ }
+
+ assert(qtest_qmp_cmd_has_feature(from, "migrate", "config"));
+
+ wait_for_serial("src_serial");
+ qtest_qmp_assert_success(from, "{ 'execute' : 'stop'}");
+ migrate_ensure_converge(from);
+
+ migrate_incoming_qmp(to, "tcp:127.0.0.1:0", NULL,
+ "{ 'exit-on-error': false, 'config': %p }",
+ qobject_from_json(config, &error_abort));
+
+ migrate_qmp(from, to, migrate_get_connect_uri(to), NULL,
+ "{ 'config': %p }",
+ qobject_from_json(config, &error_abort));
+
+ wait_for_migration_complete(from);
+ wait_for_migration_complete(to);
+
+ migrate_end(from, to, false);
+}
+
static void migration_test_add_misc_smoke(MigrationTestEnv *env)
{
#ifndef _WIN32
@@ -294,4 +330,7 @@ void migration_test_add_misc(MigrationTestEnv *env)
test_validate_uri_channels_both_set);
migration_test_add("/migration/validate_uri/channels/none_set",
test_validate_uri_channels_none_set);
+
+ migration_test_add("/migration/config/migrate",
+ test_config_migrate);
}
--
2.35.3