]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: Add fake PPC64 emulator for QEMU testing
authorMichael Ellerman <michael@ellerman.id.au>
Mon, 12 Dec 2011 23:39:33 +0000 (10:39 +1100)
committerEric Blake <eblake@redhat.com>
Tue, 20 Dec 2011 23:14:09 +0000 (16:14 -0700)
Create a fake PPC64 QEMU so that we can run PPC64 QEMU tests when we
don't have a real version of the emulator available.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
tests/testutilsqemu.c

index 857f5daed9ab998e85653e9a3944c538b72f1b50..fa6422a70608175f70bafe0b70caf8f3e5652e5b 100644 (file)
@@ -60,6 +60,33 @@ static int testQemuDefaultConsoleType(const char *ostype ATTRIBUTE_UNUSED)
     return VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL;
 }
 
+static int testQemuAddPPC64Guest(virCapsPtr caps)
+{
+    static const char *machine[] = { "pseries" };
+    virCapsGuestMachinePtr *machines = NULL;
+    virCapsGuestPtr guest;
+
+    machines = virCapabilitiesAllocMachines(machine, 1);
+    if (!machines)
+        goto error;
+
+    guest = virCapabilitiesAddGuest(caps, "hvm", "ppc64", 64,
+                                    "/usr/bin/qemu-system-ppc64", NULL,
+                                     1, machines);
+    if (!guest)
+        goto error;
+
+    if (!virCapabilitiesAddGuestDomain(guest, "qemu", NULL, NULL, 0, NULL))
+        goto error;
+
+    return 0;
+
+error:
+    /* No way to free a guest? */
+    virCapabilitiesFreeMachines(machines, 1);
+    return -1;
+}
+
 virCapsPtr testQemuCapsInit(void) {
     virCapsPtr caps;
     virCapsGuestPtr guest;
@@ -172,6 +199,9 @@ virCapsPtr testQemuCapsInit(void) {
                                       NULL) == NULL)
         goto cleanup;
 
+    if (testQemuAddPPC64Guest(caps))
+        goto cleanup;
+
     if (virTestGetDebug()) {
         char *caps_str;