summaryrefslogtreecommitdiff
path: root/tests-clar/online/fetch.c
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@elego.de>2013-04-15 22:53:57 +0200
committerCarlos Martín Nieto <cmn@elego.de>2013-04-15 23:22:32 +0200
commit67ba7d2031f1eef63d66db6ce3ecaceddb06a4f3 (patch)
tree4a1a7e8e054747481d28538d229dbd3553dedb90 /tests-clar/online/fetch.c
parent77849ebf1e39126bcb9f1245423749d45d226022 (diff)
downloadlibgit2-67ba7d2031f1eef63d66db6ce3ecaceddb06a4f3.tar.gz
Allow git_remote_ls after disconnecting from the remote
Keep the data around until free, as expected by our own fetch example
Diffstat (limited to 'tests-clar/online/fetch.c')
-rw-r--r--tests-clar/online/fetch.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests-clar/online/fetch.c b/tests-clar/online/fetch.c
index a0ee7aac8..bfa1eb972 100644
--- a/tests-clar/online/fetch.c
+++ b/tests-clar/online/fetch.c
@@ -134,3 +134,30 @@ void test_online_fetch__can_cancel(void)
git_remote_disconnect(remote);
git_remote_free(remote);
}
+
+int ls_cb(git_remote_head *rhead, void *payload)
+{
+ int *nr = payload;
+ GIT_UNUSED(rhead);
+
+ (*nr)++;
+
+ return 0;
+}
+
+void test_online_fetch__ls_disconnected(void)
+{
+ git_remote *remote;
+ int nr_before = 0, nr_after = 0;
+
+ cl_git_pass(git_remote_create(&remote, _repo, "test",
+ "http://github.com/libgit2/TestGitRepository.git"));
+ cl_git_pass(git_remote_connect(remote, GIT_DIRECTION_FETCH));
+ cl_git_pass(git_remote_ls(remote, ls_cb, &nr_before));
+ git_remote_disconnect(remote);
+ cl_git_pass(git_remote_ls(remote, ls_cb, &nr_after));
+
+ cl_assert_equal_i(nr_before, nr_after);
+
+ git_remote_free(remote);
+}