diff options
Diffstat (limited to 'tests/submodule/nosubs.c')
-rw-r--r-- | tests/submodule/nosubs.c | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/tests/submodule/nosubs.c b/tests/submodule/nosubs.c deleted file mode 100644 index e47ee3983..000000000 --- a/tests/submodule/nosubs.c +++ /dev/null @@ -1,130 +0,0 @@ -/* test the submodule APIs on repositories where there are no submodules */ - -#include "clar_libgit2.h" -#include "posix.h" -#include "futils.h" - -void test_submodule_nosubs__cleanup(void) -{ - cl_git_sandbox_cleanup(); -} - -void test_submodule_nosubs__lookup(void) -{ - git_repository *repo = cl_git_sandbox_init("status"); - git_submodule *sm = NULL; - - p_mkdir("status/subrepo", 0777); - cl_git_mkfile("status/subrepo/.git", "gitdir: ../.git"); - - cl_assert_equal_i(GIT_ENOTFOUND, git_submodule_lookup(&sm, repo, "subdir")); - - cl_assert_equal_i(GIT_EEXISTS, git_submodule_lookup(&sm, repo, "subrepo")); - - cl_assert_equal_i(GIT_ENOTFOUND, git_submodule_lookup(&sm, repo, "subdir")); - - cl_assert_equal_i(GIT_EEXISTS, git_submodule_lookup(&sm, repo, "subrepo")); -} - -static int fake_submod_cb(git_submodule *sm, const char *n, void *p) -{ - GIT_UNUSED(sm); GIT_UNUSED(n); GIT_UNUSED(p); - return 0; -} - -void test_submodule_nosubs__foreach(void) -{ - git_repository *repo = cl_git_sandbox_init("status"); - cl_git_pass(git_submodule_foreach(repo, fake_submod_cb, NULL)); -} - -void test_submodule_nosubs__add(void) -{ - git_repository *repo = cl_git_sandbox_init("status"); - git_submodule *sm, *sm2; - - cl_git_pass(git_submodule_add_setup(&sm, repo, "https://github.com/libgit2/libgit2.git", "submodules/libgit2", 1)); - - cl_git_pass(git_submodule_lookup(&sm2, repo, "submodules/libgit2")); - git_submodule_free(sm2); - - cl_git_pass(git_submodule_foreach(repo, fake_submod_cb, NULL)); - - git_submodule_free(sm); -} - -void test_submodule_nosubs__bad_gitmodules(void) -{ - git_repository *repo = cl_git_sandbox_init("status"); - - cl_git_mkfile("status/.gitmodules", "[submodule \"foobar\"]\tpath=blargle\n\turl=\n\tbranch=\n\tupdate=flooble\n\n"); - - cl_git_rewritefile("status/.gitmodules", "[submodule \"foobar\"]\tpath=blargle\n\turl=\n\tbranch=\n\tupdate=rebase\n\n"); - - cl_git_pass(git_submodule_lookup(NULL, repo, "foobar")); - cl_assert_equal_i(GIT_ENOTFOUND, git_submodule_lookup(NULL, repo, "subdir")); -} - -void test_submodule_nosubs__add_and_delete(void) -{ - git_repository *repo = cl_git_sandbox_init("status"); - git_submodule *sm; - git_buf buf = GIT_BUF_INIT; - - cl_git_fail(git_submodule_lookup(NULL, repo, "libgit2")); - cl_git_fail(git_submodule_lookup(NULL, repo, "submodules/libgit2")); - - /* create */ - - cl_git_pass(git_submodule_add_setup( - &sm, repo, "https://github.com/libgit2/libgit2.git", "submodules/libgit2", 1)); - cl_assert_equal_s("submodules/libgit2", git_submodule_name(sm)); - cl_assert_equal_s("submodules/libgit2", git_submodule_path(sm)); - git_submodule_free(sm); - - cl_git_pass(git_futils_readbuffer(&buf, "status/.gitmodules")); - cl_assert(strstr(buf.ptr, "[submodule \"submodules/libgit2\"]") != NULL); - cl_assert(strstr(buf.ptr, "path = submodules/libgit2") != NULL); - git_buf_dispose(&buf); - - /* lookup */ - - cl_git_fail(git_submodule_lookup(&sm, repo, "libgit2")); - cl_git_pass(git_submodule_lookup(&sm, repo, "submodules/libgit2")); - cl_assert_equal_s("submodules/libgit2", git_submodule_name(sm)); - cl_assert_equal_s("submodules/libgit2", git_submodule_path(sm)); - git_submodule_free(sm); - - /* update name */ - - cl_git_rewritefile( - "status/.gitmodules", - "[submodule \"libgit2\"]\n" - " path = submodules/libgit2\n" - " url = https://github.com/libgit2/libgit2.git\n"); - - cl_git_pass(git_submodule_lookup(&sm, repo, "libgit2")); - cl_assert_equal_s("libgit2", git_submodule_name(sm)); - cl_assert_equal_s("submodules/libgit2", git_submodule_path(sm)); - git_submodule_free(sm); - cl_git_pass(git_submodule_lookup(&sm, repo, "submodules/libgit2")); - git_submodule_free(sm); - - /* revert name update */ - - cl_git_rewritefile( - "status/.gitmodules", - "[submodule \"submodules/libgit2\"]\n" - " path = submodules/libgit2\n" - " url = https://github.com/libgit2/libgit2.git\n"); - - cl_git_fail(git_submodule_lookup(&sm, repo, "libgit2")); - cl_git_pass(git_submodule_lookup(&sm, repo, "submodules/libgit2")); - git_submodule_free(sm); - - /* remove completely */ - - cl_must_pass(p_unlink("status/.gitmodules")); - cl_git_fail(git_submodule_lookup(&sm, repo, "libgit2")); - cl_git_fail(git_submodule_lookup(&sm, repo, "submodules/libgit2")); -} |