#include "support.h" #include START_TEST (module_create) { char *testbed = setup_testbed(NULL); OSyncError *error = NULL; OSyncModule *module = osync_module_new(&error); fail_unless(module != NULL, NULL); fail_unless(error == NULL, NULL); osync_module_free(module); destroy_testbed(testbed); } END_TEST START_TEST (module_load) { char *testbed = setup_testbed(NULL); OSyncError *error = NULL; OSyncModule *module = osync_module_new(&error); fail_unless(module != NULL, NULL); fail_unless(error == NULL, NULL); char *curdir = g_get_current_dir(); char *path = g_strdup_printf("%s/libmock-format.so", curdir); fail_unless(osync_module_load(module, path, &error), NULL); fail_unless(error == NULL, NULL); g_free(path); g_free(curdir); osync_module_unload(module); osync_module_free(module); destroy_testbed(testbed); } END_TEST START_TEST (module_load_false) { char *testbed = setup_testbed(NULL); OSyncError *error = NULL; OSyncModule *module = osync_module_new(&error); fail_unless(module != NULL, NULL); fail_unless(error == NULL, NULL); char *curdir = g_get_current_dir(); char *path = g_strdup_printf("%s/does-not-exist.so", curdir); fail_unless(!osync_module_load(module, path, &error), NULL); fail_unless(error != NULL, NULL); g_free(path); g_free(curdir); osync_error_unref(&error); osync_module_free(module); destroy_testbed(testbed); } END_TEST START_TEST (module_function) { char *testbed = setup_testbed(NULL); OSyncError *error = NULL; OSyncModule *module = osync_module_new(&error); fail_unless(module != NULL, NULL); fail_unless(error == NULL, NULL); char *curdir = g_get_current_dir(); char *path = g_strdup_printf("%s/libmock-format.so", curdir); fail_unless(osync_module_load(module, path, &error), NULL); fail_unless(error == NULL, NULL); g_free(path); g_free(curdir); void *func = osync_module_get_function(module, "get_version", &error); fail_unless(func != NULL, NULL); fail_unless(error == NULL, NULL); osync_module_unload(module); osync_module_free(module); destroy_testbed(testbed); } END_TEST START_TEST (module_function_false) { char *testbed = setup_testbed(NULL); OSyncError *error = NULL; OSyncModule *module = osync_module_new(&error); fail_unless(module != NULL, NULL); fail_unless(error == NULL, NULL); char *curdir = g_get_current_dir(); char *path = g_strdup_printf("%s/libmock-format.so", curdir); fail_unless(osync_module_load(module, path, &error), NULL); fail_unless(error == NULL, NULL); g_free(path); g_free(curdir); void *func = osync_module_get_function(module, "get_version1", &error); fail_unless(func == NULL, NULL); fail_unless(error != NULL, NULL); osync_error_unref(&error); osync_module_unload(module); osync_module_free(module); destroy_testbed(testbed); } END_TEST START_TEST (module_version) { char *testbed = setup_testbed(NULL); OSyncError *error = NULL; OSyncModule *module = osync_module_new(&error); fail_unless(module != NULL, NULL); fail_unless(error == NULL, NULL); char *curdir = g_get_current_dir(); char *path = g_strdup_printf("%s/libmock-format.so", curdir); fail_unless(osync_module_load(module, path, &error), NULL); fail_unless(error == NULL, NULL); g_free(path); g_free(curdir); int version = osync_module_get_version(module); fail_unless(version == 1, NULL); osync_module_unload(module); osync_module_free(module); destroy_testbed(testbed); } END_TEST START_TEST (module_check) { char *testbed = setup_testbed(NULL); OSyncError *error = NULL; OSyncModule *module = osync_module_new(&error); fail_unless(module != NULL, NULL); fail_unless(error == NULL, NULL); char *curdir = g_get_current_dir(); char *path = g_strdup_printf("%s/libmock-format.so", curdir); fail_unless(osync_module_load(module, path, &error), NULL); fail_unless(error == NULL, NULL); g_free(path); g_free(curdir); fail_unless(osync_module_check(module, &error), NULL); fail_unless(error == NULL, NULL); osync_module_unload(module); osync_module_free(module); destroy_testbed(testbed); } END_TEST Suite *module_suite(void) { Suite *s = suite_create("Module"); //Suite *s2 = suite_create("Module"); create_case(s, "module_create", module_create); create_case(s, "module_load", module_load); create_case(s, "module_load_false", module_load_false); create_case(s, "module_function", module_function); create_case(s, "module_function_false", module_function_false); create_case(s, "module_version", module_version); create_case(s, "module_check", module_check); return s; } int main(void) { int nf; Suite *s = module_suite(); SRunner *sr; sr = srunner_create(s); srunner_run_all(sr, CK_NORMAL); nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; }