The image, media & tree URIs test suites just register one test case for all the work they do. As a result when they run they just sit there printing no progress information for a long time. This changes then to register one test case per OS in the database. As a result we get progress information. An added benefit is that it is possible to now run tests for individual OS by passing the -p argument. Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx> --- tests/test-imageuris.c | 62 ++++++++++++++++++++++------------------- tests/test-mediauris.c | 63 +++++++++++++++++++++++------------------- tests/test-treeuris.c | 62 ++++++++++++++++++++++------------------- 3 files changed, 100 insertions(+), 87 deletions(-) diff --git a/tests/test-imageuris.c b/tests/test-imageuris.c index 775e80f..d58df02 100644 --- a/tests/test-imageuris.c +++ b/tests/test-imageuris.c @@ -64,14 +64,11 @@ static void test_image(OsinfoImageList *imagelist, GError **error, CURL *curl) } static void -test_uris(void) +test_uris(gconstpointer data) { + OsinfoOs *os = OSINFO_OS(data); CURL *curl; - OsinfoLoader *loader = osinfo_loader_new(); - OsinfoDb *db = osinfo_loader_get_db(loader); GError *error = NULL; - OsinfoOsList *oslist = NULL; - GList *osel = NULL, *tmp; const gchar *debugstr; curl = curl_easy_init(); @@ -87,33 +84,15 @@ test_uris(void) curl_easy_setopt(curl, CURLOPT_VERBOSE, debug_level > 0 ? 1L : 0L); } - g_assert_true(OSINFO_IS_LOADER(loader)); - g_assert_true(OSINFO_IS_DB(db)); - - osinfo_loader_process_default_path(loader, &error); - g_assert_no_error(error); - - oslist = osinfo_db_get_os_list(db); - tmp = osel = osinfo_list_get_elements(OSINFO_LIST(oslist)); - while (tmp) { - OsinfoOs *os = tmp->data; - OsinfoImageList *imagelist = osinfo_os_get_image_list(os); + OsinfoImageList *imagelist = osinfo_os_get_image_list(os); - test_image(imagelist, &error, curl); + test_image(imagelist, &error, curl); - g_assert_no_error(error); + g_assert_no_error(error); - g_object_unref(imagelist); - tmp = tmp->next; - } + g_object_unref(imagelist); curl_easy_cleanup(curl); - - g_list_free(osel); - if (oslist) - g_object_unref(oslist); - - g_object_unref(loader); } @@ -122,12 +101,15 @@ int main(int argc, char *argv[]) { int ret; + OsinfoLoader *loader = osinfo_loader_new(); + OsinfoDb *db = osinfo_loader_get_db(loader); + OsinfoOsList *oslist = NULL; + GList *osel = NULL, *tmp; + GError *error = NULL; g_test_init(&argc, &argv, NULL); g_test_set_nonfatal_assertions(); - g_test_add_func("/imageuris/uris", test_uris); - if (!g_getenv("LIBOSINFO_NETWORK_TESTS")) return 77; /* Skip */ @@ -139,8 +121,30 @@ main(int argc, char *argv[]) osinfo_oslist_get_type(); osinfo_filter_get_type(); + osinfo_loader_process_default_path(loader, &error); + g_assert_no_error(error); + + oslist = osinfo_db_get_os_list(db); + tmp = osel = osinfo_list_get_elements(OSINFO_LIST(oslist)); + while (tmp) { + OsinfoOs *os = tmp->data; + gchar *name = g_strdup_printf("/imageuris/uris/%s", + osinfo_product_get_short_id(OSINFO_PRODUCT(os))); + + g_test_add_data_func(name, os, test_uris); + g_free(name); + + tmp = tmp->next; + } + ret = g_test_run(); + g_list_free(osel); + if (oslist) + g_object_unref(oslist); + + g_object_unref(loader); + curl_global_cleanup(); return ret; diff --git a/tests/test-mediauris.c b/tests/test-mediauris.c index 220dfb8..c5cde0d 100644 --- a/tests/test-mediauris.c +++ b/tests/test-mediauris.c @@ -64,14 +64,11 @@ static void test_media(OsinfoMediaList *medialist, GError **error, CURL *curl) } static void -test_uris(void) +test_uris(gconstpointer data) { + OsinfoOs *os = OSINFO_OS(data); CURL *curl; - OsinfoLoader *loader = osinfo_loader_new(); - OsinfoDb *db = osinfo_loader_get_db(loader); GError *error = NULL; - OsinfoOsList *oslist = NULL; - GList *osel = NULL, *tmp; const gchar *debugstr; curl = curl_easy_init(); @@ -87,33 +84,15 @@ test_uris(void) curl_easy_setopt(curl, CURLOPT_VERBOSE, debug_level > 0 ? 1L : 0L); } - g_assert_true(OSINFO_IS_LOADER(loader)); - g_assert_true(OSINFO_IS_DB(db)); - - osinfo_loader_process_default_path(loader, &error); - g_assert_no_error(error); - - oslist = osinfo_db_get_os_list(db); - tmp = osel = osinfo_list_get_elements(OSINFO_LIST(oslist)); - while (tmp) { - OsinfoOs *os = tmp->data; - OsinfoMediaList *medialist = osinfo_os_get_media_list(os); + OsinfoMediaList *medialist = osinfo_os_get_media_list(os); - test_media(medialist, &error, curl); + test_media(medialist, &error, curl); - g_assert_no_error(error); + g_assert_no_error(error); - g_object_unref(medialist); - tmp = tmp->next; - } + g_object_unref(medialist); curl_easy_cleanup(curl); - - g_list_free(osel); - if (oslist) - g_object_unref(oslist); - - g_object_unref(loader); } @@ -122,12 +101,15 @@ int main(int argc, char *argv[]) { int ret; + OsinfoLoader *loader = osinfo_loader_new(); + OsinfoDb *db = osinfo_loader_get_db(loader); + OsinfoOsList *oslist = NULL; + GList *osel = NULL, *tmp; + GError *error = NULL; g_test_init(&argc, &argv, NULL); g_test_set_nonfatal_assertions(); - g_test_add_func("/mediauris/uris", test_uris); - if (!g_getenv("LIBOSINFO_NETWORK_TESTS")) return 77; /* Skip */ @@ -144,8 +126,31 @@ main(int argc, char *argv[]) osinfo_oslist_get_type(); osinfo_filter_get_type(); + + osinfo_loader_process_default_path(loader, &error); + g_assert_no_error(error); + + oslist = osinfo_db_get_os_list(db); + tmp = osel = osinfo_list_get_elements(OSINFO_LIST(oslist)); + while (tmp) { + OsinfoOs *os = tmp->data; + gchar *name = g_strdup_printf("/mediauris/uris/%s", + osinfo_product_get_short_id(OSINFO_PRODUCT(os))); + + g_test_add_data_func(name, os, test_uris); + g_free(name); + + tmp = tmp->next; + } + ret = g_test_run(); + g_list_free(osel); + if (oslist) + g_object_unref(oslist); + + g_object_unref(loader); + curl_global_cleanup(); return ret; diff --git a/tests/test-treeuris.c b/tests/test-treeuris.c index 26c949b..547696b 100644 --- a/tests/test-treeuris.c +++ b/tests/test-treeuris.c @@ -64,14 +64,11 @@ static void test_tree(OsinfoTreeList *treelist, GError **error, CURL *curl) } static void -test_uris(void) +test_uris(gconstpointer data) { + OsinfoOs *os = OSINFO_OS(data); CURL *curl; - OsinfoLoader *loader = osinfo_loader_new(); - OsinfoDb *db = osinfo_loader_get_db(loader); GError *error = NULL; - OsinfoOsList *oslist = NULL; - GList *osel = NULL, *tmp; const gchar *debugstr; curl = curl_easy_init(); @@ -87,33 +84,15 @@ test_uris(void) curl_easy_setopt(curl, CURLOPT_VERBOSE, debug_level > 0 ? 1L : 0L); } - g_assert_true(OSINFO_IS_LOADER(loader)); - g_assert_true(OSINFO_IS_DB(db)); - - osinfo_loader_process_default_path(loader, &error); - g_assert_no_error(error); - - oslist = osinfo_db_get_os_list(db); - tmp = osel = osinfo_list_get_elements(OSINFO_LIST(oslist)); - while (tmp) { - OsinfoOs *os = tmp->data; - OsinfoTreeList *treelist = osinfo_os_get_tree_list(os); + OsinfoTreeList *treelist = osinfo_os_get_tree_list(os); - test_tree(treelist, &error, curl); + test_tree(treelist, &error, curl); - g_assert_no_error(error); + g_assert_no_error(error); - g_object_unref(treelist); - tmp = tmp->next; - } + g_object_unref(treelist); curl_easy_cleanup(curl); - - g_list_free(osel); - if (oslist) - g_object_unref(oslist); - - g_object_unref(loader); } @@ -122,12 +101,15 @@ int main(int argc, char *argv[]) { int ret; + OsinfoLoader *loader = osinfo_loader_new(); + OsinfoDb *db = osinfo_loader_get_db(loader); + OsinfoOsList *oslist = NULL; + GList *osel = NULL, *tmp; + GError *error = NULL; g_test_init(&argc, &argv, NULL); g_test_set_nonfatal_assertions(); - g_test_add_func("/treeuris/uris", test_uris); - if (!g_getenv("LIBOSINFO_NETWORK_TESTS")) return 77; /* Skip */ @@ -144,8 +126,30 @@ main(int argc, char *argv[]) osinfo_oslist_get_type(); osinfo_filter_get_type(); + osinfo_loader_process_default_path(loader, &error); + g_assert_no_error(error); + + oslist = osinfo_db_get_os_list(db); + tmp = osel = osinfo_list_get_elements(OSINFO_LIST(oslist)); + while (tmp) { + OsinfoOs *os = tmp->data; + gchar *name = g_strdup_printf("/treeuris/uris/%s", + osinfo_product_get_short_id(OSINFO_PRODUCT(os))); + + g_test_add_data_func(name, os, test_uris); + g_free(name); + + tmp = tmp->next; + } + ret = g_test_run(); + g_list_free(osel); + if (oslist) + g_object_unref(oslist); + + g_object_unref(loader); + curl_global_cleanup(); return ret; -- 2.20.1 _______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo