diff options
author | Patrick Steinhardt <ps@pks.im> | 2017-05-05 09:40:38 +0200 |
---|---|---|
committer | Patrick Steinhardt <ps@pks.im> | 2017-05-05 10:47:15 +0200 |
commit | 9364f274d7189ec9f39fee6e6b056434dca13b54 (patch) | |
tree | 664075c08f68b0f05433d450aa89b6209ae0ba3d /tests/online | |
parent | 34b793910f7c1e68dc2a07f20d9a403aa8ad7268 (diff) | |
download | libgit2-9364f274d7189ec9f39fee6e6b056434dca13b54.tar.gz |
remote: test creating and fetching detached remotes
Diffstat (limited to 'tests/online')
-rw-r--r-- | tests/online/remotes.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/online/remotes.c b/tests/online/remotes.c index 3a483f79c..d79eb1f59 100644 --- a/tests/online/remotes.c +++ b/tests/online/remotes.c @@ -87,3 +87,41 @@ void test_online_remotes__detached_remote_fails_pushing(void) git_remote_free(remote); } + +void test_online_remotes__detached_remote_succeeds_ls(void) +{ + const char *refs[] = { + "HEAD", + "refs/heads/first-merge", + "refs/heads/master", + "refs/heads/no-parent", + "refs/tags/annotated_tag", + "refs/tags/annotated_tag^{}", + "refs/tags/blob", + "refs/tags/commit_tree", + "refs/tags/nearly-dangling", + }; + const git_remote_head **heads; + git_remote *remote; + size_t i, j, n; + + cl_git_pass(git_remote_create_detached(&remote, URL)); + cl_git_pass(git_remote_connect(remote, GIT_DIRECTION_FETCH, NULL, NULL, NULL)); + cl_git_pass(git_remote_ls(&heads, &n, remote)); + + cl_assert_equal_sz(n, 9); + for (i = 0; i < n; i++) { + char found = false; + + for (j = 0; j < ARRAY_SIZE(refs); j++) { + if (!strcmp(heads[i]->name, refs[j])) { + found = true; + break; + } + } + + cl_assert_(found, heads[i]->name); + } + + git_remote_free(remote); +} |