qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Cleber Rosa <crosa@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: "Thomas Huth" <thuth@redhat.com>,
	"Beraldo Leal" <bleal@redhat.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	qemu-devel@nongnu.org, "Willian Rampazzo" <willianr@redhat.com>,
	"Auger Eric" <eric.auger@redhat.com>,
	qemu-s390x@nongnu.org, "Willian Rampazzo" <wrampazz@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: Re: [PATCH 4/8] tests/acceptance/migration.py: cancel test if migration is not supported
Date: Fri, 16 Apr 2021 12:14:14 -0400	[thread overview]
Message-ID: <20210416161414.GC1914548@amachine.somewhere> (raw)
In-Reply-To: <68f215a3-10cc-d348-0512-8a5cf64b77a5@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2833 bytes --]

On Fri, Apr 16, 2021 at 07:11:04AM +0200, Philippe Mathieu-Daudé wrote:
> On 4/15/21 11:51 PM, Cleber Rosa wrote:
> > FIXME: check if there's a way to query migration support before
> > actually requesting migration.
> > 
> > Some targets/machines contain devices that do not support migration.
> > Let's acknowledge that and cancel the test as early as possible.
> > 
> > Signed-off-by: Cleber Rosa <crosa@redhat.com>
> > ---
> >  tests/acceptance/migration.py | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tests/acceptance/migration.py b/tests/acceptance/migration.py
> > index 792639cb69..25ee55f36a 100644
> > --- a/tests/acceptance/migration.py
> > +++ b/tests/acceptance/migration.py
> > @@ -53,7 +53,11 @@ def do_migrate(self, dest_uri, src_uri=None):
> >          source_vm = self.get_vm()
> >          source_vm.add_args('-nodefaults')
> >          source_vm.launch()
> > -        source_vm.qmp('migrate', uri=src_uri)
> > +        response = source_vm.qmp('migrate', uri=src_uri)
> > +        if 'error' in response:
> > +            if 'desc' in response['error']:
> > +                msg = response['error']['desc']
> > +            self.cancel('Migration does not seem to be supported: %s' % msg)
> >          self.assert_migration(source_vm, dest_vm)
> 
> It would be better to have this done as a generic check_requisites()
> method. First because we could reuse it (also at the class level),
> second because we could account the time spent for checking separately
> from the time spent for the actual testing.
> 

With regards to separating the time, you suggest that we should
perform the check at the setUp(), and I absolutely agree with the
principle.  But, I wonder if any characteristic of the "vm",
configured during the test (and not available earlier), could affect
its migration capabilities.

Right now we are proposing some "require_*()" methods, such as
require_accelerator("kvm"), because they are checks that, to the best
of my knowlege, do not depend on any further configuration for the vm
instance.

But, your second point, about this being in a method for common use,
is very sound.  IMO the place to put something like you suggest would
be QEMUMachine.  Something like:

   try:
      source_vm.require_migrate()
   except RequirementError as e:
      self.cancel(e)

Ideally, though, one instance of the QEMUMachine used for the checks,
would not be re-used during the test.  The ideal implementation of
QEMUMachine.require_*(), would create a fresh QEMUMachine instance
with user defined characteristics and verify the requirement, leaving
the original instance untouched.

IMO we can pursue that discussion further, while handling this error
condition locally for now.

Thanks,
- Cleber.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2021-04-16 16:28 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-15 21:51 [PATCH 0/8] Tests: introduce custom jobs Cleber Rosa
2021-04-15 21:51 ` [PATCH 1/8] Acceptance Jobs: preserve the cache for pip on GitLab CI Cleber Rosa
2021-04-16  3:56   ` Thomas Huth
2021-04-16 15:39     ` Cleber Rosa
2021-04-15 21:51 ` [PATCH 2/8] Acceptance tests: do not try to reuse packages from the system Cleber Rosa
2021-04-16  5:07   ` Philippe Mathieu-Daudé
2021-04-16 15:39   ` Willian Rampazzo
2021-04-19 18:14   ` Wainer dos Santos Moschetta
2021-04-15 21:51 ` [PATCH 3/8] tests/acceptance/linux_ssh_mips_malta.py: drop identical setUp Cleber Rosa
2021-04-16  5:26   ` Philippe Mathieu-Daudé
2021-04-16 15:43     ` Cleber Rosa
2021-04-16 17:46       ` Philippe Mathieu-Daudé
2021-04-19 18:25         ` Wainer dos Santos Moschetta
2021-04-16 15:46     ` Willian Rampazzo
2021-04-16 15:41   ` Willian Rampazzo
2021-04-15 21:51 ` [PATCH 4/8] tests/acceptance/migration.py: cancel test if migration is not supported Cleber Rosa
2021-04-16  5:11   ` Philippe Mathieu-Daudé
2021-04-16 16:14     ` Cleber Rosa [this message]
2021-04-16 15:50   ` Willian Rampazzo
2021-04-19 18:46   ` Wainer dos Santos Moschetta
2021-04-15 21:51 ` [PATCH 5/8] tests/acceptance/cpu_queries.py: use the proper logging channels Cleber Rosa
2021-04-16  5:15   ` Philippe Mathieu-Daudé
2021-04-16 15:54     ` Willian Rampazzo
2021-04-16 16:17     ` Cleber Rosa
2021-04-16 15:54   ` Willian Rampazzo
2021-04-19 18:56   ` Wainer dos Santos Moschetta
2021-04-15 21:51 ` [PATCH 6/8] Acceptance tests: prevent shutdown on non-specific target tests Cleber Rosa
2021-04-16 15:56   ` Willian Rampazzo
2021-04-19 19:07   ` Wainer dos Santos Moschetta
2021-04-15 21:51 ` [PATCH 7/8] tests/acceptance/migration.py: cancel test on s390x Cleber Rosa
2021-04-19 19:11   ` Wainer dos Santos Moschetta
2021-04-19 19:35   ` Willian Rampazzo
2021-04-15 21:51 ` [PATCH 8/8] Tests: add custom test jobs Cleber Rosa
2021-04-16  5:23   ` Philippe Mathieu-Daudé
2021-04-16 16:25     ` Cleber Rosa
2021-04-16 16:22 ` [PATCH 0/8] Tests: introduce custom jobs Paolo Bonzini
2021-04-16 16:42   ` Cleber Rosa

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=20210416161414.GC1914548@amachine.somewhere \
    --to=crosa@redhat.com \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=alex.bennee@linaro.org \
    --cc=aurelien@aurel32.net \
    --cc=bleal@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=thuth@redhat.com \
    --cc=wainersm@redhat.com \
    --cc=willianr@redhat.com \
    --cc=wrampazz@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).