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");
rewrite_gitmodules(git_repository_workdir(repo));
p_rename("submodules/testrepo/.gitted", "submodules/testrepo/.git");
+ cl_set_cleanup(cleanup_fixture_submodules, "testrepo.git");
+
return repo;
}
p_rename("submod2/not-submodule/.gitted", "submod2/not-submodule/.git");
p_rename("submod2/not/.gitted", "submod2/not/.git");
- return repo;
-}
+ cl_set_cleanup(cleanup_fixture_submodules, "submod2_target");
-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");
+ return repo;
}
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);