On Wed, Jan 07, 2026 at 05:07:40PM +0530, Prasad Pandit wrote:
> On Wed, 7 Jan 2026 at 02:04, Peter Xu <[email protected]> wrote:
> > The parameter can be instead passed into the function.
> 
> * It'll help to include - why? pass the parameter instead.

I want to remove special and unnecessary fields in MigrateCommon struct.

I'll add a sentence when repost.

> 
> > Signed-off-by: Peter Xu <[email protected]>
> > ---
> >  tests/qtest/migration/framework.h      |  6 ++----
> >  tests/qtest/migration/framework.c      |  7 ++++---
> >  tests/qtest/migration/postcopy-tests.c | 12 ++++--------
> >  tests/qtest/migration/tls-tests.c      |  8 ++++----
> >  4 files changed, 14 insertions(+), 19 deletions(-)
> >
> > diff --git a/tests/qtest/migration/framework.h 
> > b/tests/qtest/migration/framework.h
> > index 0d39bb0d3c..bc6cf6040f 100644
> > --- a/tests/qtest/migration/framework.h
> > +++ b/tests/qtest/migration/framework.h
> > @@ -228,9 +228,6 @@ typedef struct {
> >       * refer to existing ones with live=true), or use live=off by default.
> >       */
> >      bool live;
> > -
> > -    /* Postcopy specific fields */
> > -    PostcopyRecoveryFailStage postcopy_recovery_fail_stage;
> >  } MigrateCommon;
> >
> >  void wait_for_serial(const char *side);
> > @@ -243,7 +240,8 @@ int migrate_start(QTestState **from, QTestState **to, 
> > const char *uri,
> >  void migrate_end(QTestState *from, QTestState *to, bool test_dest);
> >
> >  void test_postcopy_common(MigrateCommon *args);
> > -void test_postcopy_recovery_common(MigrateCommon *args);
> > +void test_postcopy_recovery_common(MigrateCommon *args,
> > +                                   PostcopyRecoveryFailStage fail_stage);
> >  int test_precopy_common(MigrateCommon *args);
> >  void test_file_common(MigrateCommon *args, bool stop_src);
> >  void *migrate_hook_start_precopy_tcp_multifd_common(QTestState *from,
> > diff --git a/tests/qtest/migration/framework.c 
> > b/tests/qtest/migration/framework.c
> > index 4f46cf8629..d7a5ae56f9 100644
> > --- a/tests/qtest/migration/framework.c
> > +++ b/tests/qtest/migration/framework.c
> > @@ -739,7 +739,8 @@ static void postcopy_recover_fail(QTestState *from, 
> > QTestState *to,
> >  #endif
> >  }
> >
> > -void test_postcopy_recovery_common(MigrateCommon *args)
> > +void test_postcopy_recovery_common(MigrateCommon *args,
> > +                                   PostcopyRecoveryFailStage fail_stage)
> ===
>     static void postcopy_recover_fail(QTestState *from, QTestState
> *to,
>                                        PostcopyRecoveryFailStage stage)
> ===
> 
> * To keep it consistent, maybe we can call the variable 'stage' as above?

Personally I prefer fail_stage, e.g. fail_stage=NONE means it never fails.
stage==NONE is less clear.

Thanks,

> 
> >  {
> >      QTestState *from, *to;
> >      g_autofree char *uri = NULL;
> > @@ -784,12 +785,12 @@ void test_postcopy_recovery_common(MigrateCommon 
> > *args)
> >      wait_for_postcopy_status(to, "postcopy-paused");
> >      wait_for_postcopy_status(from, "postcopy-paused");
> >
> > -    if (args->postcopy_recovery_fail_stage) {
> > +    if (fail_stage) {
> >          /*
> >           * Test when a wrong socket specified for recover, and then the
> >           * ability to kick it out, and continue with a correct socket.
> >           */
> > -        postcopy_recover_fail(from, to, 
> > args->postcopy_recovery_fail_stage);
> > +        postcopy_recover_fail(from, to, fail_stage);
> >          /* continue with a good recovery */
> >      }
> >
> > diff --git a/tests/qtest/migration/postcopy-tests.c 
> > b/tests/qtest/migration/postcopy-tests.c
> > index 7ae4d765d7..13a5759655 100644
> > --- a/tests/qtest/migration/postcopy-tests.c
> > +++ b/tests/qtest/migration/postcopy-tests.c
> > @@ -41,30 +41,26 @@ static void test_postcopy_preempt(char *name, 
> > MigrateCommon *args)
> >
> >  static void test_postcopy_recovery(char *name, MigrateCommon *args)
> >  {
> > -    test_postcopy_recovery_common(args);
> > +    test_postcopy_recovery_common(args, POSTCOPY_FAIL_NONE);
> >  }
> >
> >  static void test_postcopy_recovery_fail_handshake(char *name,
> >                                                    MigrateCommon *args)
> >  {
> > -    args->postcopy_recovery_fail_stage = POSTCOPY_FAIL_RECOVERY;
> > -
> > -    test_postcopy_recovery_common(args);
> > +    test_postcopy_recovery_common(args, POSTCOPY_FAIL_RECOVERY);
> >  }
> >
> >  static void test_postcopy_recovery_fail_reconnect(char *name,
> >                                                    MigrateCommon *args)
> >  {
> > -    args->postcopy_recovery_fail_stage = POSTCOPY_FAIL_CHANNEL_ESTABLISH;
> > -
> > -    test_postcopy_recovery_common(args);
> > +    test_postcopy_recovery_common(args, POSTCOPY_FAIL_CHANNEL_ESTABLISH);
> >  }
> >
> >  static void test_postcopy_preempt_recovery(char *name, MigrateCommon *args)
> >  {
> >      args->start.caps[MIGRATION_CAPABILITY_POSTCOPY_PREEMPT] = true;
> >
> > -    test_postcopy_recovery_common(args);
> > +    test_postcopy_recovery_common(args, POSTCOPY_FAIL_NONE);
> >  }
> >
> >  static void migration_test_add_postcopy_smoke(MigrationTestEnv *env)
> > diff --git a/tests/qtest/migration/tls-tests.c 
> > b/tests/qtest/migration/tls-tests.c
> > index 6a20c65104..bf0bb06a29 100644
> > --- a/tests/qtest/migration/tls-tests.c
> > +++ b/tests/qtest/migration/tls-tests.c
> > @@ -385,7 +385,7 @@ static void test_postcopy_recovery_tls_psk(char *name, 
> > MigrateCommon *args)
> >      args->start_hook = migrate_hook_start_tls_psk_match;
> >      args->end_hook = migrate_hook_end_tls_psk;
> >
> > -    test_postcopy_recovery_common(args);
> > +    test_postcopy_recovery_common(args, POSTCOPY_FAIL_NONE);
> >  }
> >
> >  static void test_multifd_postcopy_recovery_tls_psk(char *name,
> > @@ -396,7 +396,7 @@ static void test_multifd_postcopy_recovery_tls_psk(char 
> > *name,
> >
> >      args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
> >
> > -    test_postcopy_recovery_common(args);
> > +    test_postcopy_recovery_common(args, POSTCOPY_FAIL_NONE);
> >  }
> >
> >  /* This contains preempt+recovery+tls test altogether */
> > @@ -407,7 +407,7 @@ static void test_postcopy_preempt_all(char *name, 
> > MigrateCommon *args)
> >
> >      args->start.caps[MIGRATION_CAPABILITY_POSTCOPY_PREEMPT] = true;
> >
> > -    test_postcopy_recovery_common(args);
> > +    test_postcopy_recovery_common(args, POSTCOPY_FAIL_NONE);
> >  }
> >
> >  static void test_multifd_postcopy_preempt_recovery_tls_psk(char *name,
> > @@ -419,7 +419,7 @@ static void 
> > test_multifd_postcopy_preempt_recovery_tls_psk(char *name,
> >      args->start.caps[MIGRATION_CAPABILITY_MULTIFD] = true;
> >      args->start.caps[MIGRATION_CAPABILITY_POSTCOPY_PREEMPT] = true;
> >
> > -    test_postcopy_recovery_common(args);
> > +    test_postcopy_recovery_common(args, POSTCOPY_FAIL_NONE);
> >  }
> >
> >  static void test_precopy_unix_tls_psk(char *name, MigrateCommon *args)
> 
> * Change looks okay otherwise.
> 
> Thank you.
> ---
>   - Prasad
> 

-- 
Peter Xu


Reply via email to