diff options
author | Edward Thomson <ethomson@microsoft.com> | 2014-12-08 16:59:41 -0500 |
---|---|---|
committer | Edward Thomson <ethomson@microsoft.com> | 2014-12-09 12:04:53 -0500 |
commit | 6b11eb51ee4decb03166679ecf5c5ebcaf1ab77e (patch) | |
tree | 23e8128e1c52d48f0eedadc94e1053c6e6ab26fa | |
parent | 80b01c8f2639da24c1dc78a635abf12e111cf4d1 (diff) | |
download | libgit2-6b11eb51ee4decb03166679ecf5c5ebcaf1ab77e.tar.gz |
core::link test: clean up junction point name
-rw-r--r-- | tests/core/link.c | 57 |
1 files changed, 50 insertions, 7 deletions
diff --git a/tests/core/link.c b/tests/core/link.c index 1794a3893..83999ebdf 100644 --- a/tests/core/link.c +++ b/tests/core/link.c @@ -23,7 +23,7 @@ void test_core_link__cleanup(void) } #ifdef GIT_WIN32 -static bool is_administrator(void) +static bool should_run(void) { static SID_IDENTIFIER_AUTHORITY authority = { SECURITY_NT_AUTHORITY }; PSID admin_sid; @@ -35,6 +35,11 @@ static bool is_administrator(void) return is_admin ? true : false; } +#else +static bool should_run(void) +{ + return true; +} #endif static void do_symlink(const char *old, const char *new, int is_dir) @@ -48,9 +53,6 @@ static void do_symlink(const char *old, const char *new, int is_dir) HMODULE module; create_symlink_func pCreateSymbolicLink; - if (!is_administrator()) - clar__skip(); - cl_assert(module = GetModuleHandle("kernel32")); cl_assert(pCreateSymbolicLink = (create_symlink_func)GetProcAddress(module, "CreateSymbolicLinkA")); @@ -67,9 +69,6 @@ static void do_hardlink(const char *old, const char *new) HMODULE module; create_hardlink_func pCreateHardLink; - if (!is_administrator()) - clar__skip(); - cl_assert(module = GetModuleHandle("kernel32")); cl_assert(pCreateHardLink = (create_hardlink_func)GetProcAddress(module, "CreateHardLinkA")); @@ -147,6 +146,8 @@ static void do_junction(const char *old, const char *new) CloseHandle(handle); LocalFree(reparse_buf); + + git_buf_free(&unparsed_buf); } static void do_custom_reparse(const char *path) @@ -235,6 +236,9 @@ void test_core_link__stat_symlink(void) { struct stat st; + if (!should_run()) + clar__skip(); + cl_git_rewritefile("stat_target", "This is the target of a symbolic link.\n"); do_symlink("stat_target", "stat_symlink", 0); @@ -251,6 +255,9 @@ void test_core_link__stat_symlink_directory(void) { struct stat st; + if (!should_run()) + clar__skip(); + p_mkdir("stat_dirtarget", 0777); do_symlink("stat_dirtarget", "stat_dirlink", 1); @@ -265,6 +272,9 @@ void test_core_link__stat_symlink_chain(void) { struct stat st; + if (!should_run()) + clar__skip(); + cl_git_rewritefile("stat_final_target", "Final target of some symbolic links...\n"); do_symlink("stat_final_target", "stat_chain_3", 0); do_symlink("stat_chain_3", "stat_chain_2", 0); @@ -279,6 +289,9 @@ void test_core_link__stat_dangling_symlink(void) { struct stat st; + if (!should_run()) + clar__skip(); + do_symlink("stat_nonexistent", "stat_dangling", 0); cl_must_fail(p_stat("stat_nonexistent", &st)); @@ -289,6 +302,9 @@ void test_core_link__stat_dangling_symlink_directory(void) { struct stat st; + if (!should_run()) + clar__skip(); + do_symlink("stat_nonexistent", "stat_dangling_dir", 1); cl_must_fail(p_stat("stat_nonexistent_dir", &st)); @@ -300,6 +316,9 @@ void test_core_link__lstat_symlink(void) git_buf target_path = GIT_BUF_INIT; struct stat st; + if (!should_run()) + clar__skip(); + /* Windows always writes the canonical path as the link target, so * write the full path on all platforms. */ @@ -324,6 +343,9 @@ void test_core_link__lstat_symlink_directory(void) git_buf target_path = GIT_BUF_INIT; struct stat st; + if (!should_run()) + clar__skip(); + git_buf_join(&target_path, '/', clar_sandbox_path(), "lstat_dirtarget"); p_mkdir("lstat_dirtarget", 0777); @@ -343,6 +365,9 @@ void test_core_link__lstat_dangling_symlink(void) { struct stat st; + if (!should_run()) + clar__skip(); + do_symlink("lstat_nonexistent", "lstat_dangling", 0); cl_must_fail(p_lstat("lstat_nonexistent", &st)); @@ -356,6 +381,9 @@ void test_core_link__lstat_dangling_symlink_directory(void) { struct stat st; + if (!should_run()) + clar__skip(); + do_symlink("lstat_nonexistent", "lstat_dangling_dir", 1); cl_must_fail(p_lstat("lstat_nonexistent", &st)); @@ -454,6 +482,9 @@ void test_core_link__stat_hardlink(void) { struct stat st; + if (!should_run()) + clar__skip(); + cl_git_rewritefile("stat_hardlink1", "This file has many names!\n"); do_hardlink("stat_hardlink1", "stat_hardlink2"); @@ -470,6 +501,9 @@ void test_core_link__lstat_hardlink(void) { struct stat st; + if (!should_run()) + clar__skip(); + cl_git_rewritefile("lstat_hardlink1", "This file has many names!\n"); do_hardlink("lstat_hardlink1", "lstat_hardlink2"); @@ -537,6 +571,9 @@ void test_core_link__readlink_symlink(void) int len; char buf[2048]; + if (!should_run()) + clar__skip(); + git_buf_join(&target_path, '/', clar_sandbox_path(), "readlink_target"); cl_git_rewritefile("readlink_target", "This is the target of a symlink\n"); @@ -558,6 +595,9 @@ void test_core_link__readlink_dangling(void) int len; char buf[2048]; + if (!should_run()) + clar__skip(); + git_buf_join(&target_path, '/', clar_sandbox_path(), "readlink_nonexistent"); do_symlink(git_buf_cstr(&target_path), "readlink_dangling", 0); @@ -579,6 +619,9 @@ void test_core_link__readlink_multiple(void) int len; char buf[2048]; + if (!should_run()) + clar__skip(); + git_buf_join(&target_path, '/', clar_sandbox_path(), "readlink_final"); git_buf_join(&path3, '/', clar_sandbox_path(), "readlink_3"); git_buf_join(&path2, '/', clar_sandbox_path(), "readlink_2"); |