On Fri, Apr 20, 2018 at 03:19:29PM -0300, Eduardo Habkost wrote: > From: Amador Pahim <apa...@redhat.com> > > 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 <apa...@redhat.com> > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> > --- > 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