Dne 25.4.2018 v 18:56 Sergey Bronnikov napsal(a): > Hello! > > I have started to learning avocado and stuck with a problem. > There are some tests which I want to run in Qemu so I use avocado-vt > plugin. For all of my tests should use fixed HDD interface and NIC model - > "nic_model: rtl8139", "drive_format: ahci" and some options should be > disabled - for example 'smp'. How to do it right in avocado? > > I read chapter "Cartesion config" in documentation, but documentation > describe only basic artificial examples and doesn't contain best practices. > > Sergey >
Hello Sergey,
Avocado-vt is quite a heavy beast, but very powerful, so bear with us and one
day you'll be spawning millions of combinations from top of your head.
As for the combinations, Avocado-vt by default creates many different
combinations, filtering them out and running (usually) one combination. Based
on host hardware it's usually:
* bridge
* default_bios
* no_virtio_rng
* filesystem
* no_9p_export
* smallpages
* no_pci_assignable
* qcow2
* virtio_scsi
* smp2
* virtio_net
* Guest.JeOS.27.x86_64
* Host.Fedora.m27.u0
* Host_arch_x86_64
* i440fx
followed by test (which actually is just another "variant" that specified
special keyword "type"). You can change some by arguments (`--vt-machine-type`,
`--vt-guest-os`, ...) other by config in `/etc/avocado/conf.d/vt.conf` (eg:
`vt.qemu.smp`) and the rest you can tweak directly by `--vt-extra-params
$key=$value` (eg: `--vt-extra-params smp=1 extra_params=" -serial
tcp:0:4444,server") [1]
Now you said your test is incompatible with "smp", so you just have to add:
```python
if int(self.params.get('smp')) > 1:
self.skip("Test is not supported on multi-cpu setup")
```
which will make the test to be canceled (skipped) when executed with multiple
cpus. You'll only be able to execute that test by changing the `vt.qemu.smp`
config entry, or using `--vt-extra-params smp=1`, which forces Avocado-vt to
use single cpu.
The same applies for other filters like required block driver, network card
etc. You can find the reference guide for all the special variables here:
http://avocado-vt.readthedocs.io/en/latest/cartesian/index.html
or simply look in
https://github.com/avocado-framework/avocado-vt/tree/master/shared/cfg
(preferably use the files located, after `avocado vt-bootstrap` in
`$AVOCADO_DATA/avocado-vt/backends/$BACKEND/cfg`).
Happy hacking,
Lukáš
[1] note the `--vt-extra-params` is a low level Swiss-army tool. It overrides
directly the avocado-vt params, not propagating the changes to test name, which
can bring some confusion. Anyway from test point of view it works well
signature.asc
Description: OpenPGP digital signature
