summaryrefslogtreecommitdiff
path: root/tests-clar/clone/empty.c
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2013-02-15 11:35:33 +0100
committernulltoken <emeric.fermas@gmail.com>2013-02-22 17:04:23 +0100
commitc1b5e8c42bca585c2bc728a0583b20095bd8c128 (patch)
treeb70cce66af1d9834bb37515a3e01167f1ab5a588 /tests-clar/clone/empty.c
parent0309e85045bfb143c172b3342293d98d687e8092 (diff)
downloadlibgit2-c1b5e8c42bca585c2bc728a0583b20095bd8c128.tar.gz
branch: Make git_branch_remote_name() cope with orphaned heads
Diffstat (limited to 'tests-clar/clone/empty.c')
-rw-r--r--tests-clar/clone/empty.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/tests-clar/clone/empty.c b/tests-clar/clone/empty.c
index e611bc24e..0f867257a 100644
--- a/tests-clar/clone/empty.c
+++ b/tests-clar/clone/empty.c
@@ -34,7 +34,9 @@ static void cleanup_repository(void *path)
void test_clone_empty__can_clone_an_empty_local_repo_barely(void)
{
char *local_name = "refs/heads/master";
- char tracking_name[1024];
+ const char *expected_tracked_branch_name = "refs/remotes/origin/master";
+ const char *expected_remote_name = "origin";
+ char buffer[1024];
git_reference *ref;
cl_set_cleanup(&cleanup_repository, "./empty");
@@ -46,8 +48,20 @@ void test_clone_empty__can_clone_an_empty_local_repo_barely(void)
cl_assert_equal_i(GIT_ENOTFOUND, git_reference_lookup(&ref, g_repo_cloned, local_name));
/* ...one can still retrieve the name of the remote tracking reference */
- cl_assert_equal_i((int)strlen("refs/remotes/origin/master") + 1U,
- git_branch_tracking_name(tracking_name, 1024, g_repo_cloned, local_name));
+ cl_assert_equal_i((int)strlen(expected_tracked_branch_name) + 1,
+ git_branch_tracking_name(buffer, 1024, g_repo_cloned, local_name));
+
+ cl_assert_equal_s(expected_tracked_branch_name, buffer);
+
+ /* ...and the name of the remote... */
+ cl_assert_equal_i((int)strlen(expected_remote_name) + 1,
+ git_branch_remote_name(buffer, 1024, g_repo_cloned, expected_tracked_branch_name));
+
+ cl_assert_equal_s(expected_remote_name, buffer);
+
+ /* ...even when the remote HEAD is orphaned as well */
+ cl_assert_equal_i(GIT_ENOTFOUND, git_reference_lookup(&ref, g_repo_cloned,
+ expected_tracked_branch_name));
}
void test_clone_empty__can_clone_an_empty_local_repo(void)