On Tue, May 30, 2023 at 05:02:59PM +0800, Wei Wang wrote:
> The Postcopy preempt capability requires to be set before incoming
> starts, so change the postcopy tests to start with deferred incoming and
> call migrate-incoming after the cap has been set.
> 
> Signed-off-by: Wei Wang <wei.w.w...@intel.com>

Hmm.. so we used to do socket_start_incoming_migration_internal() before
setting the right num for the preempt test, then I'm curious why it wasn't
failing before this patch when trying to connect with the preempt channel..

Wei, do you know?

> ---
>  tests/qtest/migration-test.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
> index b99b49a314..31ce3d959c 100644
> --- a/tests/qtest/migration-test.c
> +++ b/tests/qtest/migration-test.c
> @@ -1158,10 +1158,11 @@ static int migrate_postcopy_prepare(QTestState 
> **from_ptr,
>                                      QTestState **to_ptr,
>                                      MigrateCommon *args)
>  {
> -    g_autofree char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs);
> +    g_autofree char *uri = NULL;
>      QTestState *from, *to;
> +    QDict *rsp;
>  
> -    if (test_migrate_start(&from, &to, uri, &args->start)) {
> +    if (test_migrate_start(&from, &to, "defer", &args->start)) {
>          return -1;
>      }
>  
> @@ -1180,9 +1181,14 @@ static int migrate_postcopy_prepare(QTestState 
> **from_ptr,
>  
>      migrate_ensure_non_converge(from);
>  
> +    rsp = wait_command(to, "{ 'execute': 'migrate-incoming',"
> +                           "  'arguments': { 'uri': 'tcp:127.0.0.1:0' }}");
> +    qobject_unref(rsp);
> +
>      /* 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, "{}");
>  
>      wait_for_migration_pass(from);
> -- 
> 2.27.0
> 

-- 
Peter Xu


Reply via email to