Make the precopy tests pass a config argument to migration QMP
commands.

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

Signed-off-by: Fabiano Rosas <[email protected]>
---
 tests/qtest/migration/compression-tests.c |  21 ----
 tests/qtest/migration/cpr-tests.c         |   3 -
 tests/qtest/migration/framework.c         |   5 +-
 tests/qtest/migration/precopy-tests.c     | 111 ++++++++--------------
 tests/qtest/migration/tls-tests.c         |   6 --
 5 files changed, 46 insertions(+), 100 deletions(-)

diff --git a/tests/qtest/migration/compression-tests.c 
b/tests/qtest/migration/compression-tests.c
index ff3386f586..7ecb10d9a8 100644
--- a/tests/qtest/migration/compression-tests.c
+++ b/tests/qtest/migration/compression-tests.c
@@ -29,9 +29,6 @@ static void test_multifd_tcp_zstd(char *name, MigrateCommon 
*args)
 
     qdict_put_bool(args->start.config, "multifd", true);
 
-    /* temporary */
-    qdict_put_bool(args->start.config, "use-config", true);
-
     test_precopy_common(args);
 }
 
@@ -46,9 +43,6 @@ static void test_multifd_postcopy_tcp_zstd(char *name, 
MigrateCommon *args)
     qdict_put_int(args->start.config, "multifd-zstd-level", 2);
     qdict_put_str(args->start.config, "multifd-compression", "zstd");
 
-    /* temporary */
-    qdict_put_bool(args->start.config, "use-config", true);
-
     test_precopy_common(args);
 }
 #endif /* CONFIG_ZSTD */
@@ -64,9 +58,6 @@ static void test_multifd_tcp_qatzip(char *name, MigrateCommon 
*args)
     qdict_put_int(args->start.config, "multifd-qatzip-level", 2);
     qdict_put_str(args->start.config, "multifd-compression", "qatzip");
 
-    /* temporary */
-    qdict_put_bool(args->start.config, "use-config", true);
-
     test_precopy_common(args);
 }
 #endif
@@ -81,9 +72,6 @@ static void test_multifd_tcp_qpl(char *name, MigrateCommon 
*args)
     qdict_put_bool(args->start.config, "multifd", true);
     qdict_put_str(args->start.config, "multifd-compression", "qpl");
 
-    /* temporary */
-    qdict_put_bool(args->start.config, "use-config", true);
-
     test_precopy_common(args);
 }
 #endif /* CONFIG_QPL */
@@ -98,9 +86,6 @@ static void test_multifd_tcp_uadk(char *name, MigrateCommon 
*args)
     qdict_put_bool(args->start.config, "multifd", true);
     qdict_put_str(args->start.config, "multifd-compression", "uadk");
 
-    /* temporary */
-    qdict_put_bool(args->start.config, "use-config", true);
-
     test_precopy_common(args);
 }
 #endif /* CONFIG_UADK */
@@ -121,9 +106,6 @@ static void test_precopy_unix_xbzrle(char *name, 
MigrateCommon *args)
     qdict_put_bool(args->start.config, "xbzrle", true);
     qdict_put_int(args->start.config, "xbzrle-cache-size", 33554432);
 
-    /* temporary */
-    qdict_put_bool(args->start.config, "use-config", true);
-
     test_precopy_common(args);
 }
 
@@ -141,9 +123,6 @@ static void test_multifd_tcp_zlib(char *name, MigrateCommon 
*args)
     qdict_put_int(args->start.config, "multifd-zlib-level", 2);
     qdict_put_str(args->start.config, "multifd-compression", "zlib");
 
-    /* temporary */
-    qdict_put_bool(args->start.config, "use-config", true);
-
     test_precopy_common(args);
 }
 
diff --git a/tests/qtest/migration/cpr-tests.c 
b/tests/qtest/migration/cpr-tests.c
index a1b5a39f9f..57199ed3b8 100644
--- a/tests/qtest/migration/cpr-tests.c
+++ b/tests/qtest/migration/cpr-tests.c
@@ -88,9 +88,6 @@ static void test_mode_transfer_common(MigrateCommon *args)
 
     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);
