tests: worktree: move submodule tests into own suite
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
diff --git a/tests/worktree/open.c b/tests/worktree/open.c
index bdc8bcf..a97b43b 100644
--- a/tests/worktree/open.c
+++ b/tests/worktree/open.c
@@ -2,9 +2,6 @@
#include "repository.h"
#include "worktree_helpers.h"
-#define WORKTREE_PARENT "submodules-worktree-parent"
-#define WORKTREE_CHILD "submodules-worktree-child"
-
#define COMMON_REPO "testrepo"
#define WORKTREE_REPO "testrepo-worktree"
@@ -130,65 +127,3 @@ void test_worktree_open__repository_with_nonexistent_parent(void)
cl_fixture_cleanup(WORKTREE_REPO);
}
-void test_worktree_open__submodule_worktree_parent(void)
-{
- worktree_fixture fixture =
- WORKTREE_FIXTURE_INIT("submodules", WORKTREE_PARENT);
- setup_fixture_worktree(&fixture);
-
- cl_assert(git_repository_path(fixture.worktree) != NULL);
- cl_assert(git_repository_workdir(fixture.worktree) != NULL);
-
- cl_assert(!fixture.repo->is_worktree);
- cl_assert(fixture.worktree->is_worktree);
-
- cleanup_fixture_worktree(&fixture);
-}
-
-void test_worktree_open__submodule_worktree_child(void)
-{
- worktree_fixture parent_fixture =
- WORKTREE_FIXTURE_INIT("submodules", WORKTREE_PARENT);
- worktree_fixture child_fixture =
- WORKTREE_FIXTURE_INIT(NULL, WORKTREE_CHILD);
-
- setup_fixture_worktree(&parent_fixture);
- cl_git_pass(p_rename(
- "submodules/testrepo/.gitted",
- "submodules/testrepo/.git"));
- setup_fixture_worktree(&child_fixture);
-
- cl_assert(!parent_fixture.repo->is_worktree);
- cl_assert(parent_fixture.worktree->is_worktree);
- cl_assert(child_fixture.worktree->is_worktree);
-
- cleanup_fixture_worktree(&child_fixture);
- cleanup_fixture_worktree(&parent_fixture);
-}
-
-void test_worktree_open__open_discovered_submodule_worktree(void)
-{
- worktree_fixture parent_fixture =
- WORKTREE_FIXTURE_INIT("submodules", WORKTREE_PARENT);
- worktree_fixture child_fixture =
- WORKTREE_FIXTURE_INIT(NULL, WORKTREE_CHILD);
- git_buf path = GIT_BUF_INIT;
- git_repository *repo;
-
- setup_fixture_worktree(&parent_fixture);
- cl_git_pass(p_rename(
- "submodules/testrepo/.gitted",
- "submodules/testrepo/.git"));
- setup_fixture_worktree(&child_fixture);
-
- cl_git_pass(git_repository_discover(&path,
- git_repository_workdir(child_fixture.worktree), false, NULL));
- cl_git_pass(git_repository_open(&repo, path.ptr));
- cl_assert_equal_s(git_repository_workdir(child_fixture.worktree),
- git_repository_workdir(repo));
-
- git_buf_free(&path);
- git_repository_free(repo);
- cleanup_fixture_worktree(&child_fixture);
- cleanup_fixture_worktree(&parent_fixture);
-}
diff --git a/tests/worktree/submodule.c b/tests/worktree/submodule.c
new file mode 100644
index 0000000..1d8e46c
--- /dev/null
+++ b/tests/worktree/submodule.c
@@ -0,0 +1,69 @@
+#include "clar_libgit2.h"
+#include "repository.h"
+#include "worktree_helpers.h"
+
+#define WORKTREE_PARENT "submodules-worktree-parent"
+#define WORKTREE_CHILD "submodules-worktree-child"
+
+void test_worktree_submodule__submodule_worktree_parent(void)
+{
+ worktree_fixture fixture =
+ WORKTREE_FIXTURE_INIT("submodules", WORKTREE_PARENT);
+ setup_fixture_worktree(&fixture);
+
+ cl_assert(git_repository_path(fixture.worktree) != NULL);
+ cl_assert(git_repository_workdir(fixture.worktree) != NULL);
+
+ cl_assert(!fixture.repo->is_worktree);
+ cl_assert(fixture.worktree->is_worktree);
+
+ cleanup_fixture_worktree(&fixture);
+}
+
+void test_worktree_submodule__submodule_worktree_child(void)
+{
+ worktree_fixture parent_fixture =
+ WORKTREE_FIXTURE_INIT("submodules", WORKTREE_PARENT);
+ worktree_fixture child_fixture =
+ WORKTREE_FIXTURE_INIT(NULL, WORKTREE_CHILD);
+
+ setup_fixture_worktree(&parent_fixture);
+ cl_git_pass(p_rename(
+ "submodules/testrepo/.gitted",
+ "submodules/testrepo/.git"));
+ setup_fixture_worktree(&child_fixture);
+
+ cl_assert(!parent_fixture.repo->is_worktree);
+ cl_assert(parent_fixture.worktree->is_worktree);
+ cl_assert(child_fixture.worktree->is_worktree);
+
+ cleanup_fixture_worktree(&child_fixture);
+ cleanup_fixture_worktree(&parent_fixture);
+}
+
+void test_worktree_submodule__open_discovered_submodule_worktree(void)
+{
+ worktree_fixture parent_fixture =
+ WORKTREE_FIXTURE_INIT("submodules", WORKTREE_PARENT);
+ worktree_fixture child_fixture =
+ WORKTREE_FIXTURE_INIT(NULL, WORKTREE_CHILD);
+ git_buf path = GIT_BUF_INIT;
+ git_repository *repo;
+
+ setup_fixture_worktree(&parent_fixture);
+ cl_git_pass(p_rename(
+ "submodules/testrepo/.gitted",
+ "submodules/testrepo/.git"));
+ setup_fixture_worktree(&child_fixture);
+
+ cl_git_pass(git_repository_discover(&path,
+ git_repository_workdir(child_fixture.worktree), false, NULL));
+ cl_git_pass(git_repository_open(&repo, path.ptr));
+ cl_assert_equal_s(git_repository_workdir(child_fixture.worktree),
+ git_repository_workdir(repo));
+
+ git_buf_free(&path);
+ git_repository_free(repo);
+ cleanup_fixture_worktree(&child_fixture);
+ cleanup_fixture_worktree(&parent_fixture);
+}