diff options
author | Vicent Marti <vicent@github.com> | 2014-03-28 19:03:37 +0100 |
---|---|---|
committer | Vicent Marti <vicent@github.com> | 2014-03-28 19:03:37 +0100 |
commit | 71ba28e3a55511eaac3b2924d8de147bdce60683 (patch) | |
tree | eb82c734fe7ef2de9b506293d644e9f4bb69d06b /tests | |
parent | 04d4d674fe0ccd6cc29f30359b8306c5b3feae3d (diff) | |
parent | e0d61c7b1caa011ab6a7777535823fe18c50e13c (diff) | |
download | libgit2-71ba28e3a55511eaac3b2924d8de147bdce60683.tar.gz |
Merge pull request #2214 from ethomson/sandbox_config
RFC: Sandbox HOME during test execution
Diffstat (limited to 'tests')
-rw-r--r-- | tests/clar.c | 27 | ||||
-rw-r--r-- | tests/clar.h | 6 | ||||
-rw-r--r-- | tests/clar/sandbox.h | 5 | ||||
-rw-r--r-- | tests/main.c | 11 |
4 files changed, 45 insertions, 4 deletions
diff --git a/tests/clar.c b/tests/clar.c index 535424130..8e538f56a 100644 --- a/tests/clar.c +++ b/tests/clar.c @@ -353,8 +353,8 @@ clar_parse_args(int argc, char **argv) } } -int -clar_test(int argc, char **argv) +void +clar_test_init(int argc, char **argv) { clar_print_init( (int)_clar_callback_count, @@ -369,13 +369,23 @@ clar_test(int argc, char **argv) if (argc > 1) clar_parse_args(argc, argv); +} +int +clar_test_run() +{ if (!_clar.suites_ran) { size_t i; for (i = 0; i < _clar_suite_count; ++i) clar_run_suite(&_clar_suites[i], NULL); } + return _clar.total_errors; +} + +void +clar_test_shutdown() +{ clar_print_shutdown( _clar.tests_ran, (int)_clar_suite_count, @@ -383,7 +393,18 @@ clar_test(int argc, char **argv) ); clar_unsandbox(); - return _clar.total_errors; +} + +int +clar_test(int argc, char **argv) +{ + int errors; + + clar_test_init(argc, argv); + errors = clar_test_run(); + clar_test_shutdown(); + + return errors; } void clar__fail( diff --git a/tests/clar.h b/tests/clar.h index 87ff6d967..81263051d 100644 --- a/tests/clar.h +++ b/tests/clar.h @@ -9,8 +9,14 @@ #include <stdlib.h> +void clar_test_init(int argc, char *argv[]); +int clar_test_run(void); +void clar_test_shutdown(void); + int clar_test(int argc, char *argv[]); +const char *clar_sandbox_path(void); + void cl_set_cleanup(void (*cleanup)(void *), void *opaque); void cl_fs_cleanup(void); diff --git a/tests/clar/sandbox.h b/tests/clar/sandbox.h index ee7564148..a44e29116 100644 --- a/tests/clar/sandbox.h +++ b/tests/clar/sandbox.h @@ -127,3 +127,8 @@ static int clar_sandbox(void) return 0; } +const char *clar_sandbox_path(void) +{ + return _clar_path; +} + diff --git a/tests/main.c b/tests/main.c index 6b498939d..ffbbcbf48 100644 --- a/tests/main.c +++ b/tests/main.c @@ -6,12 +6,21 @@ int __cdecl main(int argc, char *argv[]) int main(int argc, char *argv[]) #endif { + const char *sandbox_path; int res; + clar_test_init(argc, argv); + git_threads_init(); + sandbox_path = clar_sandbox_path(); + git_libgit2_opts(GIT_OPT_SET_SEARCH_PATH, GIT_CONFIG_LEVEL_GLOBAL, sandbox_path); + git_libgit2_opts(GIT_OPT_SET_SEARCH_PATH, GIT_CONFIG_LEVEL_XDG, sandbox_path); + /* Run the test suite */ - res = clar_test(argc, argv); + res = clar_test_run(); + + clar_test_shutdown(); giterr_clear(); git_threads_shutdown(); |