Daniel P. Berrange wrote:
On Tue, Mar 04, 2008 at 04:17:34PM -0500, Cole Robinson wrote:
> The attached patch adds xen and hvm guest types to the test driver's
> capabilities. It was currently set to offer only a 'linux' type which
> doesn't seem to follow the conventions of the other drivers, so I
> removed that. Please yell if I'm wrong :)
THis patch all seems fine to me. The only problem you'll likely hit is
that the domain XML parser won't like the full-virt style <os> block
where you list a <boot> tag instead of kernel/initrd. Of course you can
do HVM + kernel/initrd too, so I've no problem adding this patch - just
that we'll likely need to add more XML parsing support to the test driver
to give full coverage of the HVM style configs.
> @@ -984,6 +984,8 @@ static char *testGetCapabilities (virConnectPtr conn)
> char *xml;
> int cell1[] = { 0, 2, 4, 6, 8, 10, 12, 14 };
> int cell2[] = { 1, 3, 5, 7, 9, 11, 13, 15 };
> + const char *guest_types[] = { "hvm", "xen" };
> + int num_guest_types = 2, i;
Having a 'num_guest_types' variable is not neccessary...
> + for (i = 0; i < num_guest_types; ++i) {
Just use 'sizeof(guest_types)/sizeof(guest_types[0])' instead
Regards,
Dan.
I forgot to resend this :/
The attached patch adds the above simplification and is diff'd against
the current codebase. Still haven't looked at actually parsing the hvm
guest xml, but that part isn't neccessary for this change to be useful
for the userspace tools (currently you cannot run virt-install with the
test driver without this change).
Thanks,
Cole
diff --git a/src/test.c b/src/test.c
index 135d96f..0a3779a 100644
--- a/src/test.c
+++ b/src/test.c
@@ -1006,6 +1006,7 @@ static char *testGetCapabilities (virConnectPtr conn)
virCapsPtr caps;
virCapsGuestPtr guest;
char *xml;
+ const char *guest_types[] = { "hvm", "xen" };
int i;
GET_CONNECTION(conn, -1);
@@ -1024,29 +1025,31 @@ static char *testGetCapabilities (virConnectPtr conn)
goto no_memory;
}
- if ((guest = virCapabilitiesAddGuest(caps,
- "linux",
- TEST_MODEL,
- TEST_MODEL_WORDSIZE,
- NULL,
- NULL,
- 0,
- NULL)) == NULL)
- goto no_memory;
+ for (i = 0; i < (sizeof(guest_types)/sizeof(guest_types[0])); ++i) {
- if (virCapabilitiesAddGuestDomain(guest,
- "test",
- NULL,
- NULL,
- 0,
- NULL) == NULL)
- goto no_memory;
+ if ((guest = virCapabilitiesAddGuest(caps,
+ guest_types[i],
+ TEST_MODEL,
+ TEST_MODEL_WORDSIZE,
+ NULL,
+ NULL,
+ 0,
+ NULL)) == NULL)
+ goto no_memory;
+ if (virCapabilitiesAddGuestDomain(guest,
+ "test",
+ NULL,
+ NULL,
+ 0,
+ NULL) == NULL)
+ goto no_memory;
- if (virCapabilitiesAddGuestFeature(guest, "pae", 1, 1) == NULL)
- goto no_memory;
- if (virCapabilitiesAddGuestFeature(guest ,"nonpae", 1, 1) == NULL)
- goto no_memory;
+ if (virCapabilitiesAddGuestFeature(guest, "pae", 1, 1) == NULL)
+ goto no_memory;
+ if (virCapabilitiesAddGuestFeature(guest ,"nonpae", 1, 1) == NULL)
+ goto no_memory;
+ }
if ((xml = virCapabilitiesFormatXML(caps)) == NULL)
goto no_memory;