[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 02/24] Introduce the basic framework to run Avocad
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [RFC 02/24] Introduce the basic framework to run Avocado tests |
Date: |
Fri, 20 Apr 2018 16:59:33 -0300 |
User-agent: |
Mutt/1.9.2 (2017-12-15) |
On Fri, Apr 20, 2018 at 03:19:29PM -0300, Eduardo Habkost wrote:
> From: Amador Pahim <address@hidden>
>
> Avocado Testing Framework can help with functional tests in
> qemu development process. This patch creates the basic infrastructure
> to use with Avocado tests. It contains:
>
> - A README file with the initial documentation.
> - The test module which inherits from avocado.Test and adds a VM object,
> created from scripts/qemu.py module. The QemuTest class is the test
> API for the actual Qemu tests to inherit from.
> - A parameters yaml file with the supported keys.
> - A variants yaml file with the Qemu supported architectures.
>
> After this commit, you can expect a series of real-world tests, written
> using this new framework.
>
> Signed-off-by: Amador Pahim <address@hidden>
> Signed-off-by: Eduardo Habkost <address@hidden>
> ---
> scripts/qemu.py | 12 +-
> tests/avocado/README.rst | 111 ++++++++++
> tests/avocado/avocado_qemu/__init__.py | 0
> tests/avocado/avocado_qemu/test.py | 365
> +++++++++++++++++++++++++++++++++
> tests/avocado/parameters.yaml | 28 +++
> tests/avocado/variants.yaml | 62 ++++++
> tests/qemu-iotests/iotests.py | 28 +--
> 7 files changed, 586 insertions(+), 20 deletions(-)
> create mode 100644 tests/avocado/README.rst
> create mode 100644 tests/avocado/avocado_qemu/__init__.py
> create mode 100644 tests/avocado/avocado_qemu/test.py
> create mode 100644 tests/avocado/parameters.yaml
> create mode 100644 tests/avocado/variants.yaml
>
> diff --git a/scripts/qemu.py b/scripts/qemu.py
> index 9e9d502543..bd66620f45 100644
> --- a/scripts/qemu.py
> +++ b/scripts/qemu.py
> @@ -81,7 +81,7 @@ class QEMUMachine(object):
> self._qemu_log_file = None
> self._popen = None
> self._binary = binary
> - self._args = list(args) # Force copy args in case we modify them
> + self.args = list(args) # Force copy args in case we modify them
This should go to a separate patch.
Also, I would prefer a self.add_args(...) interface, instead of
exposing self.args to the outside directly. I remember some past
discussions about this, but I don't remember what was the
conclusion.
I will review tests/avocado/* later.
> self._wrapper = wrapper
> self._events = []
> self._iolog = None
> @@ -109,8 +109,8 @@ class QEMUMachine(object):
> # This can be used to add an unused monitor instance.
> def add_monitor_telnet(self, ip, port):
> args = 'tcp:%s:%d,server,nowait,telnet' % (ip, port)
> - self._args.append('-monitor')
> - self._args.append(args)
> + self.args.append('-monitor')
> + self.args.append(args)
>
> def add_fd(self, fd, fdset, opaque, opts=''):
> '''Pass a file descriptor to the VM'''
> @@ -120,8 +120,8 @@ class QEMUMachine(object):
> if opts:
> options.append(opts)
>
> - self._args.append('-add-fd')
> - self._args.append(','.join(options))
> + self.args.append('-add-fd')
> + self.args.append(','.join(options))
> return self
>
> def send_fd_scm(self, fd_file_path):
> @@ -184,7 +184,7 @@ class QEMUMachine(object):
> '-display', 'none', '-vga', 'none']
>
> def _create_console(self, console_address):
> - for item in self._args:
> + for item in self.args:
> for option in ['isa-serial', 'spapr-vty', 'sclpconsole']:
> if option in item:
> return []
[...]
--
Eduardo
- [Qemu-devel] [RFC 00/24] Avocado-based functional tests, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 01/24] qemu.py: Introduce _create_console() method, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 02/24] Introduce the basic framework to run Avocado tests, Eduardo Habkost, 2018/04/20
- Re: [Qemu-devel] [RFC 02/24] Introduce the basic framework to run Avocado tests,
Eduardo Habkost <=
- [Qemu-devel] [RFC 03/24] avocado_qemu: Improve handle_prompts to allow login after booted vm, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 04/24] avocado_qemu: Be lenient towards poluted serial console, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 05/24] avocado_qemu: Increase the login timeout to 60s, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 06/24] avocado_qemu: Add " " after the default prompt regexp, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 07/24] avocado_qemu: Store "arch" in VM, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 08/24] avocado_qemu: Provide defaults for user and pass, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 09/24] avocado_qemu: Ignore kernel messages on get_console, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 10/24] avocado_qemu: Add support to request image for testing, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 11/24] avocado_qemu: Fix exception name in caller, Eduardo Habkost, 2018/04/20
- [Qemu-devel] [RFC 12/24] avocado_qemu: Improve migration error message, Eduardo Habkost, 2018/04/20