summaryrefslogtreecommitdiff
path: root/tests/submodule/nosubs.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/submodule/nosubs.c')
-rw-r--r--tests/submodule/nosubs.c130
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"));
-}