]> git.proxmox.com Git - libgit2.git/commitdiff
Rearrange clar submodule cleanup code
authorRussell Belfer <rb@github.com>
Fri, 13 Sep 2013 16:26:26 +0000 (09:26 -0700)
committerRussell Belfer <rb@github.com>
Tue, 17 Sep 2013 16:31:45 +0000 (09:31 -0700)
tests-clar/diff/submodules.c
tests-clar/status/submodules.c
tests-clar/submodule/status.c
tests-clar/submodule/submodule_helpers.c
tests-clar/submodule/submodule_helpers.h

index 9dcf8194e924b1101219fb510d62c6ceaf915973..167dedfc6a73c1c04c2e4b5d80db2e26dfb4d900 100644 (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(
index 7bfef503ff5d90a879982a064e2f10b7d6de376b..ef2888f7dfda41c7ce7d946e556690de658769a3 100644 (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)
index 7b29ac28870fa3937423ce900c8929d0beca1fce..f1227a5755f9e64224a0334355e663b4fd84b942 100644 (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)
index a7807522bac4724363747393bbd85f3834764d9b..3e79c77fdcd075cc0f7dda780ff9168ca13d8f41 100644 (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");
 
-       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;
 }
index 1de15ca177eb1b952200ead62f1a5b85b480d016..610c40720ce2ece5864aabc6fdac00ad6650590f 100644 (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);