summaryrefslogtreecommitdiff
path: root/tests-clar/online/fetch.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests-clar/online/fetch.c')
-rw-r--r--tests-clar/online/fetch.c163
1 files changed, 0 insertions, 163 deletions
diff --git a/tests-clar/online/fetch.c b/tests-clar/online/fetch.c
deleted file mode 100644
index bfa1eb972..000000000
--- a/tests-clar/online/fetch.c
+++ /dev/null
@@ -1,163 +0,0 @@
-#include "clar_libgit2.h"
-
-static git_repository *_repo;
-static int counter;
-
-void test_online_fetch__initialize(void)
-{
- cl_git_pass(git_repository_init(&_repo, "./fetch", 0));
-}
-
-void test_online_fetch__cleanup(void)
-{
- git_repository_free(_repo);
- _repo = NULL;
-
- cl_fixture_cleanup("./fetch");
-}
-
-static int update_tips(const char *refname, const git_oid *a, const git_oid *b, void *data)
-{
- GIT_UNUSED(refname); GIT_UNUSED(a); GIT_UNUSED(b); GIT_UNUSED(data);
-
- ++counter;
-
- return 0;
-}
-
-static int progress(const git_transfer_progress *stats, void *payload)
-{
- size_t *bytes_received = (size_t *)payload;
- *bytes_received = stats->received_bytes;
- return 0;
-}
-
-static void do_fetch(const char *url, git_remote_autotag_option_t flag, int n)
-{
- git_remote *remote;
- git_remote_callbacks callbacks = GIT_REMOTE_CALLBACKS_INIT;
- size_t bytes_received = 0;
-
- callbacks.update_tips = update_tips;
- counter = 0;
-
- cl_git_pass(git_remote_create(&remote, _repo, "test", url));
- git_remote_set_callbacks(remote, &callbacks);
- git_remote_set_autotag(remote, flag);
- cl_git_pass(git_remote_connect(remote, GIT_DIRECTION_FETCH));
- cl_git_pass(git_remote_download(remote, progress, &bytes_received));
- cl_git_pass(git_remote_update_tips(remote));
- git_remote_disconnect(remote);
- cl_assert_equal_i(counter, n);
- cl_assert(bytes_received > 0);
-
- git_remote_free(remote);
-}
-
-void test_online_fetch__default_git(void)
-{
- do_fetch("git://github.com/libgit2/TestGitRepository.git", GIT_REMOTE_DOWNLOAD_TAGS_AUTO, 6);
-}
-
-void test_online_fetch__default_http(void)
-{
- do_fetch("http://github.com/libgit2/TestGitRepository.git", GIT_REMOTE_DOWNLOAD_TAGS_AUTO, 6);
-}
-
-void test_online_fetch__no_tags_git(void)
-{
- do_fetch("git://github.com/libgit2/TestGitRepository.git", GIT_REMOTE_DOWNLOAD_TAGS_NONE, 3);
-}
-
-void test_online_fetch__no_tags_http(void)
-{
- do_fetch("http://github.com/libgit2/TestGitRepository.git", GIT_REMOTE_DOWNLOAD_TAGS_NONE, 3);
-}
-
-static int transferProgressCallback(const git_transfer_progress *stats, void *payload)
-{
- bool *invoked = (bool *)payload;
-
- GIT_UNUSED(stats);
- *invoked = true;
- return 0;
-}
-
-void test_online_fetch__doesnt_retrieve_a_pack_when_the_repository_is_up_to_date(void)
-{
- git_repository *_repository;
- bool invoked = false;
- git_remote *remote;
- git_clone_options opts = GIT_CLONE_OPTIONS_INIT;
- opts.bare = true;
-
- cl_git_pass(git_clone(&_repository, "https://github.com/libgit2/TestGitRepository.git",
- "./fetch/lg2", &opts));
- git_repository_free(_repository);
-
- cl_git_pass(git_repository_open(&_repository, "./fetch/lg2"));
-
- cl_git_pass(git_remote_load(&remote, _repository, "origin"));
- cl_git_pass(git_remote_connect(remote, GIT_DIRECTION_FETCH));
-
- cl_assert_equal_i(false, invoked);
-
- cl_git_pass(git_remote_download(remote, &transferProgressCallback, &invoked));
-
- cl_assert_equal_i(false, invoked);
-
- cl_git_pass(git_remote_update_tips(remote));
- git_remote_disconnect(remote);
-
- git_remote_free(remote);
- git_repository_free(_repository);
-}
-
-static int cancel_at_half(const git_transfer_progress *stats, void *payload)
-{
- GIT_UNUSED(payload);
-
- if (stats->received_objects > (stats->total_objects/2))
- return -1;
- return 0;
-}
-
-void test_online_fetch__can_cancel(void)
-{
- git_remote *remote;
- size_t bytes_received = 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_fail_with(git_remote_download(remote, cancel_at_half, &bytes_received), GIT_EUSER);
- 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);
-}