/* * Copyright (C) 2018 Red Hat, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see */ #include 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; gboolean has1; gboolean has2; gboolean has3; gboolean has4; gboolean hasBad; 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); has1 = FALSE; has2 = FALSE; has3 = FALSE; has4 = FALSE; 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(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[]) { g_test_init(&argc, &argv, NULL); g_test_add_func("/devicelinklist/get_devices", test_get_devices); /* Upfront so we don't confuse valgrind */ osinfo_device_get_type(); osinfo_devicelist_get_type(); osinfo_filter_get_type(); return g_test_run(); }