diff --git a/tests/qtest/migration/framework.c 
b/tests/qtest/migration/framework.c
index 6cf2bbf9cc..f596f1c171 100644
--- a/tests/qtest/migration/framework.c
+++ b/tests/qtest/migration/framework.c
@@ -868,6 +868,9 @@ 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);
@@ -951,7 +954,7 @@ int test_precopy_common(MigrateCommon *args)
         qtest_connect(to);
         qtest_qmp_handshake(to, NULL);
         if (args->start.incoming_defer) {
-            migrate_incoming_qmp(to, args->connect_uri, in_channels,
+            migrate_incoming_qmp(to, NULL, in_channels,
                                  args->start.config, "{}");
         }
     }
diff --git a/tests/qtest/migration/precopy-tests.c 
b/tests/qtest/migration/precopy-tests.c
index 01151301ce..f8f46322bc 100644
--- a/tests/qtest/migration/precopy-tests.c
+++ b/tests/qtest/migration/precopy-tests.c
@@ -216,8 +216,8 @@ static void test_precopy_tcp_switchover_ack(char *name, 
MigrateCommon *args)
      */
     args->live = true;
 
-    args->start.caps[MIGRATION_CAPABILITY_RETURN_PATH] = true;
-    args->start.caps[MIGRATION_CAPABILITY_SWITCHOVER_ACK] = true;
+    qdict_put_bool(args->start.config, "return-path", true);
+    qdict_put_bool(args->start.config, "switchover-ack", true);
 
     test_precopy_common(args);
 }
@@ -365,10 +365,10 @@ static void test_auto_converge(char *name, MigrateCommon 
*args)
         return;
     }
 
-    migrate_set_capability(from, "auto-converge", true);
-    migrate_set_parameter_int(from, "cpu-throttle-initial", init_pct);
-    migrate_set_parameter_int(from, "cpu-throttle-increment", inc_pct);
-    migrate_set_parameter_int(from, "max-cpu-throttle", max_pct);
+    qdict_put_bool(args->start.config, "auto-converge", true);
+    qdict_put_int(args->start.config, "cpu-throttle-initial", init_pct);
+    qdict_put_int(args->start.config, "cpu-throttle-increment", inc_pct);
+    qdict_put_int(args->start.config, "max-cpu-throttle", max_pct);
 
     /*
      * Set the initial parameters so that the migration could not converge
@@ -377,7 +377,7 @@ static void test_auto_converge(char *name, MigrateCommon 
*args)
     migrate_ensure_non_converge(from, args->start.config);
 
     /* To check remaining size after precopy */
-    migrate_set_capability(from, "pause-before-switchover", true);
+    qdict_put_bool(args->start.config, "pause-before-switchover", true);
 
     /* Wait for the first serial output from the source */
     wait_for_serial("src_serial");
@@ -448,37 +448,8 @@ static void test_auto_converge(char *name, MigrateCommon 
*args)
     migrate_end(from, to, true);
 }
 
