[Libosinfo] [libosinfo PATCH 05/18] test-devicelinklist: Add _get_devices() test

Fabiano Fidêncio fidencio at redhat.com
Thu Nov 8 06:55:24 UTC 2018


https://gitlab.com/libosinfo/osinfo-db/issues/13

Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
 tests/test-devicelinklist.c | 62 +++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/tests/test-devicelinklist.c b/tests/test-devicelinklist.c
index fd2531b..f13f0b8 100644
--- a/tests/test-devicelinklist.c
+++ b/tests/test-devicelinklist.c
@@ -226,6 +226,67 @@ test_filter(void)
 }
 
 
+static void
+test_get_devices(void)
+{
+    OsinfoDeviceLinkList *devlink_list = osinfo_devicelinklist_new();
+    OsinfoDevice *dev1 = osinfo_device_new("wibble1");
+    OsinfoDevice *dev2 = osinfo_device_new("wibble2");
+    OsinfoDevice *dev3 = osinfo_device_new("wibble3");
+    OsinfoDevice *dev4 = osinfo_device_new("wibble4");
+    OsinfoDeviceLink *ent1 = osinfo_devicelink_new(dev1);
+    OsinfoDeviceLink *ent2 = osinfo_devicelink_new(dev2);
+    OsinfoDeviceLink *ent3 = osinfo_devicelink_new(dev3);
+    OsinfoDeviceLink *ent4 = osinfo_devicelink_new(dev4);
+    OsinfoDeviceList *dev_list;
+
+    osinfo_list_add(OSINFO_LIST(devlink_list), OSINFO_ENTITY(ent1));
+    osinfo_list_add(OSINFO_LIST(devlink_list), OSINFO_ENTITY(ent2));
+    osinfo_list_add(OSINFO_LIST(devlink_list), OSINFO_ENTITY(ent3));
+    osinfo_list_add(OSINFO_LIST(devlink_list), OSINFO_ENTITY(ent4));
+    g_assert_cmpint(osinfo_list_get_length(OSINFO_LIST(devlink_list)), ==, 4);
+
+    dev_list = osinfo_devicelinklist_get_devices(devlink_list, NULL);
+    g_assert_cmpint(osinfo_list_get_length(OSINFO_LIST(dev_list)), ==, 4);
+
+    gboolean has1 = FALSE;
+    gboolean has2 = FALSE;
+    gboolean has3 = FALSE;
+    gboolean has4 = FALSE;
+    gboolean hasBad = FALSE;
+    for (int i = 0; i < osinfo_list_get_length(OSINFO_LIST(dev_list)); i++) {
+        OsinfoDevice *dev = OSINFO_DEVICE(osinfo_list_get_nth(OSINFO_LIST(dev_list), i));
+        if (dev == dev1)
+            has1 = TRUE;
+        else if (dev == dev2)
+            has2 = TRUE;
+        else if (dev == dev3)
+            has3 = TRUE;
+        else if (dev == dev4)
+            has4 = TRUE;
+        else
+            hasBad = TRUE;
+    }
+    g_assert_true(has1);
+    g_assert_true(has2);
+    g_assert_true(has3);
+    g_assert_true(has3);
+    g_assert_true(has4);
+    g_assert_false(hasBad);
+
+    g_object_unref(dev1);
+    g_object_unref(dev2);
+    g_object_unref(dev3);
+    g_object_unref(dev4);
+    g_object_unref(ent1);
+    g_object_unref(ent2);
+    g_object_unref(ent3);
+    g_object_unref(ent4);
+    g_object_unref(dev_list);
+    g_object_unref(devlink_list);
+}
+
+
 int
 main(int argc, char *argv[])
 {
@@ -234,6 +295,7 @@ main(int argc, char *argv[])
     g_test_add_func("/devicelinklist/union", test_union);
     g_test_add_func("/devicelinklist/intersect", test_intersect);
     g_test_add_func("/devicelinklist/filter", test_filter);
+    g_test_add_func("/devicelinklist/get_devices", test_get_devices);
 
     /* Upfront so we don't confuse valgrind */
     osinfo_device_get_type();
-- 
2.19.1




More information about the Libosinfo mailing list