On Fri, Jun 09, 2023 at 12:49:17AM +0200, Juan Quintela wrote: > We called migrate_qmp() in lot of places. And there are tricks like > changing tcp address with the right port. > > Only two callers remaining: > - postcopy resume: It needs to play with the qmp. > - baddest: We want to do a unvalid URI. For that we need to do it by > hand. > > Signed-off-by: Juan Quintela <quint...@redhat.com> > --- > tests/qtest/migration-test.c | 41 ++++++++++++++++++------------------ > 1 file changed, 21 insertions(+), 20 deletions(-) > > diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c > index e623c43957..96b495f255 100644 > --- a/tests/qtest/migration-test.c > +++ b/tests/qtest/migration-test.c > @@ -528,6 +528,17 @@ static void migrate_postcopy_start(QTestState *from, > QTestState *to) > qtest_qmp_eventwait(to, "RESUME"); > } > > +static void do_migrate(QTestState *from, QTestState *to, const gchar *uri) > +{ > + if (!uri) { > + g_autofree char *tcp_uri = > + migrate_get_socket_address(to, "socket-address"); > + migrate_qmp(from, tcp_uri, "{}"); > + } else { > + migrate_qmp(from, uri, "{}"); > + } > +} > + > typedef struct { > /* > * QTEST_LOG=1 may override this. When QTEST_LOG=1, we always dump > errors > @@ -1173,7 +1184,7 @@ static void migrate_postcopy_prepare(QTestState > **from_ptr, > /* Wait for the first serial output from the source */ > wait_for_serial("src_serial"); > > - migrate_qmp(from, uri, "{}"); > + do_migrate(from, to, uri); > > wait_for_migration_pass(from); > > @@ -1378,6 +1389,9 @@ static void test_baddest(void) > QTestState *from, *to; > > test_migrate_start(&from, &to, "tcp:127.0.0.1:0", &args); > + /* > + * Don't change to do_migrate(). We are using a wrong uri on purpose. > + */ > migrate_qmp(from, "tcp:127.0.0.1:0", "{}"); > wait_for_migration_fail(from, false); > test_migrate_end(from, to, false); > @@ -1424,14 +1438,7 @@ static void test_precopy_common(MigrateCommon *args) > } > } > > - if (!args->connect_uri) { > - g_autofree char *local_connect_uri = > - migrate_get_socket_address(to, "socket-address"); > - migrate_qmp(from, local_connect_uri, "{}"); > - } else { > - migrate_qmp(from, args->connect_uri, "{}"); > - } > - > + do_migrate(from, to, args->connect_uri); > > if (args->result != MIG_TEST_SUCCEED) { > bool allow_active = args->result == MIG_TEST_FAIL; > @@ -1586,7 +1593,7 @@ static void test_ignore_shared(void) > /* Wait for the first serial output from the source */ > wait_for_serial("src_serial"); > > - migrate_qmp(from, uri, "{}"); > + do_migrate(from, to, uri); > > wait_for_migration_pass(from); > > @@ -1890,7 +1897,7 @@ static void do_test_validate_uuid(MigrateStart *args, > bool should_fail) > /* Wait for the first serial output from the source */ > wait_for_serial("src_serial"); > > - migrate_qmp(from, uri, "{}"); > + do_migrate(from, to, uri); > > if (should_fail) { > qtest_set_expected_status(to, EXIT_FAILURE); > @@ -1991,7 +1998,7 @@ static void test_migrate_auto_converge(void) > /* Wait for the first serial output from the source */ > wait_for_serial("src_serial"); > > - migrate_qmp(from, uri, "{}"); > + do_migrate(from, to, uri); > > /* Wait for throttling begins */ > percentage = 0; > @@ -2280,7 +2287,6 @@ static void test_multifd_tcp_cancel(void) > .hide_stderr = true, > }; > QTestState *from, *to, *to2; > - g_autofree char *uri = NULL; > > test_migrate_start(&from, &to, "defer", &args); > > @@ -2299,9 +2305,7 @@ static void test_multifd_tcp_cancel(void) > /* Wait for the first serial output from the source */ > wait_for_serial("src_serial"); > > - uri = migrate_get_socket_address(to, "socket-address"); > - > - migrate_qmp(from, uri, "{}"); > + do_migrate(from, to, "127.0.0.1:0");
I think this means migrating to "127.0.0.1:0". Can this work? > > wait_for_migration_pass(from); > > @@ -2325,14 +2329,11 @@ static void test_multifd_tcp_cancel(void) > qtest_qmp_assert_success(to2, "{ 'execute': 'migrate-incoming'," > " 'arguments': { 'uri': 'tcp:127.0.0.1:0' }}"); > > - g_free(uri); > - uri = migrate_get_socket_address(to2, "socket-address"); > - > wait_for_migration_status(from, "cancelled", NULL); > > migrate_ensure_converge(from); > > - migrate_qmp(from, uri, "{}"); > + do_migrate(from, to2, "127.0.0.1:0"); > > wait_for_migration_pass(from); > > -- > 2.40.1 > -- Peter Xu