Convert the file tests (including CPR) to use the config object.

The 'events' line can be removed because the capability is always set
in the config QDict in common code.

Temporarily, set the use-config key to enable the new method.

Signed-off-by: Fabiano Rosas <[email protected]>
---
 tests/qtest/migration/cpr-tests.c  | 51 ++++++++++++++----------------
 tests/qtest/migration/file-tests.c | 39 ++++++++---------------
 tests/qtest/migration/framework.c  |  3 ++
 3 files changed, 41 insertions(+), 52 deletions(-)

diff --git a/tests/qtest/migration/cpr-tests.c 
b/tests/qtest/migration/cpr-tests.c
index 9883616cb5..a1b5a39f9f 100644
--- a/tests/qtest/migration/cpr-tests.c
+++ b/tests/qtest/migration/cpr-tests.c
@@ -21,14 +21,6 @@
 
 static char *tmpfs;
 
-static void *migrate_hook_start_mode_reboot(QTestState *from, QTestState *to)
-{
-    migrate_set_parameter_str(from, "mode", "cpr-reboot");
-    migrate_set_parameter_str(to, "mode", "cpr-reboot");
-
-    return NULL;
-}
-
 static void test_mode_reboot(char *name, MigrateCommon *args)
 {
     g_autofree char *uri = g_strdup_printf("file:%s/%s", tmpfs,
@@ -36,21 +28,15 @@ static void test_mode_reboot(char *name, MigrateCommon 
*args)
 
     args->listen_uri = uri;
     args->connect_uri = uri;
-    args->start_hook = migrate_hook_start_mode_reboot;
 
     args->start.incoming_defer = true;
     args->start.mem_type = MEM_TYPE_SHMEM;
-    args->start.caps[MIGRATION_CAPABILITY_X_IGNORE_SHARED] = true;
 
+    qdict_put_bool(args->start.config, "x-ignore-shared", true);
+    qdict_put_str(args->start.config, "mode", "cpr-reboot");
     test_file_common(args, true);
 }
 
-static void *test_mode_transfer_start(QTestState *from, QTestState *to)
-{
-    migrate_set_parameter_str(from, "mode", "cpr-transfer");
-    return NULL;
-}
-
 /*
  * cpr-transfer mode cannot use the target monitor prior to starting the
  * migration, and cannot connect synchronously to the monitor, so defer
@@ -94,13 +80,17 @@ static void test_mode_transfer_common(MigrateCommon *args)
     args->listen_uri = uri;
     args->connect_channels = connect_channels;
     args->cpr_channel = cpr_channel;
-    args->start_hook = test_mode_transfer_start;
 
     args->start.opts_source = opts;
     args->start.opts_target = opts_target;
     args->start.defer_target_connect = true;
     args->start.mem_type = MEM_TYPE_MEMFD;
 
+    qdict_put_str(args->start.config, "mode", "cpr-transfer");
+
+    /* temporary */
+    qdict_put_bool(args->start.config, "use-config", true);
+
     if (test_precopy_common(args) < 0) {
         close(cpr_sockfd);
         unlink(cpr_path);
@@ -119,6 +109,18 @@ static void test_mode_transfer_defer(char *name, 
MigrateCommon *args)
     test_mode_transfer_common(args);
 }
 
+static void set_cpr_exec_command(QDict *config, char **strv)
+{
+    QList *list = qlist_new();
+
+    while (*strv) {
+        qlist_append_str(list, *strv);
+        strv++;
+    }
+
+    qdict_put_obj(config, "cpr-exec-command", (QObject *)list);
+}
+
 static void set_cpr_exec_args(QTestState *who, MigrateCommon *args)
 {
     g_autofree char *qtest_from_args = NULL;
@@ -157,7 +159,7 @@ static void set_cpr_exec_args(QTestState *who, 
MigrateCommon *args)
     exec_args = g_strconcat(qtest_qemu_binary(migration_get_env()->qemu_dst),
                             " -incoming defer ", from_str, NULL);
     argv = g_strsplit(exec_args, " ", -1);
-    migrate_set_parameter_strv(who, "cpr-exec-command", argv);
+    set_cpr_exec_command(args->start.config, argv);
 }
 
 static void wait_for_migration_event(QTestState *who, const char *waitfor)
@@ -187,6 +189,9 @@ 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;
     }
@@ -200,7 +205,6 @@ static void test_cpr_exec(MigrateCommon *args)
 
     wait_for_serial("src_serial");
     set_cpr_exec_args(from, args);
-    migrate_set_capability(from, "events", true);
     migrate_qmp(from, NULL, connect_uri, NULL, args->start.config, "{}");
     wait_for_migration_event(from, "completed");
 
@@ -229,13 +233,6 @@ static void test_cpr_exec(MigrateCommon *args)
     migrate_end(from, to, args->result == MIG_TEST_SUCCEED);
 }
 