-static void *
-migrate_hook_start_precopy_tcp_multifd(QTestState *from,
-                                       QTestState *to)
-{
-    migrate_set_parameter_str(from, "multifd-compression", "none");
-    migrate_set_parameter_str(to, "multifd-compression", "none");
-
-    return NULL;
-}
-
-static void *
-migrate_hook_start_precopy_tcp_multifd_zero_page_legacy(QTestState *from,
-                                                        QTestState *to)
-{
-    migrate_hook_start_precopy_tcp_multifd(from, to);
-    migrate_set_parameter_str(from, "zero-page-detection", "legacy");
-    return NULL;
-}
-
-static void *
-migrate_hook_start_precopy_tcp_multifd_no_zero_page(QTestState *from,
-                                                    QTestState *to)
-{
-    migrate_hook_start_precopy_tcp_multifd(from, to);
-    migrate_set_parameter_str(from, "zero-page-detection", "none");
-    return NULL;
-}
-
 static void test_multifd_tcp_uri_none(char *name, MigrateCommon *args)
 {
-    args->start_hook = migrate_hook_start_precopy_tcp_multifd;
     /*
      * Multifd is more complicated than most of the features, it
      * directly takes guest page buffers when sending, make sure
@@ -488,14 +459,15 @@ static void test_multifd_tcp_uri_none(char *name, 
MigrateCommon *args)
     args->listen_uri = "tcp:127.0.0.1:0";
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
+
+    qdict_put_bool(args->start.config, "multifd", true);
+    qdict_put_str(args->start.config, "multifd-compression", "none");
 
     test_precopy_common(args);
 }
 
 static void test_multifd_tcp_zero_page_legacy(char *name, MigrateCommon *args)
 {
-    args->start_hook = migrate_hook_start_precopy_tcp_multifd_zero_page_legacy;
     /*
      * Multifd is more complicated than most of the features, it
      * directly takes guest page buffers when sending, make sure
@@ -505,14 +477,16 @@ static void test_multifd_tcp_zero_page_legacy(char *name, 
MigrateCommon *args)
     args->listen_uri = "tcp:127.0.0.1:0";
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
+
+    qdict_put_bool(args->start.config, "multifd", true);
+    qdict_put_str(args->start.config, "multifd-compression", "none");
+    qdict_put_str(args->start.config, "zero-page-detection", "legacy");
 
     test_precopy_common(args);
 }
 
 static void test_multifd_tcp_no_zero_page(char *name, MigrateCommon *args)
 {
-    args->start_hook = migrate_hook_start_precopy_tcp_multifd_no_zero_page;
     /*
      * Multifd is more complicated than most of the features, it
      * directly takes guest page buffers when sending, make sure
@@ -522,14 +496,16 @@ static void test_multifd_tcp_no_zero_page(char *name, 
MigrateCommon *args)
     args->listen_uri = "tcp:127.0.0.1:0";
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
+
+    qdict_put_bool(args->start.config, "multifd", true);
+    qdict_put_str(args->start.config, "multifd-compression", "none");
+    qdict_put_str(args->start.config, "zero-page-detection", "none");
 
     test_precopy_common(args);
 }
 
 static void test_multifd_tcp_channels_none(char *name, MigrateCommon *args)
 {
-    args->start_hook = migrate_hook_start_precopy_tcp_multifd;
     args->live = true;
     args->connect_channels = ("[ { 'channel-type': 'main',"
                               "    'addr': { 'transport': 'socket',"
@@ -538,7 +514,9 @@ static void test_multifd_tcp_channels_none(char *name, 
MigrateCommon *args)
                               "              'port': '0' } } ]");
 
     args->start.incoming_defer = true;
-    args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
+
+    qdict_put_bool(args->start.config, "multifd", true);
+    qdict_put_str(args->start.config, "multifd-compression", "none");
 
     test_precopy_common(args);
 }
@@ -558,6 +536,9 @@ 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;
 
@@ -569,15 +550,11 @@ static void test_multifd_tcp_cancel(MigrateCommon *args, 
bool postcopy_ram)
     migrate_prepare_for_dirty_mem(from);
 
     if (postcopy_ram) {
-        migrate_set_capability(from, "postcopy-ram", true);
-        migrate_set_capability(to, "postcopy-ram", true);
+        qdict_put_bool(args->start.config, "postcopy-ram", true);
     }
 
-    migrate_set_parameter_int(from, "multifd-channels", 16);
-    migrate_set_parameter_int(to, "multifd-channels", 16);
-
-    migrate_set_capability(from, "multifd", true);
-    migrate_set_capability(to, "multifd", true);
+    qdict_put_int(args->start.config, "multifd-channels", 16);
+    qdict_put_bool(args->start.config, "multifd", true);
 
     /* Start incoming migration from the 1st socket */
     migrate_incoming_qmp(to, "tcp:127.0.0.1:0", NULL, args->start.config, 
"{}");
@@ -615,13 +592,7 @@ static void test_multifd_tcp_cancel(MigrateCommon *args, 
bool postcopy_ram)
         return;
     }
 
