From: Thomas Huth <thuth@redhat.com>
To: Wainer dos Santos Moschetta <wainersm@redhat.com>, qemu-devel@nongnu.org
Cc: philmd@redhat.com, ehabkost@redhat.com, crosa@redhat.com
Subject: Re: [PATCH v2 1/3] tests/acceptance: avocado_qemu: Introduce the 'accel' test parameter
Date: Wed, 18 Dec 2019 19:48:09 +0100 [thread overview]
Message-ID: <a95fe33b-2767-4e43-0a0e-424b90446623@redhat.com> (raw)
In-Reply-To: <20191218170003.31356-2-wainersm@redhat.com>
On 18/12/2019 18.00, Wainer dos Santos Moschetta wrote:
> The test case may need to boot the VM with an accelerator that
> isn't actually enabled on the QEMU binary and/or present in the host. In
> this case the test behavior is undefined, and the best course of
> action is to skip its execution.
>
> This change introduced the 'accel' parameter (and the handler of
> tag with same name) used to indicate the test case requires a
> given accelerator available. It was implemented a mechanism to
> skip the test case if the accelerator is not available. Moreover,
> the QEMU --accel argument is set automatically to any VM
> launched if the parameter is present.
>
> Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
> ---
> docs/devel/testing.rst | 16 ++++++++++++++++
> tests/acceptance/avocado_qemu/__init__.py | 23 +++++++++++++++++++++++
> 2 files changed, 39 insertions(+)
>
> diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst
> index 27f286858a..6c2e0718e1 100644
> --- a/docs/devel/testing.rst
> +++ b/docs/devel/testing.rst
> @@ -757,6 +757,17 @@ name. If one is not given explicitly, it will either be set to
> ``None``, or, if the test is tagged with one (and only one)
> ``:avocado: tags=machine:VALUE`` tag, it will be set to ``VALUE``.
>
> +accel
> +~~~~~
> +The accelerator that will be set to all QEMUMachine instances created
> +by the test.
> +
> +The ``accel`` attribute will be set to the test parameter of the same
> +name. If one is not given explicitly, it will either be set to
> +``None``, or, if the test is tagged with one (and only one)
> +``:avocado: tags=accel:VALUE`` tag, it will be set to ``VALUE``. Currently
> +``VALUE`` should be either ``kvm`` or ``tcg``.
> +
> qemu_bin
> ~~~~~~~~
>
> @@ -798,6 +809,11 @@ machine
> The machine type that will be set to all QEMUMachine instances created
> by the test.
>
> +accel
> +~~~~~
> +The accelerator that will be set to all QEMUMachine instances created
> +by the test. In case the accelerator is not available (both QEMU
> +binary and the host system are checked) then the test is canceled.
>
> qemu_bin
> ~~~~~~~~
> diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
> index 6618ea67c1..aff32668d9 100644
> --- a/tests/acceptance/avocado_qemu/__init__.py
> +++ b/tests/acceptance/avocado_qemu/__init__.py
> @@ -20,6 +20,7 @@ SRC_ROOT_DIR = os.path.join(os.path.dirname(__file__), '..', '..', '..')
> sys.path.append(os.path.join(SRC_ROOT_DIR, 'python'))
>
> from qemu.machine import QEMUMachine
> +from qemu.accel import kvm_available, tcg_available
>
> def is_readable_executable_file(path):
> return os.path.isfile(path) and os.access(path, os.R_OK | os.X_OK)
> @@ -111,6 +112,8 @@ class Test(avocado.Test):
>
> def setUp(self):
> self._vms = {}
> + # VM argumments that are mapped from parameters
> + self._param_to_vm_args = []
>
> self.arch = self.params.get('arch',
> default=self._get_unique_tag_val('arch'))
> @@ -124,10 +127,30 @@ class Test(avocado.Test):
> if self.qemu_bin is None:
> self.cancel("No QEMU binary defined or found in the source tree")
>
> + self.accel = self.params.get('accel',
> + default=self._get_unique_tag_val('accel'))
> + if self.accel:
> + avail = False
> + if self.accel == 'kvm':
> + if kvm_available(self.arch, self.qemu_bin):
> + self._param_to_vm_args.append('-enable-kvm')
Could you please use "-accel kvm" instead? "-accel" is now our official
way to configure an accelerator ... so we should not use the old
wrappers in new code anymore if possible.
Thanks,
Thomas
PS: Travis supports KVM now, too (with some tweaking of the permissions)
... maybe we should now try to get some QEMU tests running with KVM
there, too...
next prev parent reply other threads:[~2019-12-18 18:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-18 17:00 [PATCH v2 0/3] Acceptance tests: boot Linux with KVM test Wainer dos Santos Moschetta
2019-12-18 17:00 ` [PATCH v2 1/3] tests/acceptance: avocado_qemu: Introduce the 'accel' test parameter Wainer dos Santos Moschetta
2019-12-18 18:48 ` Thomas Huth [this message]
2020-01-10 20:02 ` Wainer dos Santos Moschetta
2020-01-11 8:56 ` Thomas Huth
2020-01-22 1:38 ` Wainer dos Santos Moschetta
2019-12-18 17:00 ` [PATCH v2 2/3] tests/acceptance: boot_linux_console: Add boot Linux with kvm tests Wainer dos Santos Moschetta
2019-12-18 17:00 ` [PATCH v2 3/3] tests/acceptance: avocado_qemu: Refactor the handler of 'machine' parameter Wainer dos Santos Moschetta
2020-01-30 22:55 ` Philippe Mathieu-Daudé
2020-01-30 23:23 ` Philippe Mathieu-Daudé
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=a95fe33b-2767-4e43-0a0e-424b90446623@redhat.com \
--to=thuth@redhat.com \
--cc=crosa@redhat.com \
--cc=ehabkost@redhat.com \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=wainersm@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).