Commit 991bf69136b61f319f6fe06241774668da6d37d9

Patrick Steinhardt 2018-06-06T13:55:16

Merge pull request #4673 from pks-t/pks/submodule-dupes-simplify-test tests: submodule: do not rely on config iteration order

diff --git a/tests/submodule/lookup.c b/tests/submodule/lookup.c
index 5db5c2d..f73ca26 100644
--- a/tests/submodule/lookup.c
+++ b/tests/submodule/lookup.c
@@ -132,7 +132,7 @@ void test_submodule_lookup__foreach(void)
 	cl_assert_equal_i(8, data.count);
 }
 
-static int sm_dummy_cb(git_submodule *sm, const char *name, void *payload)
+static int foreach_cb(git_submodule *sm, const char *name, void *payload)
 {
 	GIT_UNUSED(sm);
 	GIT_UNUSED(name);
@@ -142,20 +142,15 @@ static int sm_dummy_cb(git_submodule *sm, const char *name, void *payload)
 
 void test_submodule_lookup__duplicated_path(void)
 {
-	/*
-	 * Manually invoke cleanup methods to remove leftovers
-	 * from `setup_fixture_submod2`
-	 */
-	cl_git_sandbox_cleanup();
-	cl_fixture_cleanup("submod2_target");
-
-	g_repo = setup_fixture_submodules();
+	cl_git_rewritefile("submod2/.gitmodules",
+			   "[submodule \"sm1\"]\n"
+			   "    path = duplicated-path\n"
+			   "    url = sm1\n"
+			   "[submodule \"sm2\"]\n"
+			   "    path = duplicated-path\n"
+			   "    url = sm2\n");
 
-	/*
-	 * This should fail, as the submodules repo has an
-	 * invalid gitmodules file with duplicated paths.
-	 */
-	cl_git_fail(git_submodule_foreach(g_repo, sm_dummy_cb, NULL));
+	cl_git_fail(git_submodule_foreach(g_repo, foreach_cb, NULL));
 }
 
 void test_submodule_lookup__lookup_even_with_unborn_head(void)
@@ -456,14 +451,6 @@ void test_submodule_lookup__lookup_in_bare_repository_fails(void)
 	cl_git_fail(git_submodule_lookup(&sm, g_repo, "nonexisting"));
 }
 
-static int foreach_cb(git_submodule *sm, const char *name, void *payload)
-{
-	GIT_UNUSED(sm);
-	GIT_UNUSED(name);
-	GIT_UNUSED(payload);
-	return 0;
-}
-
 void test_submodule_lookup__foreach_in_bare_repository_fails(void)
 {
 	cl_git_sandbox_cleanup();