diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2015-07-01 21:10:40 +0200 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2015-07-01 21:14:55 +0200 |
commit | e8e848a8dad92b6542b16449d29f4a5535fa7c5a (patch) | |
tree | 20047928147df8169f29b8eb2e73e2b15611d349 | |
parent | bf7d2761d4d9da79c3ae26e94da6a95b27e8769f (diff) | |
download | libgit2-e8e848a8dad92b6542b16449d29f4a5535fa7c5a.tar.gz |
submodule: add failing test for loading the wrong submodule
When two submodules are fairly similar, we may end up loading the wrong
one.
-rw-r--r-- | tests/submodule/lookup.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/submodule/lookup.c b/tests/submodule/lookup.c index cddbdcfc2..4d40e2279 100644 --- a/tests/submodule/lookup.c +++ b/tests/submodule/lookup.c @@ -269,3 +269,26 @@ void test_submodule_lookup__just_added(void) refute_submodule_exists(g_repo, "sm_just_added_head", GIT_EEXISTS); } +/* Test_App and Test_App2 are fairly similar names, make sure we load the right one */ +void test_submodule_lookup__prefix_name(void) +{ + git_submodule *sm; + + cl_git_rewritefile("submod2/.gitmodules", + "[submodule \"Test_App\"]\n" + " path = Test_App\n" + " url = ../Test_App\n" + "[submodule \"Test_App2\"]\n" + " path = Test_App2\n" + " url = ../Test_App\n"); + + cl_git_pass(git_submodule_lookup(&sm, g_repo, "Test_App")); + cl_assert_equal_s("Test_App", git_submodule_name(sm)); + + git_submodule_free(sm); + + cl_git_pass(git_submodule_lookup(&sm, g_repo, "Test_App2")); + cl_assert_equal_s("Test_App2", git_submodule_name(sm)); + + git_submodule_free(sm); +} |