On 1/23/20 8:03 AM, Peter Krempa wrote:
The previous approac of just purging the alias combined with the fact

approach

that we filled in fake machine types in the test data meant that if a
test case used an alias machine type such as 'pc' or 'q35' it would not
properly resolve to the actual data returned by qemu.

This started to be a problem since the CPU driver now looks at the
default CPU reported with the machine type.

This patch replaces the original approach of just removing the alias by
replacing it with a copy of the machine type data which the type would
alias to. This means that we are using the real data while we don't
modify the test output after every qemu upgrade.

Additionally this change will allow us to drop adding the fake machine
types later.

The test fallout is from actually excercising the CPU driver with

exercising

actual data.

Signed-off-by: Peter Krempa <pkre...@redhat.com>
---

+++ b/src/qemu/qemu_capabilities.c
@@ -5910,8 +5910,12 @@ virQEMUCapsStripMachineAliasesForVirtType(virQEMUCapsPtr 
qemuCaps,

      for (i = 0; i < accel->nmachineTypes; i++) {
          virQEMUCapsMachineTypePtr mach = &accel->machineTypes[i];
+        g_autofree char *name = g_steal_pointer(&mach->alias);

-        VIR_FREE(mach->alias);
+        if (name) {
+            virQEMUCapsAddMachine(qemuCaps, virtType, name, NULL, 
mach->defaultCPU,
+                                  mach->maxCpus, mach->hotplugCpus, 
mach->qemuDefault);
+        }
      }
  }

@@ -5920,6 +5924,10 @@ virQEMUCapsStripMachineAliasesForVirtType(virQEMUCapsPtr 
qemuCaps,
   * virQEMUCapsStripMachineAliases:
   * @qemuCaps: capabilities object to process
   *
+ * Replace all aliases by the copy of the machine type they point to without
+ * actually having to modify the name. This allows us to add tests with the
+ * aliased machine without having to change the output files all the time.
+ *
   * Remove all aliases so that the tests depending on the latest capabilities
   * file can be stable when new files are added.

Is this paragraph stale now? (How can we remove aliases if we just replaced them?)

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org

Reply via email to