From: Denis Plotnikov <dplotnikov@virtuozzo.com>
To: qemu-devel@nongnu.org
Cc: cohuck@redhat.com, philmd@redhat.com, wainersm@redhat.com
Subject: [PATCH v1 2/2] tests/acceptance/virtio_check_params: prepare to check different params
Date: Tue, 11 Feb 2020 17:25:51 +0300 [thread overview]
Message-ID: <20200211142551.13072-3-dplotnikov@virtuozzo.com> (raw)
In-Reply-To: <20200211142551.13072-1-dplotnikov@virtuozzo.com>
Signed-off-by: Denis Plotnikov <dplotnikov@virtuozzo.com>
---
tests/acceptance/virtio_check_params.py | 38 ++++++++++++++-----------
1 file changed, 22 insertions(+), 16 deletions(-)
diff --git a/tests/acceptance/virtio_check_params.py b/tests/acceptance/virtio_check_params.py
index deec89bf86..e578952a97 100644
--- a/tests/acceptance/virtio_check_params.py
+++ b/tests/acceptance/virtio_check_params.py
@@ -43,7 +43,7 @@ VM_DEV_PARAMS = {'virtio-scsi-pci': ['-device', 'virtio-scsi-pci,id=scsi0'],
EXCLUDED_MACHINES = ['none', 'isapc', 'microvm']
-class VirtioMaxSegSettingsCheck(Test):
+class VirtioParamsCheck(Test):
@staticmethod
def make_pattern(props):
pattern_items = ['{0} = \w+'.format(prop) for prop in props]
@@ -75,12 +75,12 @@ class VirtioMaxSegSettingsCheck(Test):
props[p[0]] = p[1]
return query_ok, props, error
- def check_mt(self, mt, dev_type_name):
- mt['device'] = dev_type_name # Only for the debug() call.
+ def check_mt(self, mt, expected_vals, dev_type_name):
+ msg = "mt: %s dev: %s" % (mt, dev_type_name) # For debug() call only.
logger = logging.getLogger('machine')
- logger.debug(mt)
+ logger.debug(msg)
with QEMUMachine(self.qemu_bin) as vm:
- vm.set_machine(mt["name"])
+ vm.set_machine(mt)
vm.add_args('-nodefaults')
for s in VM_DEV_PARAMS[dev_type_name]:
vm.add_args(s)
@@ -92,11 +92,15 @@ class VirtioMaxSegSettingsCheck(Test):
error = sys.exc_info()[0]
if not query_ok:
- self.fail('machine type {0}: {1}'.format(mt['name'], error))
+ self.fail('machine type {0}: {1}'.format(mt, error))
for prop_name, prop_val in props.items():
- expected_val = mt[prop_name]
- self.assertEqual(expected_val, prop_val)
+ expected_val = expected_vals[prop_name]
+ msg = 'Property value mismatch for (MT: {0}, '\
+ 'property name: {1}): expected value: "{2}" '\
+ 'actual value: "{3}"'\
+ .format(mt, prop_name, expected_val, prop_val)
+ self.assertEqual(expected_val, prop_val, msg)
@staticmethod
def seg_max_adjust_enabled(mt):
@@ -128,25 +132,27 @@ class VirtioMaxSegSettingsCheck(Test):
@skip("break multi-arch CI")
def test_machine_types(self):
- # collect all machine types except 'none', 'isapc', 'microvm'
+ # collect all machine types
with QEMUMachine(self.qemu_bin) as vm:
vm.launch()
machines = [m['name'] for m in vm.command('query-machines')]
vm.shutdown()
+ # ..and exclude non-relevant ones
machines = self.filter_machines(machines)
for dev_type in DEV_TYPES:
- # create the list of machine types and their parameters.
- mtypes = list()
+ # define expected parameters for each machine type
+ mt_expected_vals = dict()
for m in machines:
if self.seg_max_adjust_enabled(m):
enabled = 'true'
else:
enabled = 'false'
- mtypes.append({'name': m,
- DEV_TYPES[dev_type]['seg_max_adjust']: enabled})
- # test each machine type for a device type
- for mt in mtypes:
- self.check_mt(mt, dev_type)
+ mt_expected_vals[m] = {
+ DEV_TYPES[dev_type]['seg_max_adjust']: enabled }
+
+ # test each machine type
+ for mt in mt_expected_vals:
+ self.check_mt(mt, mt_expected_vals[mt], dev_type)
--
2.17.0
next prev parent reply other threads:[~2020-02-11 14:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-11 14:25 [PATCH v1 0/2] Improve virtio_check_params test Denis Plotnikov
2020-02-11 14:25 ` [PATCH v1 1/2] tests/acceptance/virtio_check_params: remove excluded machine types carefully Denis Plotnikov
2020-02-11 14:25 ` Denis Plotnikov [this message]
2020-02-11 14:37 ` [PATCH v1 0/2] Improve virtio_check_params test Philippe Mathieu-Daudé
2020-02-11 14:48 ` Denis Plotnikov
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=20200211142551.13072-3-dplotnikov@virtuozzo.com \
--to=dplotnikov@virtuozzo.com \
--cc=cohuck@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.