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 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).