-    if (postcopy_ram) {
-        migrate_set_capability(to2, "postcopy-ram", true);
-    }
-
-    migrate_set_parameter_int(to2, "multifd-channels", 16);
-
-    migrate_set_capability(to2, "multifd", true);
+    /* reusing the same config for to2 */
 
     /* Start incoming migration from the 1st socket */
     migrate_incoming_qmp(to2, "tcp:127.0.0.1:0", NULL, args->start.config,
@@ -755,12 +726,6 @@ static void test_cancel_src_pre_switchover(QTestState 
*from, QTestState *to,
                                            const char *uri, const char *phase,
                                            MigrateStart *args)
 {
-    migrate_set_capability(from, "pause-before-switchover", true);
-    migrate_set_capability(to, "pause-before-switchover", true);
-
-    migrate_set_capability(from, "multifd", true);
-    migrate_set_capability(to, "multifd", true);
-
     migrate_incoming_qmp(to, uri, NULL, args->config,
                          "{ 'exit-on-error': false }");
 
@@ -786,6 +751,9 @@ 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;
 
@@ -808,6 +776,10 @@ static void test_cancel_src_after_status(char *test_path, 
MigrateCommon *args)
 
     } else {
         /* any state that comes before pre-switchover */
+
+        qdict_put_bool(args->start.config, "pause-before-switchover", true);
+        qdict_put_bool(args->start.config, "multifd", true);
+
         test_cancel_src_pre_switchover(from, to, uri, phase, &args->start);
     }
 
@@ -1061,19 +1033,19 @@ static void test_vcpu_dirty_limit(char *name, 
MigrateCommon *args)
     dirtylimit_stop_vm(vm);
 }
 
-static void migrate_dirty_limit_wait_showup(QTestState *from,
+static void migrate_dirty_limit_wait_showup(QDict *config,
                                             const int64_t period,
                                             const int64_t value)
 {
     /* Enable dirty limit capability */
-    migrate_set_capability(from, "dirty-limit", true);
+    qdict_put_bool(config, "dirty-limit", true);
 
     /* Set dirty limit parameters */
-    migrate_set_parameter_int(from, "x-vcpu-dirty-limit-period", period);
-    migrate_set_parameter_int(from, "vcpu-dirty-limit", value);
+    qdict_put_int(config, "x-vcpu-dirty-limit-period", period);
+    qdict_put_int(config, "vcpu-dirty-limit", value);
 
     /* To check limit rate after precopy */
-    migrate_set_capability(from, "pause-before-switchover", true);
+    qdict_put_bool(config, "pause-before-switchover", true);
 
     /* Wait for the serial output from the source */
     wait_for_serial("src_serial");
@@ -1132,7 +1104,8 @@ 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_dirty_limit_wait_showup(from, dirtylimit_period, dirtylimit_value);
+    migrate_dirty_limit_wait_showup(args->start.config, dirtylimit_period,
+                                    dirtylimit_value);
 
     /* Start migrate */
     migrate_qmp(from, to, args->connect_uri, NULL, args->start.config, "{}");
diff --git a/tests/qtest/migration/tls-tests.c 
b/tests/qtest/migration/tls-tests.c
index b6d436389a..aa5482b823 100644
--- a/tests/qtest/migration/tls-tests.c
+++ b/tests/qtest/migration/tls-tests.c
@@ -118,9 +118,6 @@ static void test_precopy_tls_psk_common(MigrateCommon *args,
 {
     TestMigrateTLSPSKData *data = g_new0(TestMigrateTLSPSKData, 1);
 
-    /* temporary */
-    qdict_put_bool(args->start.config, "use-config", true);
-
     qdict_put_str(args->start.config, "tls-creds", "tlscredspsk0");
 
     migrate_tls_psk_init(args, test_args, data);
@@ -385,9 +382,6 @@ static void test_precopy_tls_x509_common(MigrateCommon 
*args,
 {
     TestMigrateTLSX509Data *data = g_new0(TestMigrateTLSX509Data, 1);
 
-    /* temporary */
-    qdict_put_bool(args->start.config, "use-config", true);
-
     migrate_tls_x509_init(args, test_args, data);
     test_precopy_common(args);
     migrate_tls_x509_cleanup(data);
-- 
2.51.0


Reply via email to