qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 3/8] device-crash-test: Accept machine=DEFAULT to te


From: Eduardo Habkost
Subject: [Qemu-devel] [PATCH 3/8] device-crash-test: Accept machine=DEFAULT to test the default machine
Date: Fri, 9 Mar 2018 17:28:22 -0300

This will be useful for running a smaller test set on
"make check", instead of testing every single machine-type/device
combination.

Signed-off-by: Eduardo Habkost <address@hidden>
---
 scripts/device-crash-test | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/scripts/device-crash-test b/scripts/device-crash-test
index 364c779cdb..632b128e44 100755
--- a/scripts/device-crash-test
+++ b/scripts/device-crash-test
@@ -41,6 +41,11 @@ Test a single QEMU binary:
 
     device-crash-test /path/to/qemu/binary
 
+Test all QEMU binaries found in the current directory, using only the default
+machine-type:
+
+    device-crash-test -t machine=DEFAULT
+
 """
 
 import sys
@@ -357,7 +362,7 @@ class QemuBinaryInfo(object):
             # there's no way to query DeviceClass::user_creatable using QMP,
             # so use 'info qdm':
             self.no_user_devs = set([d['name'] for d in infoQDM(vm, ) if 
d['no-user']])
-            self.machines = list(m['name'] for m in 
vm.command('query-machines'))
+            self.machines = vm.command('query-machines')
             self.user_devs = self.alldevs.difference(self.no_user_devs)
             self.kvm_available = vm.command('query-kvm')['enabled']
         finally:
@@ -390,6 +395,19 @@ class QemuBinaryInfo(object):
         self._machine_info[machine] = mi
         return mi
 
+    def defaultMachine(self):
+        """Default machine-type for the QEMU binary
+
+        If no default machine-type is returned by query-machines, return the
+        first machine-type in the list.
+        """
+        machines = self.machines
+        defmachine = [m['name'] for m in self.machines if m.get('is-default')]
+        if defmachine:
+            return defmachine[0]
+        else:
+            return self.machines[0]['name']
+
 
 BINARY_INFO = {}
 
@@ -455,7 +473,7 @@ def accelsToTest(args, testcase):
 
 
 def machinesToTest(args, testcase):
-    return getBinaryInfo(args, testcase['binary']).machines
+    return [m['name'] for m in getBinaryInfo(args, 
testcase['binary']).machines]
 
 
 def devicesToTest(args, testcase):
@@ -580,6 +598,13 @@ def main():
         return 1
 
     for t in casesToTest(args, tc):
+
+        # expand some test case variables to their actual values before
+        # using them:
+        # "-t machine=DEFAULT" can be used to use the default machine-type
+        if t['machine'] == 'DEFAULT':
+            t['machine'] = getBinaryInfo(args, t['binary']).defaultMachine()
+
         logger.info("running test case: %s", formatTestCase(t))
         total += 1
 
-- 
2.14.3




reply via email to

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