Rearrange clar submodule cleanup code

This commit is contained in:
Russell Belfer 2013-09-13 09:26:26 -07:00
parent b47349b8dc
commit d5b1866cc3
5 changed files with 13 additions and 13 deletions

View File

@ -11,7 +11,6 @@ void test_diff_submodules__initialize(void)
void test_diff_submodules__cleanup(void)
{
cleanup_fixture_submodules();
}
static void check_diff_patches_at_line(

View File

@ -13,7 +13,6 @@ void test_status_submodules__initialize(void)
void test_status_submodules__cleanup(void)
{
cleanup_fixture_submodules();
}
void test_status_submodules__api(void)

View File

@ -14,7 +14,6 @@ void test_submodule_status__initialize(void)
void test_submodule_status__cleanup(void)
{
cleanup_fixture_submodules();
}
void test_submodule_status__unchanged(void)

View File

@ -83,6 +83,14 @@ void rewrite_gitmodules(const char *workdir)
git_buf_free(&path);
}
static void cleanup_fixture_submodules(void *payload)
{
cl_git_sandbox_cleanup(); /* either "submodules" or "submod2" */
if (payload)
cl_fixture_cleanup(payload);
}
git_repository *setup_fixture_submodules(void)
{
git_repository *repo = cl_git_sandbox_init("submodules");
@ -92,6 +100,8 @@ git_repository *setup_fixture_submodules(void)
rewrite_gitmodules(git_repository_workdir(repo));
p_rename("submodules/testrepo/.gitted", "submodules/testrepo/.git");
cl_set_cleanup(cleanup_fixture_submodules, "testrepo.git");
return repo;
}
@ -106,14 +116,7 @@ git_repository *setup_fixture_submod2(void)
p_rename("submod2/not-submodule/.gitted", "submod2/not-submodule/.git");
p_rename("submod2/not/.gitted", "submod2/not/.git");
cl_set_cleanup(cleanup_fixture_submodules, "submod2_target");
return repo;
}
void cleanup_fixture_submodules(void)
{
cl_git_sandbox_cleanup();
/* just try to clean up both possible extras */
cl_fixture_cleanup("testrepo.git");
cl_fixture_cleanup("submod2_target");
}

View File

@ -1,5 +1,5 @@
extern void rewrite_gitmodules(const char *workdir);
/* these will automatically set a cleanup callback */
extern git_repository *setup_fixture_submodules(void);
extern git_repository *setup_fixture_submod2(void);
extern void cleanup_fixture_submodules(void);