---
 libvirt-gconfig/tests/test-domain-create.c |   53 +++++++++++++++++++---------
 1 file changed, 37 insertions(+), 16 deletions(-)

diff --git a/libvirt-gconfig/tests/test-domain-create.c 
b/libvirt-gconfig/tests/test-domain-create.c
index 7be9fc2..0c1aad5 100644
--- a/libvirt-gconfig/tests/test-domain-create.c
+++ b/libvirt-gconfig/tests/test-domain-create.c
@@ -43,6 +43,35 @@ const char *features[] = { "foo", "bar", "baz", NULL };
     g_free(alloced_str); \
 } G_STMT_END
 
+
+static GVirConfigDomainControllerUsb *
+create_usb_controller(GVirConfigDomainControllerUsbModel model, guint index,
+                      GVirConfigDomainControllerUsb *master, guint start_port,
+                      guint domain, guint bus, guint slot, guint function,
+                      gboolean multifunction)
+{
+    GVirConfigDomainControllerUsb *controller;
+    GVirConfigDomainAddressPci *address;
+
+    controller = gvir_config_domain_controller_usb_new();
+    gvir_config_domain_controller_usb_set_model(controller, model);
+    
gvir_config_domain_controller_set_index(GVIR_CONFIG_DOMAIN_CONTROLLER(controller),
 7);
+    if (master)
+        gvir_config_domain_controller_usb_set_master(controller, master, 
start_port);
+    address = gvir_config_domain_address_pci_new();
+    gvir_config_domain_address_pci_set_domain(address, domain);
+    gvir_config_domain_address_pci_set_bus(address, bus);
+    gvir_config_domain_address_pci_set_slot(address, slot);
+    gvir_config_domain_address_pci_set_function(address, function);
+    if (multifunction)
+        gvir_config_domain_address_pci_set_multifunction(address, 
multifunction);
+    
gvir_config_domain_controller_set_address(GVIR_CONFIG_DOMAIN_CONTROLLER(controller),
+                                              
GVIR_CONFIG_DOMAIN_ADDRESS(address));
+    g_object_unref(G_OBJECT(address));
+
+    return controller;
+}
+
 int main(int argc, char **argv)
 {
     GVirConfigDomain *domain;
@@ -205,22 +234,14 @@ int main(int argc, char **argv)
     GVirConfigDomainControllerUsb *uhci3;
     GVirConfigDomainRedirdev *redirdev;
 
-    ehci = gvir_config_domain_controller_usb_new();
-    gvir_config_domain_controller_usb_set_model(ehci,
-                                                
GVIR_CONFIG_DOMAIN_CONTROLLER_USB_MODEL_ICH9_EHCI1);
-    
gvir_config_domain_controller_set_index(GVIR_CONFIG_DOMAIN_CONTROLLER(ehci), 7);
-    uhci1 = gvir_config_domain_controller_usb_new();
-    gvir_config_domain_controller_usb_set_model(uhci1,
-                                                
GVIR_CONFIG_DOMAIN_CONTROLLER_USB_MODEL_ICH9_UHCI1);
-    gvir_config_domain_controller_usb_set_master(uhci1, ehci, 0);
-    uhci2 = gvir_config_domain_controller_usb_new();
-    gvir_config_domain_controller_usb_set_model(uhci2,
-                                                
GVIR_CONFIG_DOMAIN_CONTROLLER_USB_MODEL_ICH9_UHCI2);
-    gvir_config_domain_controller_usb_set_master(uhci2, ehci, 2);
-    uhci3 = gvir_config_domain_controller_usb_new();
-    gvir_config_domain_controller_usb_set_model(uhci3,
-                                                
GVIR_CONFIG_DOMAIN_CONTROLLER_USB_MODEL_ICH9_UHCI3);
-    gvir_config_domain_controller_usb_set_master(uhci3, ehci, 4);
+    ehci = 
create_usb_controller(GVIR_CONFIG_DOMAIN_CONTROLLER_USB_MODEL_ICH9_EHCI1,
+                                 7, NULL, 0, 0, 0, 8, 7, FALSE);
+    uhci1 = 
create_usb_controller(GVIR_CONFIG_DOMAIN_CONTROLLER_USB_MODEL_ICH9_UHCI1,
+                                  0, ehci, 0, 0, 0, 8, 0, TRUE);
+    uhci2 = 
create_usb_controller(GVIR_CONFIG_DOMAIN_CONTROLLER_USB_MODEL_ICH9_UHCI2,
+                                  0, ehci, 2, 0, 0, 8, 1, FALSE);
+    uhci3 = 
create_usb_controller(GVIR_CONFIG_DOMAIN_CONTROLLER_USB_MODEL_ICH9_UHCI3,
+                                  0, ehci, 4, 0, 0, 8, 2, FALSE);
     devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(ehci));
     devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(uhci1));
     devices = g_list_append(devices, GVIR_CONFIG_DOMAIN_DEVICE(uhci2));
-- 
1.7.9.3

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

Reply via email to