All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: "Alex Bennée" <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Cc: Laurent Vivier <lvivier@redhat.com>,
	Thomas Huth <thuth@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	f4bug@amsat.org, "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	jsnow@redhat.com
Subject: Re: [PATCH v3 08/33] tests/migration: Fail on unexpected migration states
Date: Thu, 26 Sep 2019 00:30:17 +0200	[thread overview]
Message-ID: <3426d48f-ea23-6e09-fc0e-81425b4114fa@redhat.com> (raw)
In-Reply-To: <20190924210106.27117-9-alex.bennee@linaro.org>

On 9/24/19 11:00 PM, Alex Bennée wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> We've got various places where we wait for a migration to enter
> a given state; but if we enter an unexpected state we tend to fail
> in odd ways; add a mechanism for explicitly testing for any state
> which we shouldn't be in.
> 
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Message-Id: <20190923131022.15498-2-dgilbert@redhat.com>
> ---
>  tests/migration-test.c | 23 +++++++++++++++++------
>  1 file changed, 17 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/migration-test.c b/tests/migration-test.c
> index 258aa064d48..9c62ee5331b 100644
> --- a/tests/migration-test.c
> +++ b/tests/migration-test.c
> @@ -255,15 +255,19 @@ static void read_blocktime(QTestState *who)
>  }
>  
>  static void wait_for_migration_status(QTestState *who,
> -                                      const char *goal)
> +                                      const char *goal,
> +                                      const char **ungoals)
>  {
>      while (true) {
>          bool completed;
>          char *status;
> +        const char **ungoal;
>  
>          status = migrate_query_status(who);
>          completed = strcmp(status, goal) == 0;
> -        g_assert_cmpstr(status, !=,  "failed");
> +        for (ungoal = ungoals; *ungoal; ungoal++) {
> +            g_assert_cmpstr(status, !=,  *ungoal);

:)

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> +        }
>          g_free(status);
>          if (completed) {
>              return;
> @@ -274,7 +278,8 @@ static void wait_for_migration_status(QTestState *who,
>  
>  static void wait_for_migration_complete(QTestState *who)
>  {
> -    wait_for_migration_status(who, "completed");
> +    wait_for_migration_status(who, "completed",
> +                              (const char * []) { "failed", NULL });
>  }
>  
>  static void wait_for_migration_pass(QTestState *who)
> @@ -809,7 +814,9 @@ static void test_postcopy_recovery(void)
>       * Wait until postcopy is really started; we can only run the
>       * migrate-pause command during a postcopy
>       */
> -    wait_for_migration_status(from, "postcopy-active");
> +    wait_for_migration_status(from, "postcopy-active",
> +                              (const char * []) { "failed",
> +                                                  "completed", NULL });
>  
>      /*
>       * Manually stop the postcopy migration. This emulates a network
> @@ -822,7 +829,9 @@ static void test_postcopy_recovery(void)
>       * migrate-recover command can only succeed if destination machine
>       * is in the paused state
>       */
> -    wait_for_migration_status(to, "postcopy-paused");
> +    wait_for_migration_status(to, "postcopy-paused",
> +                              (const char * []) { "failed", "active",
> +                                                  "completed", NULL });
>  
>      /*
>       * Create a new socket to emulate a new channel that is different
> @@ -836,7 +845,9 @@ static void test_postcopy_recovery(void)
>       * Try to rebuild the migration channel using the resume flag and
>       * the newly created channel
>       */
> -    wait_for_migration_status(from, "postcopy-paused");
> +    wait_for_migration_status(from, "postcopy-paused",
> +                              (const char * []) { "failed", "active",
> +                                                  "completed", NULL });
>      migrate(from, uri, "{'resume': true}");
>      g_free(uri);
>  
> 


  reply	other threads:[~2019-09-25 22:32 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-24 21:00 [PATCH v3 00/33] testing/next (docker,tcg, alpha ;-) Alex Bennée
2019-09-24 21:00 ` [PATCH v3 01/33] target/alpha: Use array for FPCR_DYN conversion Alex Bennée
2019-09-25 22:35   ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 02/33] target/alpha: Fix SWCR_MAP_UMZ Alex Bennée
2019-09-24 21:00 ` [PATCH v3 03/33] target/alpha: Fix SWCR_TRAP_ENABLE_MASK Alex Bennée
2019-09-25 22:35   ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 04/33] target/alpha: Handle SWCR_MAP_DMZ earlier Alex Bennée
2019-09-24 21:00 ` [PATCH v3 05/33] target/alpha: Write to fpcr_flush_to_zero once Alex Bennée
2019-09-24 21:00 ` [PATCH v3 06/33] target/alpha: Mask IOV exception with INV for user-only Alex Bennée
2019-09-24 21:00 ` [PATCH v3 07/33] target/alpha: Tidy helper_fp_exc_raise_s Alex Bennée
2019-09-25 22:30   ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 08/33] tests/migration: Fail on unexpected migration states Alex Bennée
2019-09-25 22:30   ` Philippe Mathieu-Daudé [this message]
2019-09-24 21:00 ` [PATCH v3 09/33] tests/migration/postcopy: trim migration bandwidth Alex Bennée
2019-09-24 21:00 ` [PATCH v3 10/33] migration/postcopy: Recognise the recovery states as 'in_postcopy' Alex Bennée
2019-09-24 21:00 ` [PATCH v3 11/33] target/ppc: fix signal delivery for ppc64abi32 Alex Bennée
2019-09-24 21:00 ` [PATCH v3 12/33] tests/docker: add sanitizers back to clang build Alex Bennée
2019-09-24 21:00 ` [PATCH v3 13/33] tests/docker: fix DOCKER_PARTIAL_IMAGES Alex Bennée
2019-09-24 21:00 ` [PATCH v3 14/33] tests/docker: remove python2.7 from debian9-mxe Alex Bennée
2019-09-25 22:27   ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 15/33] tests/docker: reduce scary warnings by cleaning up clean up Alex Bennée
2019-09-25 18:55   ` Richard Henderson
2019-09-24 21:00 ` [PATCH v3 16/33] podman: fix command invocation Alex Bennée
2019-09-25 12:36   ` Thomas Huth
2019-09-24 21:00 ` [PATCH v3 17/33] tests/tcg: clean-up some comments after the de-tangling Alex Bennée
2019-09-25 22:07   ` Philippe Mathieu-Daudé
2019-09-25 22:10     ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 18/33] tests/tcg: re-enable linux-test for ppc64abi32 Alex Bennée
2019-09-25 18:54   ` Richard Henderson
2019-09-25 22:13   ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 19/33] tests/tcg: add float_madds test to multiarch Alex Bennée
2019-09-25 22:17   ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 20/33] tests/tcg: add generic version of float_convs Alex Bennée
2019-09-25 22:26   ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 21/33] tests/tcg: add simple record/replay smoke test for aarch64 Alex Bennée
2019-09-25 22:20   ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 22/33] configure: preserve PKG_CONFIG for subdir builds Alex Bennée
2019-09-25 22:25   ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 23/33] docs/devel: add "check-tcg" to testing.rst Alex Bennée
2019-09-25 18:58   ` Richard Henderson
2019-09-25 22:16   ` Philippe Mathieu-Daudé
2019-09-24 21:00 ` [PATCH v3 24/33] target/i386: Fix broken build with WHPX enabled Alex Bennée
2019-09-24 21:00 ` [PATCH v3 25/33] tests/docker: Add fedora-win10sdk-cross image Alex Bennée
2019-09-25 20:27   ` Philippe Mathieu-Daudé
2019-09-25 21:08     ` Alex Bennée
2019-09-24 21:00 ` [PATCH v3 26/33] .shippable.yml: Build WHPX enabled binaries Alex Bennée
2019-09-24 21:01 ` [PATCH v3 27/33] docker: remove debian8-mxe definitions Alex Bennée
2019-09-24 21:01 ` [PATCH v3 28/33] docker: removed unused debian8 partial image Alex Bennée
2019-09-25 12:43   ` Philippe Mathieu-Daudé
2019-09-24 21:01 ` [PATCH v3 29/33] docker: remove 'deprecated' image definitions Alex Bennée
2019-09-25 22:23   ` Philippe Mathieu-Daudé
2019-09-25 23:34     ` Alex Bennée
2019-09-26  4:28       ` Philippe Mathieu-Daudé
2019-09-26 16:04         ` Alex Bennée
2019-09-26 16:08           ` Philippe Mathieu-Daudé
2019-09-26 17:38             ` John Snow
2019-09-24 21:01 ` [PATCH v3 30/33] docker: remove unused debian-ports Alex Bennée
2019-09-25 22:23   ` Philippe Mathieu-Daudé
2019-09-24 21:01 ` [PATCH v3 31/33] docker: remove unused debian-sid Alex Bennée
2019-09-25 22:22   ` Philippe Mathieu-Daudé
2019-09-24 21:01 ` [PATCH v3 32/33] docker: move tests from python2 to python3 Alex Bennée
2019-09-25 22:22   ` Philippe Mathieu-Daudé
2019-09-24 21:01 ` [PATCH v3 33/33] tests/docker: remove debian-powerpc-user-cross Alex Bennée
2019-09-25 18:57   ` Richard Henderson
2019-09-25 22:21   ` Philippe Mathieu-Daudé
2019-09-27 12:08 ` [PATCH v3 00/33] testing/next (docker,tcg, alpha ;-) no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3426d48f-ea23-6e09-fc0e-81425b4114fa@redhat.com \
    --to=philmd@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=dgilbert@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=jsnow@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.