qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 09/29] tests/acceptance: Use 'machine' tag to check if availab


From: Philippe Mathieu-Daudé
Subject: [PATCH v2 09/29] tests/acceptance: Use 'machine' tag to check if available in QEMU binary
Date: Wed, 29 Jan 2020 22:23:25 +0100

We already use the 'machine' tag in Avocado tests.
If the requested machine is not available in the QEMU binary,
the tests will be cancelled (skipped):

  $ python -m avocado --show=app run tests/acceptance/x86_cpu_model_versions.py
   ...
   (04/11) CascadelakeArchCapabilities.test_4_1: CANCEL: Test expects machine 
'pc-i440fx-4.1' which is missing from QEMU binary (0.10 s)
   (05/11) CascadelakeArchCapabilities.test_4_0: CANCEL: Test expects machine 
'pc-i440fx-4.0' which is missing from QEMU binary (0.11 s)
   ...

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
 tests/acceptance/avocado_qemu/__init__.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/tests/acceptance/avocado_qemu/__init__.py 
b/tests/acceptance/avocado_qemu/__init__.py
index e7d5affe24..53ec8512d1 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -20,6 +20,7 @@ SRC_ROOT_DIR = os.path.join(os.path.dirname(__file__), '..', 
'..', '..')
 sys.path.append(os.path.join(SRC_ROOT_DIR, 'python'))
 
 from qemu.binutils import binary_get_arch
+from qemu.binutils import binary_get_machines
 from qemu.binutils import binary_get_version
 from qemu.machine import QEMUMachine
 
@@ -118,9 +119,6 @@ class Test(avocado.Test):
         self.arch = self.params.get('arch',
                                     default=self._get_unique_tag_val('arch'))
 
-        self.machine = self.params.get('machine',
-                                       
default=self._get_unique_tag_val('machine'))
-
         # Verify qemu_bin
         default_qemu_bin = pick_default_qemu_bin(arch=self.arch)
         self.qemu_bin = self.params.get('qemu_bin',
@@ -151,6 +149,15 @@ class Test(avocado.Test):
             if bin_arch != self.arch:
                 self.cancel(fmt.format(self.arch, bin_arch))
 
+        # Verify machine
+        self.machine = self.params.get('machine',
+                                       
default=self._get_unique_tag_val('machine'))
+        logger.debug('machine: {}'.format(self.machine))
+        if self.machine:
+            fmt = "Test expects machine '{}' which is missing from QEMU binary"
+            if self.machine not in binary_get_machines(self.qemu_bin):
+                self.cancel(fmt.format(self.machine))
+
     def _new_vm(self, *args):
         vm = QEMUMachine(self.qemu_bin, sock_dir=tempfile.mkdtemp())
         if args:
-- 
2.21.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]