Signed-off-by: Jiri Denemark <jdene...@redhat.com>
---
 tests/cputestdata/cpu-cpuid.py | 41 +++++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/tests/cputestdata/cpu-cpuid.py b/tests/cputestdata/cpu-cpuid.py
index a4dc23378..9ea858d98 100755
--- a/tests/cputestdata/cpu-cpuid.py
+++ b/tests/cputestdata/cpu-cpuid.py
@@ -171,6 +171,24 @@ cpuidMap = [
 ]
 
 
+def cpuidIsSet(cpuid, feature):
+    in_eax = feature["in_eax"]
+    in_ecx = feature["in_ecx"]
+    eax = feature["eax"]
+    ebx = feature["ebx"]
+    ecx = feature["ecx"]
+    edx = feature["edx"]
+
+    if in_eax not in cpuid or in_ecx not in cpuid[in_eax]:
+        return False
+    else:
+        leaf = cpuid[in_eax][in_ecx]
+        return ((eax > 0 and leaf["eax"] & eax > 0) or
+                (ebx > 0 and leaf["ebx"] & ebx > 0) or
+                (ecx > 0 and leaf["ecx"] & ecx > 0) or
+                (edx > 0 and leaf["edx"] & edx > 0))
+
+
 def parseFeatureWords(path):
     features = None
 
@@ -217,30 +235,13 @@ def parseFeatureWords(path):
     return props, cpuid
 
 
-def propAdd(props, feature, value):
-    for name in feature["names"]:
-        props[name] = value
-
-
 def convert(path):
     props, cpuid = parseFeatureWords(path)
 
     for feature in cpuidMap:
-        in_eax = feature["in_eax"]
-        in_ecx = feature["in_ecx"]
-        eax = feature["eax"]
-        ebx = feature["ebx"]
-        ecx = feature["ecx"]
-        edx = feature["edx"]
-
-        if in_eax not in cpuid or in_ecx not in cpuid[in_eax]:
-            propAdd(props, feature, False)
-        else:
-            leaf = cpuid[in_eax][in_ecx]
-            propAdd(props, feature, ((eax > 0 and leaf["eax"] & eax > 0) or
-                                     (ebx > 0 and leaf["ebx"] & ebx > 0) or
-                                     (ecx > 0 and leaf["ecx"] & ecx > 0) or
-                                     (edx > 0 and leaf["edx"] & edx > 0)))
+        value = cpuidIsSet(cpuid, feature)
+        for name in feature["names"]:
+            props[name] = value
 
     with open(path, "w") as f:
         json.dump({"return": {"model": {"name": "base", "props": props}},
-- 
2.12.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to