diff options
-rw-r--r-- | src/Makefile.am | 55 | ||||
-rw-r--r-- | src/conf_macros.m4 | 12 | ||||
-rw-r--r-- | src/configure.ac | 4 | ||||
-rw-r--r-- | src/db/sysdb.c | 4 | ||||
-rw-r--r-- | src/tests/auth-tests.c | 3 | ||||
-rw-r--r-- | src/tests/check_and_open-tests.c | 4 | ||||
-rw-r--r-- | src/tests/common.c | 18 | ||||
-rw-r--r-- | src/tests/common.h | 2 | ||||
-rw-r--r-- | src/tests/fail_over-tests.c | 2 | ||||
-rw-r--r-- | src/tests/files-tests.c | 3 | ||||
-rw-r--r-- | src/tests/find_uid-tests.c | 4 | ||||
-rw-r--r-- | src/tests/ipa_ldap_opt-tests.c | 4 | ||||
-rw-r--r-- | src/tests/ipa_timerules-tests.c | 2 | ||||
-rw-r--r-- | src/tests/krb5_utils-tests.c | 4 | ||||
-rw-r--r-- | src/tests/refcount-tests.c | 2 | ||||
-rw-r--r-- | src/tests/resolv-tests.c | 2 | ||||
-rw-r--r-- | src/tests/stress-tests.c | 3 | ||||
-rw-r--r-- | src/tests/strtonum-tests.c | 3 | ||||
-rw-r--r-- | src/tests/sysdb-tests.c | 3 |
19 files changed, 113 insertions, 21 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index fa62702bc..93de6630a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -450,6 +450,15 @@ sss_groupshow_LDADD = \ # Feature Tests # ################# if HAVE_CHECK +noinst_LTLIBRARIES += \ + libsss_test_common.la + +libsss_test_common_la_SOURCES = \ + tests/common.c +libsss_test_common_la_LIBADD = \ + $(SSSD_LIBS) \ + $(CHECK_LIBS) + sysdb_tests_DEPENDENCIES = \ $(ldblib_LTLIBRARIES) sysdb_tests_SOURCES = \ @@ -461,7 +470,8 @@ sysdb_tests_CFLAGS = \ $(CHECK_CFLAGS) sysdb_tests_LDADD = \ $(SSSD_LIBS) \ - $(CHECK_LIBS) + $(CHECK_LIBS) \ + libsss_test_common.la strtonum_tests_SOURCES = \ tests/strtonum-tests.c \ @@ -472,7 +482,8 @@ strtonum_tests_CFLAGS = \ $(CHECK_CFLAGS) strtonum_tests_LDADD = \ $(SSSD_LIBS) \ - $(CHECK_LIBS) + $(CHECK_LIBS) \ + libsss_test_common.la krb5_utils_tests_SOURCES = \ tests/krb5_utils-tests.c \ @@ -488,7 +499,8 @@ krb5_utils_tests_CFLAGS = \ krb5_utils_tests_LDADD = \ $(SSSD_LIBS)\ $(CARES_LIBS) \ - $(CHECK_LIBS) + $(CHECK_LIBS) \ + libsss_test_common.la check_and_open_tests_SOURCES = \ @@ -499,12 +511,14 @@ check_and_open_tests_CFLAGS = \ $(AM_CFLAGS) \ $(CHECK_CFLAGS) check_and_open_tests_LDADD = \ - $(CHECK_LIBS) + $(CHECK_LIBS) \ + libsss_test_common.la FILES_TESTS_LIBS = \ $(CHECK_LIBS) \ $(POPT_LIBS) \ - $(TALLOC_LIBS) + $(TALLOC_LIBS) \ + libsss_test_common.la if BUILD_SELINUX FILES_TESTS_LIBS += $(SELINUX_LIBS) endif @@ -518,7 +532,8 @@ files_tests_CFLAGS = \ $(AM_CFLAGS) \ $(CHECK_CFLAGS) files_tests_LDADD = \ - $(FILES_TESTS_LIBS) + $(FILES_TESTS_LIBS) \ + libsss_test_common.la SSSD_RESOLV_TESTS_OBJ = \ $(SSSD_RESOLV_OBJ) @@ -531,7 +546,6 @@ endif resolv_tests_SOURCES = \ tests/resolv-tests.c \ - tests/common.c \ $(SSSD_UTIL_OBJ) \ $(SSSD_RESOLV_TESTS_OBJ) resolv_tests_CFLAGS = \ @@ -541,22 +555,22 @@ resolv_tests_CFLAGS = \ resolv_tests_LDADD = \ $(SSSD_LIBS) \ $(CHECK_LIBS) \ - $(CARES_LIBS) + $(CARES_LIBS) \ + libsss_test_common.la refcount_tests_SOURCES = \ tests/refcount-tests.c \ - tests/common.c \ $(CHECK_OBJ) \ $(SSSD_UTIL_OBJ) refcount_tests_CFLAGS = \ $(CHECK_CFLAGS) refcount_tests_LDADD = \ $(SSSD_LIBS) \ - $(CHECK_LIBS) + $(CHECK_LIBS) \ + libsss_test_common.la fail_over_tests_SOURCES = \ tests/fail_over-tests.c \ - tests/common.c \ $(SSSD_FAILOVER_OBJ) \ $(CHECK_OBJ) \ $(SSSD_UTIL_OBJ) @@ -565,12 +579,12 @@ fail_over_tests_CFLAGS = \ fail_over_tests_LDADD = \ $(SSSD_LIBS) \ $(CHECK_LIBS) \ - $(CARES_LIBS) + $(CARES_LIBS) \ + libsss_test_common.la ipa_timerules_tests_SOURCES = \ providers/ipa/ipa_timerules.c \ tests/ipa_timerules-tests.c \ - tests/common.c \ $(SSSD_DEBUG_OBJ) ipa_timerules_tests_CFLAGS = \ $(AM_CFLAGS) \ @@ -582,7 +596,8 @@ ipa_timerules_tests_LDADD = \ $(POPT_LIBS) \ $(PCRE_LIBS) \ $(TALLOC_LIBS) \ - $(CHECK_LIBS) + $(CHECK_LIBS) \ + libsss_test_common.la find_uid_tests_SOURCES = \ tests/find_uid-tests.c \ @@ -596,7 +611,8 @@ find_uid_tests_CFLAGS = \ find_uid_tests_LDADD = \ $(TALLOC_LIBS) \ $(DHASH_LIBS) \ - $(CHECK_LIBS) + $(CHECK_LIBS) \ + libsss_test_common.la auth_tests_SOURCES = \ tests/auth-tests.c \ @@ -606,7 +622,8 @@ auth_tests_CFLAGS = \ $(CHECK_CFLAGS) auth_tests_LDADD = \ $(SSSD_LIBS) \ - $(CHECK_LIBS) + $(CHECK_LIBS) \ + libsss_test_common.la ipa_ldap_opt_tests_SOURCES = \ tests/ipa_ldap_opt-tests.c @@ -614,7 +631,8 @@ ipa_ldap_opt_tests_CFLAGS = \ $(AM_CFLAGS) \ $(CHECK_CFLAGS) ipa_ldap_opt_tests_LDADD = \ - $(CHECK_LIBS) + $(CHECK_LIBS) \ + libsss_test_common.la endif @@ -622,7 +640,8 @@ stress_tests_SOURCES = \ tests/stress-tests.c \ $(SSSD_UTIL_OBJ) stress_tests_LDADD = \ - $(SSSD_LIBS) + $(SSSD_LIBS) \ + libsss_test_common.la noinst_PROGRAMS = pam_test_client pam_test_client_SOURCES = sss_client/pam_test_client.c diff --git a/src/conf_macros.m4 b/src/conf_macros.m4 index 86ccf5d9a..6323db27d 100644 --- a/src/conf_macros.m4 +++ b/src/conf_macros.m4 @@ -205,3 +205,15 @@ AC_DEFUN([WITH_SELINUX], AM_CONDITIONAL([BUILD_SELINUX], [test x"$with_selinux" = xyes]) ]) +AC_DEFUN([WITH_TEST_DIR], + [ AC_ARG_WITH([test-dir], + [AC_HELP_STRING([--with-test-dir=PATH], + [Directory used for make check temporary files [$builddir]] + ) + ] + ) + TEST_DIR=$with_test_dir + AC_SUBST(TEST_DIR) + AC_DEFINE_UNQUOTED(TEST_DIR, "$with_test_dir", [Directory used for 'make check' temporary files]) + ]) + diff --git a/src/configure.ac b/src/configure.ac index 4198ee952..d7a7a7705 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -65,6 +65,7 @@ WITH_PUBCONF_PATH WITH_PIPE_PATH WITH_INIT_DIR WITH_SHADOW_UTILS_PATH +WITH_TEST_DIR WITH_MANPAGES WITH_XML_CATALOG WITH_KRB5_PLUGIN_PATH @@ -141,5 +142,8 @@ AM_CONDITIONAL([HAVE_DOXYGEN], [test x$DOXYGEN != xfalse ]) AM_CONDITIONAL([HAVE_CHECK], [test x$have_check != x]) +abs_build_dir=`pwd` +AC_DEFINE_UNQUOTED([ABS_BUILD_DIR], ["$abs_build_dir"], [Absolute path to the build directory]) + AC_CONFIG_FILES([Makefile doxy.config po/Makefile.in]) AC_OUTPUT diff --git a/src/db/sysdb.c b/src/db/sysdb.c index b3f81a083..41dd4f3f7 100644 --- a/src/db/sysdb.c +++ b/src/db/sysdb.c @@ -974,7 +974,7 @@ static int sysdb_check_upgrade_02(TALLOC_CTX *mem_ctx, } #ifdef SYSDB_TEST - ldb_set_modules_dir(ldb, "./.libs"); + ldb_set_modules_dir(ctx->ldb, ABS_BUILD_DIR"/.libs"); #endif ret = ldb_connect(ldb, ldb_file, 0, NULL); @@ -1542,7 +1542,7 @@ static int sysdb_domain_init_internal(TALLOC_CTX *mem_ctx, } #ifdef SYSDB_TEST - ldb_set_modules_dir(ctx->ldb, "./.libs"); + ldb_set_modules_dir(ctx->ldb, ABS_BUILD_DIR"/.libs"); #endif ret = ldb_connect(ctx->ldb, ctx->ldb_file, 0, NULL); diff --git a/src/tests/auth-tests.c b/src/tests/auth-tests.c index 71215bcd2..64864090b 100644 --- a/src/tests/auth-tests.c +++ b/src/tests/auth-tests.c @@ -37,6 +37,7 @@ #include "util/util.h" #include "confdb/confdb.h" #include "db/sysdb.h" +#include "tests/common.h" #define TESTS_PATH "tests_auth" #define TEST_CONF_FILE "tests_conf.ldb" @@ -319,6 +320,8 @@ int main(int argc, const char *argv[]) } poptFreeContext(pc); + tests_set_cwd(); + ret = clean_db_dir(); if (ret != EOK) { fprintf(stderr, "Could not delete the db directory (%d) (%s)\n", diff --git a/src/tests/check_and_open-tests.c b/src/tests/check_and_open-tests.c index 32cf09f33..7ec8f3bc3 100644 --- a/src/tests/check_and_open-tests.c +++ b/src/tests/check_and_open-tests.c @@ -29,6 +29,7 @@ #include <sys/stat.h> #include "util/util.h" +#include "tests/common.h" #define SUFFIX ".symlink" @@ -208,6 +209,9 @@ Suite *check_and_open_suite (void) int main(void) { int number_failed; + + tests_set_cwd(); + Suite *s = check_and_open_suite (); SRunner *sr = srunner_create (s); /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */ diff --git a/src/tests/common.c b/src/tests/common.c index 50dc61b16..4ae1f490b 100644 --- a/src/tests/common.c +++ b/src/tests/common.c @@ -27,9 +27,9 @@ #include "tests/common.h" #include "util/dlinklist.h" -#include "util/util.h" TALLOC_CTX *global_talloc_context = NULL; +#include "util/util.h" struct size_snapshot { struct size_snapshot *prev; @@ -107,3 +107,19 @@ leak_check_teardown(void) } check_leaks(global_talloc_context, 0); } + +void +tests_set_cwd(void) +{ + int ret; + + ret = chdir(TEST_DIR); + if (ret == -1) { + if (strlen(TEST_DIR)) { + fprintf(stderr, + "Could not chdir to [%s].\n" + "Attempting to continue with current dir\n", + TEST_DIR); + } + } +} diff --git a/src/tests/common.h b/src/tests/common.h index 5d4b0867e..576d705ba 100644 --- a/src/tests/common.h +++ b/src/tests/common.h @@ -42,4 +42,6 @@ void _check_leaks_pop(TALLOC_CTX *ctx, const char *location); void leak_check_setup(void); void leak_check_teardown(void); +void tests_set_cwd(void); + #endif /* !__TESTS_COMMON_H__ */ diff --git a/src/tests/fail_over-tests.c b/src/tests/fail_over-tests.c index 4e97a1e2b..1864a09be 100644 --- a/src/tests/fail_over-tests.c +++ b/src/tests/fail_over-tests.c @@ -300,6 +300,8 @@ main(int argc, const char *argv[]) poptFreeContext(pc); debug_level = debug; + tests_set_cwd(); + suite = create_suite(); sr = srunner_create(suite); /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */ diff --git a/src/tests/files-tests.c b/src/tests/files-tests.c index 2ebe659da..2267a6034 100644 --- a/src/tests/files-tests.c +++ b/src/tests/files-tests.c @@ -34,6 +34,7 @@ #include "config.h" #include "tools/tools_util.h" #include "util/util.h" +#include "tests/common.h" static char tpl_dir[] = "file-tests-dir-XXXXXX"; static char *dir_path; @@ -312,6 +313,8 @@ int main(int argc, char *argv[]) poptFreeContext(pc); debug_level = debug; + tests_set_cwd(); + Suite *s = files_suite(); SRunner *sr = srunner_create(s); /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */ diff --git a/src/tests/find_uid-tests.c b/src/tests/find_uid-tests.c index 9eafadd45..8d1362f7f 100644 --- a/src/tests/find_uid-tests.c +++ b/src/tests/find_uid-tests.c @@ -29,6 +29,7 @@ #include <check.h> #include "util/find_uid.h" +#include "tests/common.h" START_TEST(test_check_if_uid_is_active_success) @@ -115,6 +116,9 @@ int main(void) { debug_level = 255; int number_failed; + + tests_set_cwd(); + Suite *s = find_uid_suite (); SRunner *sr = srunner_create (s); /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */ diff --git a/src/tests/ipa_ldap_opt-tests.c b/src/tests/ipa_ldap_opt-tests.c index 215f94a4d..4b4667a47 100644 --- a/src/tests/ipa_ldap_opt-tests.c +++ b/src/tests/ipa_ldap_opt-tests.c @@ -27,6 +27,7 @@ #include "providers/ipa/ipa_common.h" #include "providers/ldap/sdap.h" +#include "tests/common.h" START_TEST(test_check_num_opts) { @@ -49,6 +50,9 @@ Suite *ipa_ldap_opt_suite (void) int main(void) { int number_failed; + + tests_set_cwd(); + Suite *s = ipa_ldap_opt_suite (); SRunner *sr = srunner_create (s); /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */ diff --git a/src/tests/ipa_timerules-tests.c b/src/tests/ipa_timerules-tests.c index 0a7be90be..29fc7e4ac 100644 --- a/src/tests/ipa_timerules-tests.c +++ b/src/tests/ipa_timerules-tests.c @@ -569,6 +569,8 @@ int main(int argc, const char *argv[]) } debug_level = debug; + tests_set_cwd(); + timelib_suite = create_timelib_suite(); sr = srunner_create(timelib_suite); /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */ diff --git a/src/tests/krb5_utils-tests.c b/src/tests/krb5_utils-tests.c index 362daf475..64cf9c3d3 100644 --- a/src/tests/krb5_utils-tests.c +++ b/src/tests/krb5_utils-tests.c @@ -27,6 +27,7 @@ #include "providers/krb5/krb5_utils.h" #include "providers/krb5/krb5_auth.h" +#include "tests/common.h" #define BASE "/abc/def" @@ -296,6 +297,9 @@ Suite *krb5_utils_suite (void) int main(void) { int number_failed; + + tests_set_cwd(); + Suite *s = krb5_utils_suite (); SRunner *sr = srunner_create (s); /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */ diff --git a/src/tests/refcount-tests.c b/src/tests/refcount-tests.c index db2a256ee..5e85b6f84 100644 --- a/src/tests/refcount-tests.c +++ b/src/tests/refcount-tests.c @@ -220,6 +220,8 @@ int main(int argc, const char *argv[]) poptFreeContext(pc); debug_level = debug; + tests_set_cwd(); + suite = create_suite(); sr = srunner_create(suite); srunner_set_fork_status(sr, CK_FORK); diff --git a/src/tests/resolv-tests.c b/src/tests/resolv-tests.c index e93d0f196..c0133b923 100644 --- a/src/tests/resolv-tests.c +++ b/src/tests/resolv-tests.c @@ -595,6 +595,8 @@ int main(int argc, const char *argv[]) poptFreeContext(pc); debug_level = debug; + tests_set_cwd(); + resolv_suite = create_resolv_suite(); sr = srunner_create(resolv_suite); /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */ diff --git a/src/tests/stress-tests.c b/src/tests/stress-tests.c index 945053185..3b5373579 100644 --- a/src/tests/stress-tests.c +++ b/src/tests/stress-tests.c @@ -30,6 +30,7 @@ #include <errno.h> #include "util/util.h" +#include "tests/common.h" #define DEFAULT_START 10 #define DEFAULT_STOP 20 @@ -247,6 +248,8 @@ int main(int argc, const char *argv[]) } poptFreeContext(pc); + tests_set_cwd(); + verbose = pc_verbosity; if (pc_prefix) { diff --git a/src/tests/strtonum-tests.c b/src/tests/strtonum-tests.c index 7b9cf522c..a7131c1b5 100644 --- a/src/tests/strtonum-tests.c +++ b/src/tests/strtonum-tests.c @@ -25,6 +25,7 @@ #include <popt.h> #include "util/util.h" #include "util/strtonum.h" +#include "tests/common.h" /******************** * Utility routines * @@ -445,6 +446,8 @@ int main(int argc, const char *argv[]) { } poptFreeContext(pc); + tests_set_cwd(); + strtonum_suite = create_strtonum_suite(); sr = srunner_create(strtonum_suite); /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */ diff --git a/src/tests/sysdb-tests.c b/src/tests/sysdb-tests.c index 8b486b691..c6661aef6 100644 --- a/src/tests/sysdb-tests.c +++ b/src/tests/sysdb-tests.c @@ -29,6 +29,7 @@ #include "util/util.h" #include "confdb/confdb_setup.h" #include "db/sysdb_private.h" +#include "tests/common.h" #define TESTS_PATH "tests_sysdb" #define TEST_CONF_FILE "tests_conf.ldb" @@ -3297,6 +3298,8 @@ int main(int argc, const char *argv[]) { } poptFreeContext(pc); + tests_set_cwd(); + ret = unlink(TESTS_PATH"/"LOCAL_SYSDB_FILE); if (ret != EOK && errno != ENOENT) { fprintf(stderr, "Could not delete the test ldb file (%d) (%s)\n", |