Merge pull request #1944 from libgit2/ntk/fix/config_search_paths_leaks Plug configuration file search paths tests leaks
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
diff --git a/src/fileops.c b/src/fileops.c
index 1c27b27..5763b37 100644
--- a/src/fileops.c
+++ b/src/fileops.c
@@ -618,7 +618,7 @@ static git_futils_dirs_guess_cb git_futils__dir_guess[GIT_FUTILS_DIR__MAX] = {
git_futils_guess_template_dirs,
};
-static void git_futils_dirs_global_shutdown(void)
+void git_futils_dirs_global_shutdown(void)
{
int i;
for (i = 0; i < GIT_FUTILS_DIR__MAX; ++i)
diff --git a/src/fileops.h b/src/fileops.h
index 59a6a21..636c9b6 100644
--- a/src/fileops.h
+++ b/src/fileops.h
@@ -399,4 +399,9 @@ extern int git_futils_filestamp_check(
extern void git_futils_filestamp_set(
git_futils_filestamp *tgt, const git_futils_filestamp *src);
+/**
+ * Free the configuration file search paths.
+ */
+extern void git_futils_dirs_global_shutdown(void);
+
#endif /* INCLUDE_fileops_h__ */
diff --git a/tests-clar/repo/config.c b/tests-clar/repo/config.c
index b8971bb..11abd42 100644
--- a/tests-clar/repo/config.c
+++ b/tests-clar/repo/config.c
@@ -46,6 +46,8 @@ void test_repo_config__open_missing_global(void)
git_config_free(global);
git_config_free(config);
git_repository_free(repo);
+
+ git_futils_dirs_global_shutdown();
}
void test_repo_config__open_missing_global_with_separators(void)
@@ -73,6 +75,8 @@ void test_repo_config__open_missing_global_with_separators(void)
git_config_free(global);
git_config_free(config);
git_repository_free(repo);
+
+ git_futils_dirs_global_shutdown();
}
#include "repository.h"
@@ -101,6 +105,8 @@ void test_repo_config__read_no_configs(void)
cl_assert_equal_i(GIT_ABBREV_DEFAULT, val);
git_repository_free(repo);
+ git_futils_dirs_global_shutdown();
+
/* with just system */
cl_must_pass(p_mkdir("alternate/1", 0777));
@@ -197,4 +203,6 @@ void test_repo_config__read_no_configs(void)
cl_assert(!git_path_exists("empty_standard_repo/.git/config"));
cl_assert(!git_path_exists("alternate/3/.gitconfig"));
+
+ git_futils_dirs_global_shutdown();
}
diff --git a/tests-clar/repo/open.c b/tests-clar/repo/open.c
index f386612..7cfe041 100644
--- a/tests-clar/repo/open.c
+++ b/tests-clar/repo/open.c
@@ -322,6 +322,8 @@ void test_repo_open__no_config(void)
git_config_free(config);
git_repository_free(repo);
cl_fixture_cleanup("empty_standard_repo");
+
+ git_futils_dirs_global_shutdown();
}
void test_repo_open__force_bare(void)