Skip to content

Commit

Permalink
tests/qtest: migration: Use migrate_incoming_qmp where appropriate
Browse files Browse the repository at this point in the history
Use the new migrate_incoming_qmp helper in the places that currently
open-code calling migrate-incoming.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-4-farosas@suse.de>
  • Loading branch information
Fabiano Rosas authored and Juan Quintela committed Oct 11, 2023
1 parent 28fa97e commit 6830e53
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 76 deletions.
1 change: 1 addition & 0 deletions tests/qtest/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ qtests = {
'tpm-tis-i2c-test': [io, tpmemu_files, 'qtest_aspeed.c'],
'tpm-tis-device-swtpm-test': [io, tpmemu_files, 'tpm-tis-util.c'],
'tpm-tis-device-test': [io, tpmemu_files, 'tpm-tis-util.c'],
'virtio-net-failover': files('migration-helpers.c'),
'vmgenid-test': files('boot-sector.c', 'acpi-utils.c'),
'netdev-socket': files('netdev-socket.c', '../unit/socket-helpers.c'),
}
Expand Down
12 changes: 4 additions & 8 deletions tests/qtest/migration-test.c
Original file line number Diff line number Diff line change
Expand Up @@ -1970,8 +1970,7 @@ static void *test_migrate_fd_start_hook(QTestState *from,
close(pair[0]);

/* Start incoming migration from the 1st socket */
qtest_qmp_assert_success(to, "{ 'execute': 'migrate-incoming',"
" 'arguments': { 'uri': 'fd:fd-mig' }}");
migrate_incoming_qmp(to, "fd:fd-mig", "{}");

/* Send the 2nd socket to the target */
qtest_qmp_fds_assert_success(from, &pair[1], 1,
Expand Down Expand Up @@ -2193,8 +2192,7 @@ test_migrate_precopy_tcp_multifd_start_common(QTestState *from,
migrate_set_capability(to, "multifd", true);

/* Start incoming migration from the 1st socket */
qtest_qmp_assert_success(to, "{ 'execute': 'migrate-incoming',"
" 'arguments': { 'uri': 'tcp:127.0.0.1:0' }}");
migrate_incoming_qmp(to, "tcp:127.0.0.1:0", "{}");

return NULL;
}
Expand Down Expand Up @@ -2447,8 +2445,7 @@ static void test_multifd_tcp_cancel(void)
migrate_set_capability(to, "multifd", true);

/* Start incoming migration from the 1st socket */
qtest_qmp_assert_success(to, "{ 'execute': 'migrate-incoming',"
" 'arguments': { 'uri': 'tcp:127.0.0.1:0' }}");
migrate_incoming_qmp(to, "tcp:127.0.0.1:0", "{}");

/* Wait for the first serial output from the source */
wait_for_serial("src_serial");
Expand Down Expand Up @@ -2478,8 +2475,7 @@ static void test_multifd_tcp_cancel(void)
migrate_set_capability(to2, "multifd", true);

/* Start incoming migration from the 1st socket */
qtest_qmp_assert_success(to2, "{ 'execute': 'migrate-incoming',"
" 'arguments': { 'uri': 'tcp:127.0.0.1:0' }}");
migrate_incoming_qmp(to2, "tcp:127.0.0.1:0", "{}");

g_free(uri);
uri = migrate_get_socket_address(to2, "socket-address");
Expand Down
77 changes: 9 additions & 68 deletions tests/qtest/virtio-net-failover.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "libqtest.h"
#include "libqos/pci.h"
#include "libqos/pci-pc.h"
#include "migration-helpers.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qlist.h"
#include "qapi/qmp/qjson.h"
Expand Down Expand Up @@ -736,26 +737,10 @@ static void test_migrate_out(gconstpointer opaque)
machine_stop(qts);
}

static QDict *get_migration_event(QTestState *qts)
{
QDict *resp;
QDict *data;

resp = qtest_qmp_eventwait_ref(qts, "MIGRATION");
g_assert(qdict_haskey(resp, "data"));

data = qdict_get_qdict(resp, "data");
g_assert(qdict_haskey(data, "status"));
qobject_ref(data);
qobject_unref(resp);

return data;
}

static void test_migrate_in(gconstpointer opaque)
{
QTestState *qts;
QDict *resp, *args, *ret;
QDict *resp, *ret;
g_autofree gchar *uri = g_strdup_printf("exec: cat %s", (gchar *)opaque);

qts = machine_start(BASE_MACHINE
Expand Down Expand Up @@ -787,18 +772,7 @@ static void test_migrate_in(gconstpointer opaque)
check_one_card(qts, true, "standby0", MAC_STANDBY0);
check_one_card(qts, false, "primary0", MAC_PRIMARY0);

args = qdict_from_jsonf_nofail("{}");
g_assert_nonnull(args);
qdict_put_str(args, "uri", uri);

resp = qtest_qmp(qts, "{ 'execute': 'migrate-incoming', 'arguments': %p}",
args);
g_assert(qdict_haskey(resp, "return"));
qobject_unref(resp);

resp = get_migration_event(qts);
g_assert_cmpstr(qdict_get_str(resp, "status"), ==, "setup");
qobject_unref(resp);
migrate_incoming_qmp(qts, uri, "{}");

resp = get_failover_negociated_event(qts);
g_assert_cmpstr(qdict_get_str(resp, "device-id"), ==, "standby0");
Expand Down Expand Up @@ -888,7 +862,7 @@ static void test_off_migrate_out(gconstpointer opaque)
static void test_off_migrate_in(gconstpointer opaque)
{
QTestState *qts;
QDict *resp, *args, *ret;
QDict *ret;
g_autofree gchar *uri = g_strdup_printf("exec: cat %s", (gchar *)opaque);

qts = machine_start(BASE_MACHINE
Expand Down Expand Up @@ -920,18 +894,7 @@ static void test_off_migrate_in(gconstpointer opaque)
check_one_card(qts, true, "standby0", MAC_STANDBY0);
check_one_card(qts, true, "primary0", MAC_PRIMARY0);

args = qdict_from_jsonf_nofail("{}");
g_assert_nonnull(args);
qdict_put_str(args, "uri", uri);

resp = qtest_qmp(qts, "{ 'execute': 'migrate-incoming', 'arguments': %p}",
args);
g_assert(qdict_haskey(resp, "return"));
qobject_unref(resp);

resp = get_migration_event(qts);
g_assert_cmpstr(qdict_get_str(resp, "status"), ==, "setup");
qobject_unref(resp);
migrate_incoming_qmp(qts, uri, "{}");

check_one_card(qts, true, "standby0", MAC_STANDBY0);
check_one_card(qts, true, "primary0", MAC_PRIMARY0);
Expand Down Expand Up @@ -1026,7 +989,7 @@ static void test_guest_off_migrate_out(gconstpointer opaque)
static void test_guest_off_migrate_in(gconstpointer opaque)
{
QTestState *qts;
QDict *resp, *args, *ret;
QDict *ret;
g_autofree gchar *uri = g_strdup_printf("exec: cat %s", (gchar *)opaque);

qts = machine_start(BASE_MACHINE
Expand Down Expand Up @@ -1058,18 +1021,7 @@ static void test_guest_off_migrate_in(gconstpointer opaque)
check_one_card(qts, true, "standby0", MAC_STANDBY0);
check_one_card(qts, false, "primary0", MAC_PRIMARY0);

args = qdict_from_jsonf_nofail("{}");
g_assert_nonnull(args);
qdict_put_str(args, "uri", uri);

resp = qtest_qmp(qts, "{ 'execute': 'migrate-incoming', 'arguments': %p}",
args);
g_assert(qdict_haskey(resp, "return"));
qobject_unref(resp);

resp = get_migration_event(qts);
g_assert_cmpstr(qdict_get_str(resp, "status"), ==, "setup");
qobject_unref(resp);
migrate_incoming_qmp(qts, uri, "{}");

check_one_card(qts, true, "standby0", MAC_STANDBY0);
check_one_card(qts, false, "primary0", MAC_PRIMARY0);
Expand Down Expand Up @@ -1728,7 +1680,7 @@ static void test_multi_out(gconstpointer opaque)
static void test_multi_in(gconstpointer opaque)
{
QTestState *qts;
QDict *resp, *args, *ret;
QDict *resp, *ret;
g_autofree gchar *uri = g_strdup_printf("exec: cat %s", (gchar *)opaque);

qts = machine_start(BASE_MACHINE
Expand Down Expand Up @@ -1794,18 +1746,7 @@ static void test_multi_in(gconstpointer opaque)
check_one_card(qts, true, "standby1", MAC_STANDBY1);
check_one_card(qts, false, "primary1", MAC_PRIMARY1);

args = qdict_from_jsonf_nofail("{}");
g_assert_nonnull(args);
qdict_put_str(args, "uri", uri);

resp = qtest_qmp(qts, "{ 'execute': 'migrate-incoming', 'arguments': %p}",
args);
g_assert(qdict_haskey(resp, "return"));
qobject_unref(resp);

resp = get_migration_event(qts);
g_assert_cmpstr(qdict_get_str(resp, "status"), ==, "setup");
qobject_unref(resp);
migrate_incoming_qmp(qts, uri, "{}");

resp = get_failover_negociated_event(qts);
g_assert_cmpstr(qdict_get_str(resp, "device-id"), ==, "standby0");
Expand Down

0 comments on commit 6830e53

Please sign in to comment.