diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/clar/clar_libgit2.c | 18 | ||||
-rw-r--r-- | tests/clar/clar_libgit2.h | 1 | ||||
-rw-r--r-- | tests/clar/main.c | 1 |
3 files changed, 20 insertions, 0 deletions
diff --git a/tests/clar/clar_libgit2.c b/tests/clar/clar_libgit2.c index cc953915d..312e12103 100644 --- a/tests/clar/clar_libgit2.c +++ b/tests/clar/clar_libgit2.c @@ -623,6 +623,24 @@ void cl_fake_globalconfig(git_str *out) git_str_dispose(&path); } +void cl_sandbox_set_homedir(const char *home) +{ + git_str path = GIT_STR_INIT; + + if (home) { + git_libgit2_opts(GIT_OPT_SET_HOMEDIR, home); + } else { + git_str_joinpath(&path, clar_sandbox_path(), "__home"); + + if (!git_fs_path_exists(path.ptr)) + cl_must_pass(p_mkdir(path.ptr, 0777)); + + git_libgit2_opts(GIT_OPT_SET_HOMEDIR, path.ptr); + } + + git_str_dispose(&path); +} + void cl_sandbox_set_search_path_defaults(void) { git_str path = GIT_STR_INIT; diff --git a/tests/clar/clar_libgit2.h b/tests/clar/clar_libgit2.h index 87f1f9bd9..84405d21c 100644 --- a/tests/clar/clar_libgit2.h +++ b/tests/clar/clar_libgit2.h @@ -249,6 +249,7 @@ void cl_fake_homedir_cleanup(void *); void cl_fake_globalconfig(git_str *); void cl_fake_globalconfig_cleanup(void *); +void cl_sandbox_set_homedir(const char *); void cl_sandbox_set_search_path_defaults(void); void cl_sandbox_disable_ownership_validation(void); diff --git a/tests/clar/main.c b/tests/clar/main.c index d879073a8..e3f4fe740 100644 --- a/tests/clar/main.c +++ b/tests/clar/main.c @@ -25,6 +25,7 @@ int main(int argc, char *argv[]) } cl_global_trace_register(); + cl_sandbox_set_homedir(getenv("CLAR_HOMEDIR")); cl_sandbox_set_search_path_defaults(); cl_sandbox_disable_ownership_validation(); |