From cb4742876508a08ba90c82466c9dba708e4bf999 Mon Sep 17 00:00:00 2001 From: Pavel Březina Date: Fri, 21 Nov 2014 14:41:03 +0100 Subject: tests: remove code duplication in single domain cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Michal Židek --- src/tests/cmocka/test_dp_opts.c | 5 +-- src/tests/cmocka/test_dyndns.c | 5 +-- src/tests/cmocka/test_negcache.c | 5 +-- src/tests/cmocka/test_nested_groups.c | 5 +-- src/tests/cmocka/test_nss_srv.c | 5 +-- src/tests/cmocka/test_responder_common.c | 5 +-- src/tests/cmocka/test_utils.c | 6 +-- src/tests/common.h | 4 +- src/tests/common_dom.c | 70 ++++++-------------------------- 9 files changed, 29 insertions(+), 81 deletions(-) (limited to 'src/tests') diff --git a/src/tests/cmocka/test_dp_opts.c b/src/tests/cmocka/test_dp_opts.c index 0f3052ab3..8794906e7 100644 --- a/src/tests/cmocka/test_dp_opts.c +++ b/src/tests/cmocka/test_dp_opts.c @@ -33,7 +33,6 @@ #define TESTS_PATH "tests_opts" #define TEST_CONF_DB "test_opt_conf.ldb" #define TEST_DOM_NAME "opt_test" -#define TEST_SYSDB_FILE "cache_"TEST_DOM_NAME".ldb" #define TEST_ID_PROVIDER "ldap" enum test_opts { @@ -405,12 +404,12 @@ int main(int argc, const char *argv[]) /* Even though normally the tests should clean up after themselves * they might not after a failed run. Remove the old db to be sure */ tests_set_cwd(); - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); test_dom_suite_setup(TESTS_PATH); ret = run_tests(tests); if (ret == 0 && !no_cleanup) { - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); } return ret; } diff --git a/src/tests/cmocka/test_dyndns.c b/src/tests/cmocka/test_dyndns.c index 345c170f1..58b8aad30 100644 --- a/src/tests/cmocka/test_dyndns.c +++ b/src/tests/cmocka/test_dyndns.c @@ -38,7 +38,6 @@ #define TESTS_PATH "tests_dyndns" #define TEST_CONF_DB "test_dyndns_conf.ldb" #define TEST_DOM_NAME "dyndns_test" -#define TEST_SYSDB_FILE "cache_"TEST_DOM_NAME".ldb" #define TEST_ID_PROVIDER "ldap" enum mock_nsupdate_states { @@ -492,12 +491,12 @@ int main(int argc, const char *argv[]) /* Even though normally the tests should clean up after themselves * they might not after a failed run. Remove the old db to be sure */ tests_set_cwd(); - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); test_dom_suite_setup(TESTS_PATH); rv = run_tests(tests); if (rv == 0 && !no_cleanup) { - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); } return rv; } diff --git a/src/tests/cmocka/test_negcache.c b/src/tests/cmocka/test_negcache.c index b6bcb6b08..d8e28d853 100644 --- a/src/tests/cmocka/test_negcache.c +++ b/src/tests/cmocka/test_negcache.c @@ -52,7 +52,6 @@ #define TESTS_PATH "tests_ncache" #define TEST_CONF_DB "test_nss_conf.ldb" #define TEST_DOM_NAME "nss_test" -#define TEST_SYSDB_FILE "cache_"TEST_DOM_NAME".ldb" #define TEST_ID_PROVIDER "ldap" /* register_cli_protocol_version is required in test since it links with @@ -639,12 +638,12 @@ int main(void) }; tests_set_cwd(); - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); test_dom_suite_setup(TESTS_PATH); rv = run_tests(tests); if (rv == 0) { - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); } return rv; } diff --git a/src/tests/cmocka/test_nested_groups.c b/src/tests/cmocka/test_nested_groups.c index b64d67d3c..69033130f 100644 --- a/src/tests/cmocka/test_nested_groups.c +++ b/src/tests/cmocka/test_nested_groups.c @@ -34,7 +34,6 @@ #define TESTS_PATH "tests_ldap_nested_groups" #define TEST_CONF_DB "test_ldap_nested_groups_conf.ldb" #define TEST_DOM_NAME "ldap_nested_groups_test" -#define TEST_SYSDB_FILE "cache_"TEST_DOM_NAME".ldb" #define TEST_ID_PROVIDER "ldap" #define new_test(test) \ @@ -488,12 +487,12 @@ int main(int argc, const char *argv[]) /* Even though normally the tests should clean up after themselves * they might not after a failed run. Remove the old db to be sure */ tests_set_cwd(); - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); test_dom_suite_setup(TESTS_PATH); rv = run_tests(tests); if (rv == 0 && !no_cleanup) { - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); } return rv; } diff --git a/src/tests/cmocka/test_nss_srv.c b/src/tests/cmocka/test_nss_srv.c index c318d94be..8f297a784 100644 --- a/src/tests/cmocka/test_nss_srv.c +++ b/src/tests/cmocka/test_nss_srv.c @@ -36,7 +36,6 @@ #define TESTS_PATH "tests_nss" #define TEST_CONF_DB "test_nss_conf.ldb" #define TEST_DOM_NAME "nss_test" -#define TEST_SYSDB_FILE "cache_"TEST_DOM_NAME".ldb" #define TEST_SUBDOM_NAME "test.subdomain" #define TEST_ID_PROVIDER "ldap" @@ -2118,12 +2117,12 @@ int main(int argc, const char *argv[]) /* Even though normally the tests should clean up after themselves * they might not after a failed run. Remove the old db to be sure */ tests_set_cwd(); - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); test_dom_suite_setup(TESTS_PATH); rv = run_tests(tests); if (rv == 0 && !no_cleanup) { - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); } return rv; } diff --git a/src/tests/cmocka/test_responder_common.c b/src/tests/cmocka/test_responder_common.c index a6f642ab2..48beb15fc 100644 --- a/src/tests/cmocka/test_responder_common.c +++ b/src/tests/cmocka/test_responder_common.c @@ -31,7 +31,6 @@ #define TESTS_PATH "tests_responder" #define TEST_CONF_DB "test_responder_conf.ldb" #define TEST_DOM_NAME "responder_test" -#define TEST_SYSDB_FILE "cache_"TEST_DOM_NAME".ldb" #define TEST_ID_PROVIDER "ldap" #define NAME "username" @@ -314,12 +313,12 @@ int main(int argc, const char *argv[]) /* Even though normally the tests should clean up after themselves * they might not after a failed run. Remove the old db to be sure */ tests_set_cwd(); - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); test_dom_suite_setup(TESTS_PATH); rv = run_tests(tests); if (rv == 0 && !no_cleanup) { - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); } return rv; } diff --git a/src/tests/cmocka/test_utils.c b/src/tests/cmocka/test_utils.c index 5dc00c4cc..f028c84b0 100644 --- a/src/tests/cmocka/test_utils.c +++ b/src/tests/cmocka/test_utils.c @@ -30,7 +30,7 @@ #define TESTS_PATH "tests_utils" #define TEST_CONF_DB "test_utils_conf.ldb" -#define TEST_SYSDB_FILE "cache_utils_test.ldb" +#define TEST_DOM_NAME "utils_test.ldb" #define DOM_COUNT 10 #define DOMNAME_TMPL "name_%zu.dom" @@ -1100,12 +1100,12 @@ int main(int argc, const char *argv[]) /* Even though normally the tests should clean up after themselves * they might not after a failed run. Remove the old db to be sure */ tests_set_cwd(); - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); test_dom_suite_setup(TESTS_PATH); rv = run_tests(tests); if (rv == 0) { - test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_SYSDB_FILE); + test_dom_suite_cleanup(TESTS_PATH, TEST_CONF_DB, TEST_DOM_NAME); } return rv; } diff --git a/src/tests/common.h b/src/tests/common.h index ea3a6c9e9..714be6988 100644 --- a/src/tests/common.h +++ b/src/tests/common.h @@ -100,8 +100,8 @@ void test_multidom_suite_cleanup(const char *tests_path, const char **domains); void test_dom_suite_cleanup(const char *tests_path, - const char *confdb_path, - const char *sysdb_path); + const char *cdb_file, + const char *domain); struct tevent_req * test_request_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, errno_t err); diff --git a/src/tests/common_dom.c b/src/tests/common_dom.c index d314aef41..41f876555 100644 --- a/src/tests/common_dom.c +++ b/src/tests/common_dom.c @@ -339,8 +339,14 @@ void test_multidom_suite_cleanup(const char *tests_path, if (domains != NULL) { for (i = 0; domains[i] != NULL; i++) { - sysdb_path = talloc_asprintf(tmp_ctx, "%s/cache_%s.ldb", - tests_path, domains[i]); + if (strcmp(domains[i], LOCAL_SYSDB_FILE) == 0) { + /* local domain */ + sysdb_path = talloc_asprintf(tmp_ctx, "%s/%s", + tests_path, domains[i]); + } else { + sysdb_path = talloc_asprintf(tmp_ctx, "%s/cache_%s.ldb", + tests_path, domains[i]); + } if (sysdb_path == NULL) { DEBUG(SSSDBG_CRIT_FAILURE, "Could not construct sysdb path\n"); goto done; @@ -371,62 +377,10 @@ done: } void test_dom_suite_cleanup(const char *tests_path, - const char *confdb_path, - const char *sysdb_path) + const char *cdb_file, + const char *domain) { - errno_t ret; - char *conf_db; - char *sys_db; - TALLOC_CTX *tmp_ctx; - - tmp_ctx = talloc_new(NULL); - if (!tmp_ctx) { - DEBUG(SSSDBG_CRIT_FAILURE, "talloc_new failed\n"); - return; - } - - if (confdb_path != NULL) { - conf_db = talloc_asprintf(tmp_ctx, "%s/%s", tests_path, confdb_path); - if (!conf_db) { - DEBUG(SSSDBG_CRIT_FAILURE, - "Could not construct conf_db path\n"); - goto done; - } - - errno = 0; - ret = unlink(conf_db); - if (ret != 0 && errno != ENOENT) { - DEBUG(SSSDBG_CRIT_FAILURE, - "Could not delete the test config ldb file (%d) (%s)\n", - errno, strerror(errno)); - } - } - - if (sysdb_path != NULL) { - sys_db = talloc_asprintf(tmp_ctx, "%s/%s", tests_path, sysdb_path); - if (!sys_db) { - DEBUG(SSSDBG_CRIT_FAILURE, - "Could not construct sys_db path\n"); - goto done; - } - - errno = 0; - ret = unlink(sys_db); - if (ret != 0 && errno != ENOENT) { - DEBUG(SSSDBG_CRIT_FAILURE, - "Could not delete the test ldb file (%d) (%s)\n", - errno, strerror(errno)); - } - } + const char *domains[] = {domain, NULL}; - errno = 0; - ret = rmdir(tests_path); - if (ret != 0 && errno != ENOENT) { - DEBUG(SSSDBG_CRIT_FAILURE, - "Could not delete the test dir (%d) (%s)\n", - errno, strerror(errno)); - } - -done: - talloc_free(tmp_ctx); + test_multidom_suite_cleanup(tests_path, cdb_file, domains); } -- cgit