-static void *test_mode_exec_start(QTestState *from, QTestState *to)
-{
-    assert(!to);
-    migrate_set_parameter_str(from, "mode", "cpr-exec");
-    return NULL;
-}
-
 static void test_mode_exec(char *name, MigrateCommon *args)
 {
     g_autofree char *uri = g_strdup_printf("file:%s/%s", tmpfs,
@@ -244,12 +241,12 @@ static void test_mode_exec(char *name, MigrateCommon 
*args)
 
     args->connect_uri = uri;
     args->listen_uri = listen_uri;
-    args->start_hook = test_mode_exec_start;
 
     args->start.only_source = true;
     args->start.opts_source = "-machine aux-ram-share=on -nodefaults";
     args->start.mem_type = MEM_TYPE_MEMFD;
 
+    qdict_put_str(args->start.config, "mode", "cpr-exec");
     test_cpr_exec(args);
 }
 
diff --git a/tests/qtest/migration/file-tests.c 
b/tests/qtest/migration/file-tests.c
index 57117b2496..c7a4eb145b 100644
--- a/tests/qtest/migration/file-tests.c
+++ b/tests/qtest/migration/file-tests.c
@@ -118,8 +118,8 @@ static void test_precopy_file_mapped_ram_live(char *name, 
MigrateCommon *args)
     args->listen_uri = uri;
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MAPPED_RAM] = true;
 
+    qdict_put_bool(args->start.config, "mapped-ram", true);
     test_file_common(args, false);
 }
 
@@ -132,8 +132,8 @@ static void test_precopy_file_mapped_ram(char *name, 
MigrateCommon *args)
     args->listen_uri = uri;
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MAPPED_RAM] = true;
 
+    qdict_put_bool(args->start.config, "mapped-ram", true);
     test_file_common(args, true);
 }
 
@@ -145,9 +145,9 @@ static void test_multifd_file_mapped_ram_live(char *name, 
MigrateCommon *args)
     args->listen_uri = uri;
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
-    args->start.caps[MIGRATION_CAPABILITY_MAPPED_RAM] = true;
 
+    qdict_put_bool(args->start.config, "multifd", true);
+    qdict_put_bool(args->start.config, "mapped-ram", true);
     test_file_common(args, false);
 }
 
@@ -160,38 +160,29 @@ static void test_multifd_file_mapped_ram(char *name, 
MigrateCommon *args)
     args->listen_uri = uri;
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
-    args->start.caps[MIGRATION_CAPABILITY_MAPPED_RAM] = true;
 
+    qdict_put_bool(args->start.config, "multifd", true);
+    qdict_put_bool(args->start.config, "mapped-ram", true);
     test_file_common(args, true);
 }
 
-static void *migrate_hook_start_multifd_mapped_ram_dio(QTestState *from,
-                                                       QTestState *to)
-{
-    migrate_set_parameter_bool(from, "direct-io", true);
-    migrate_set_parameter_bool(to, "direct-io", true);
-
-    return NULL;
-}
-
 static void test_multifd_file_mapped_ram_dio(char *name, MigrateCommon *args)
 {
     g_autofree char *uri = g_strdup_printf("file:%s/%s", tmpfs,
                                            FILE_TEST_FILENAME);
     args->connect_uri = uri;
     args->listen_uri = uri;
-    args->start_hook = migrate_hook_start_multifd_mapped_ram_dio;
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MAPPED_RAM] = true;
-    args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
 
     if (!probe_o_direct_support(tmpfs)) {
         g_test_skip("Filesystem does not support O_DIRECT");
         return;
     }
 
+    qdict_put_bool(args->start.config, "multifd", true);
+    qdict_put_bool(args->start.config, "mapped-ram", true);
+    qdict_put_bool(args->start.config, "direct-io", true);
     test_file_common(args, true);
 }
 
@@ -230,9 +221,6 @@ static void 
*migrate_hook_start_multifd_mapped_ram_fdset_dio(QTestState *from,
     fdset_add_fds(from, file, O_WRONLY, 2, true);
     fdset_add_fds(to, file, O_RDONLY, 2, true);
 
-    migrate_set_parameter_bool(from, "direct-io", true);
-    migrate_set_parameter_bool(to, "direct-io", true);
-
     return NULL;
 }
 
@@ -258,9 +246,9 @@ static void test_multifd_file_mapped_ram_fdset(char *name, 
MigrateCommon *args)
     args->end_hook = migrate_hook_end_multifd_mapped_ram_fdset;
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MAPPED_RAM] = true;
-    args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
 
+    qdict_put_bool(args->start.config, "multifd", true);
+    qdict_put_bool(args->start.config, "mapped-ram", true);
     test_file_common(args, true);
 }
 
@@ -276,14 +264,15 @@ static void test_multifd_file_mapped_ram_fdset_dio(char 
*name,
     args->end_hook = migrate_hook_end_multifd_mapped_ram_fdset;
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MAPPED_RAM] = true;
-    args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
 
     if (!probe_o_direct_support(tmpfs)) {
         g_test_skip("Filesystem does not support O_DIRECT");
         return;
     }
 
+    qdict_put_bool(args->start.config, "multifd", true);
+    qdict_put_bool(args->start.config, "mapped-ram", true);
+    qdict_put_bool(args->start.config, "direct-io", true);
     test_file_common(args, true);
 }
 #endif /* !_WIN32 */
diff --git a/tests/qtest/migration/framework.c 
b/tests/qtest/migration/framework.c
index 44ef80cf0c..6cf2bbf9cc 100644
--- a/tests/qtest/migration/framework.c
+++ b/tests/qtest/migration/framework.c
@@ -1056,6 +1056,9 @@ 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;
     }
-- 
2.51.0


Reply via email to