args->start.caps[MIGRATION_CAPABILITY_RETURN_PATH] = true;
args->start.caps[MIGRATION_CAPABILITY_X_COLO] = true;
- if (migrate_start(&from, &to, args->listen_uri, &args->start)) {
+ if (migrate_start(&from, &to, "defer", &args->start)) {
return -1;
}
data_hook = args->start_hook(from, to);
}
+ migrate_incoming_qmp(to, args->listen_uri, NULL, "{}");
+
migrate_ensure_converge(from);
wait_for_serial("src_serial");
test_colo_common(args, failover_during_checkpoint, primary_failover);
}
-static void *hook_start_multifd(QTestState *from, QTestState *to)
-{
- return migrate_hook_start_precopy_tcp_multifd_common(from, to, "none");
-}
-
static void test_colo_multifd_common(MigrateCommon *args,
bool failover_during_checkpoint,
bool primary_failover)
{
- args->listen_uri = "defer";
- args->start_hook = hook_start_multifd;
+ args->listen_uri = "tcp:127.0.0.1:0";
args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
test_colo_common(args, failover_during_checkpoint, primary_failover);
}
static void test_multifd_tcp_zstd(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_precopy_tcp_multifd_zstd;
args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
static void test_multifd_postcopy_tcp_zstd(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_precopy_tcp_multifd_zstd,
args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
static void test_multifd_tcp_qatzip(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_precopy_tcp_multifd_qatzip;
args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
static void test_multifd_tcp_qpl(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_precopy_tcp_multifd_qpl;
args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
static void test_multifd_tcp_uadk(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_precopy_tcp_multifd_uadk;
args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
static void test_multifd_tcp_zlib(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_precopy_tcp_multifd_zlib;
args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
void *data_hook = NULL;
QObject *channels = NULL;
- if (!args->listen_uri) {
+ assert(!args->connect_uri);
+
+ if (args->listen_uri) {
+ args->connect_uri = args->listen_uri;
+ } else {
args->listen_uri = "tcp:127.0.0.1:0";
}
- if (migrate_start(&from, &to, args->listen_uri, &args->start)) {
+ if (migrate_start(&from, &to, "defer", &args->start)) {
return -1;
}
data_hook = args->start_hook(from, to);
}
+ migrate_incoming_qmp(to, args->listen_uri, NULL, "{}");
+
/* Wait for the first serial output from the source */
if (args->result == MIG_TEST_SUCCEED) {
wait_for_serial("src_serial");
g_autofree char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs);
args->listen_uri = uri;
- args->connect_uri = uri;
test_precopy_common(args);
}
{
migrate_set_parameter_str(from, "multifd-compression", method);
migrate_set_parameter_str(to, "multifd-compression", method);
-
- /* Start incoming migration from the 1st socket */
- migrate_incoming_qmp(to, "tcp:127.0.0.1:0", NULL, "{}");
-
return NULL;
}
g_autofree char *uri = g_strdup_printf("rdma:%s:29200", buffer);
args->listen_uri = uri;
- args->connect_uri = uri;
test_precopy_common(args);
}
" 'arguments': { 'fdname': 'fd-mig' }}");
close(pair[0]);
- /* Start incoming migration from the 1st socket */
- migrate_incoming_qmp(to, "fd:fd-mig", NULL, "{}");
-
/* Send the 2nd socket to the target */
qtest_qmp_fds_assert_success(from, &pair[1], 1,
"{ 'execute': 'getfd',"
static void test_precopy_fd_socket(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
- args->connect_uri = "fd:fd-mig";
+ args->listen_uri = "fd:fd-mig";
args->start_hook = migrate_hook_start_fd;
args->end_hook = migrate_hook_end_fd;
static void test_multifd_tcp_uri_none(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_precopy_tcp_multifd;
/*
* Multifd is more complicated than most of the features, it
static void test_multifd_tcp_zero_page_legacy(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_precopy_tcp_multifd_zero_page_legacy;
/*
* Multifd is more complicated than most of the features, it
static void test_multifd_tcp_no_zero_page(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_precopy_tcp_multifd_no_zero_page;
/*
* Multifd is more complicated than most of the features, it
static void test_multifd_tcp_channels_none(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_precopy_tcp_multifd;
args->live = true;
args->connect_channels = ("[ { 'channel-type': 'main',"
{
g_autofree char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs);
- args->connect_uri = uri;
- args->listen_uri = "defer";
+ args->listen_uri = uri;
args->start_hook = migrate_hook_start_tls_x509_default_host;
args->end_hook = migrate_hook_end_tls_x509;
args->result = MIG_TEST_FAIL;
static void test_precopy_tcp_tls_no_hostname(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
- args->connect_uri = "tcp:127.0.0.1:0";
args->start_hook = migrate_hook_start_tls_x509_no_host;
args->end_hook = migrate_hook_end_tls_x509;
args->result = MIG_TEST_FAIL;
static void test_precopy_tcp_tls_x509_mismatch_host(char *name,
MigrateCommon *args)
{
- args->listen_uri = "defer";
- args->connect_uri = "tcp:127.0.0.1:0";
args->start_hook = migrate_hook_start_tls_x509_mismatch_host;
args->end_hook = migrate_hook_end_tls_x509;
args->result = MIG_TEST_FAIL;
static void test_multifd_tcp_tls_psk_match(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_multifd_tcp_tls_psk_match;
args->end_hook = migrate_hook_end_tls_psk;
static void test_multifd_tcp_tls_psk_mismatch(char *name, MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_multifd_tcp_tls_psk_mismatch;
args->end_hook = migrate_hook_end_tls_psk;
args->result = MIG_TEST_FAIL;
static void test_multifd_postcopy_tcp_tls_psk_match(char *name,
MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_multifd_tcp_tls_psk_match;
args->end_hook = migrate_hook_end_tls_psk;
static void test_multifd_tcp_tls_x509_default_host(char *name,
MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_multifd_tls_x509_default_host;
args->end_hook = migrate_hook_end_tls_x509;
static void test_multifd_tcp_tls_x509_override_host(char *name,
MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_multifd_tls_x509_override_host;
args->end_hook = migrate_hook_end_tls_x509;
* to load migration state, and thus just aborts the migration
* without exiting.
*/
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_multifd_tls_x509_mismatch_host;
args->end_hook = migrate_hook_end_tls_x509;
args->result = MIG_TEST_FAIL;
static void test_multifd_tcp_tls_x509_allow_anon_client(char *name,
MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_multifd_tls_x509_allow_anon_client;
args->end_hook = migrate_hook_end_tls_x509;
static void test_multifd_tcp_tls_x509_reject_anon_client(char *name,
MigrateCommon *args)
{
- args->listen_uri = "defer";
args->start_hook = migrate_hook_start_multifd_tls_x509_reject_anon_client;
args->end_hook = migrate_hook_end_tls_x509;
args->result = MIG_TEST_FAIL;