summaryrefslogtreecommitdiff
path: root/tests-clar
diff options
context:
space:
mode:
Diffstat (limited to 'tests-clar')
-rw-r--r--tests-clar/clone/nonetwork.c5
-rw-r--r--tests-clar/network/remote/remotes.c56
-rw-r--r--tests-clar/online/fetchhead.c6
-rw-r--r--tests-clar/online/push.c5
-rw-r--r--tests-clar/refs/branches/remote.c3
5 files changed, 56 insertions, 19 deletions
diff --git a/tests-clar/clone/nonetwork.c b/tests-clar/clone/nonetwork.c
index c4b482234..02066e07d 100644
--- a/tests-clar/clone/nonetwork.c
+++ b/tests-clar/clone/nonetwork.c
@@ -2,6 +2,7 @@
#include "git2/clone.h"
#include "repository.h"
+#include "remote.h"
#define LIVE_REPO_URL "git://github.com/libgit2/TestGitRepository"
@@ -148,7 +149,7 @@ void test_clone_nonetwork__custom_fetch_spec(void)
cl_git_pass(git_clone(&g_repo, cl_git_fixture_url("testrepo.git"), "./foo", &g_options));
cl_git_pass(git_remote_load(&g_remote, g_repo, "origin"));
- actual_fs = git_remote_fetchspec(g_remote);
+ actual_fs = git_vector_get(&g_remote->refspecs, 0);
cl_assert_equal_s("refs/heads/master", git_refspec_src(actual_fs));
cl_assert_equal_s("refs/heads/foo", git_refspec_dst(actual_fs));
@@ -164,7 +165,7 @@ void test_clone_nonetwork__custom_push_spec(void)
cl_git_pass(git_clone(&g_repo, cl_git_fixture_url("testrepo.git"), "./foo", &g_options));
cl_git_pass(git_remote_load(&g_remote, g_repo, "origin"));
- actual_fs = git_remote_pushspec(g_remote);
+ actual_fs = git_vector_get(&g_remote->refspecs, g_remote->refspecs.length - 1);
cl_assert_equal_s("refs/heads/master", git_refspec_src(actual_fs));
cl_assert_equal_s("refs/heads/foo", git_refspec_dst(actual_fs));
}
diff --git a/tests-clar/network/remote/remotes.c b/tests-clar/network/remote/remotes.c
index a5ff7415f..92c9d8ac1 100644
--- a/tests-clar/network/remote/remotes.c
+++ b/tests-clar/network/remote/remotes.c
@@ -13,7 +13,7 @@ void test_network_remote_remotes__initialize(void)
cl_git_pass(git_remote_load(&_remote, _repo, "test"));
- _refspec = git_remote_fetchspec(_remote);
+ _refspec = git_vector_get(&_remote->refspecs, 0);
cl_assert(_refspec != NULL);
}
@@ -109,20 +109,41 @@ void test_network_remote_remotes__refspec_parsing(void)
cl_assert_equal_s(git_refspec_dst(_refspec), "refs/remotes/test/*");
}
-void test_network_remote_remotes__set_fetchspec(void)
+void test_network_remote_remotes__add_fetchspec(void)
{
- cl_git_pass(git_remote_set_fetchspec(_remote, "refs/*:refs/*"));
- _refspec = git_remote_fetchspec(_remote);
+ size_t size;
+
+ size = _remote->refspecs.length;
+ cl_assert_equal_i(size, _remote->refspec_strings.length);
+
+ cl_git_pass(git_remote_add_fetchspec(_remote, "refs/*:refs/*"));
+
+ size++;
+ cl_assert_equal_i(size, _remote->refspec_strings.length);
+ cl_assert_equal_i(size, _remote->refspecs.length);
+
+ _refspec = git_vector_get(&_remote->refspecs, size-1);
cl_assert_equal_s(git_refspec_src(_refspec), "refs/*");
cl_assert_equal_s(git_refspec_dst(_refspec), "refs/*");
+ cl_assert_equal_i(_refspec->push, false);
}
-void test_network_remote_remotes__set_pushspec(void)
+void test_network_remote_remotes__add_pushspec(void)
{
- cl_git_pass(git_remote_set_pushspec(_remote, "refs/*:refs/*"));
- _refspec = git_remote_pushspec(_remote);
+ size_t size;
+
+ size = _remote->refspecs.length;
+
+ cl_git_pass(git_remote_add_pushspec(_remote, "refs/*:refs/*"));
+ size++;
+ cl_assert_equal_i(size, _remote->refspec_strings.length);
+ cl_assert_equal_i(size, _remote->refspecs.length);
+
+ _refspec = git_vector_get(&_remote->refspecs, size-1);
cl_assert_equal_s(git_refspec_src(_refspec), "refs/*");
cl_assert_equal_s(git_refspec_dst(_refspec), "refs/*");
+
+ cl_assert_equal_i(_refspec->push, true);
}
void test_network_remote_remotes__save(void)
@@ -132,8 +153,18 @@ void test_network_remote_remotes__save(void)
/* Set up the remote and save it to config */
cl_git_pass(git_remote_create(&_remote, _repo, "upstream", "git://github.com/libgit2/libgit2"));
- cl_git_pass(git_remote_set_fetchspec(_remote, "refs/heads/*:refs/remotes/upstream/*"));
- cl_git_pass(git_remote_set_pushspec(_remote, "refs/heads/*:refs/heads/*"));
+ git_remote_clear_refspecs(_remote);
+ cl_assert_equal_i(0, _remote->refspecs.length);
+ cl_assert_equal_i(0, _remote->refspec_strings.length);
+
+ cl_git_pass(git_remote_add_fetchspec(_remote, "refs/heads/*:refs/remotes/upstream/*"));
+ cl_assert_equal_i(1, _remote->refspecs.length);
+ cl_assert_equal_i(1, _remote->refspec_strings.length);
+
+ cl_git_pass(git_remote_add_pushspec(_remote, "refs/heads/*:refs/heads/*"));
+ cl_assert_equal_i(2, _remote->refspecs.length);
+ cl_assert_equal_i(2, _remote->refspec_strings.length);
+
cl_git_pass(git_remote_set_pushurl(_remote, "git://github.com/libgit2/libgit2_push"));
cl_git_pass(git_remote_save(_remote));
git_remote_free(_remote);
@@ -142,13 +173,14 @@ void test_network_remote_remotes__save(void)
/* Load it from config and make sure everything matches */
cl_git_pass(git_remote_load(&_remote, _repo, "upstream"));
- _refspec = git_remote_fetchspec(_remote);
+ _refspec = git_vector_get(&_remote->refspecs, 0);
cl_assert(_refspec != NULL);
cl_assert_equal_s(git_refspec_src(_refspec), "refs/heads/*");
cl_assert_equal_s(git_refspec_dst(_refspec), "refs/remotes/upstream/*");
cl_assert_equal_i(0, git_refspec_force(_refspec));
- _refspec = git_remote_pushspec(_remote);
+ cl_assert(_refspec != git_vector_get(&_remote->refspecs, 1));
+ _refspec = git_vector_get(&_remote->refspecs, 1);
cl_assert(_refspec != NULL);
cl_assert_equal_s(git_refspec_src(_refspec), "refs/heads/*");
cl_assert_equal_s(git_refspec_dst(_refspec), "refs/heads/*");
@@ -265,7 +297,7 @@ void test_network_remote_remotes__add(void)
_remote = NULL;
cl_git_pass(git_remote_load(&_remote, _repo, "addtest"));
- _refspec = git_remote_fetchspec(_remote);
+ _refspec = git_vector_get(&_remote->refspecs, 0);
cl_assert_equal_s("refs/heads/*", git_refspec_src(_refspec));
cl_assert(git_refspec_force(_refspec) == 1);
cl_assert_equal_s("refs/remotes/addtest/*", git_refspec_dst(_refspec));
diff --git a/tests-clar/online/fetchhead.c b/tests-clar/online/fetchhead.c
index a8a5bb918..3cbdc7e93 100644
--- a/tests-clar/online/fetchhead.c
+++ b/tests-clar/online/fetchhead.c
@@ -42,8 +42,10 @@ static void fetchhead_test_fetch(const char *fetchspec, const char *expected_fet
cl_git_pass(git_remote_load(&remote, g_repo, "origin"));
git_remote_set_autotag(remote, GIT_REMOTE_DOWNLOAD_TAGS_AUTO);
- if(fetchspec != NULL)
- git_remote_set_fetchspec(remote, fetchspec);
+ if(fetchspec != NULL) {
+ git_remote_clear_refspecs(remote);
+ git_remote_add_fetchspec(remote, fetchspec);
+ }
cl_git_pass(git_remote_connect(remote, GIT_DIRECTION_FETCH));
cl_git_pass(git_remote_download(remote, NULL, NULL));
diff --git a/tests-clar/online/push.c b/tests-clar/online/push.c
index 907d6d29f..5dc7974c7 100644
--- a/tests-clar/online/push.c
+++ b/tests-clar/online/push.c
@@ -160,7 +160,7 @@ static int tracking_branch_list_cb(const char *branch_name, git_branch_t branch_
*/
static void verify_tracking_branches(git_remote *remote, expected_ref expected_refs[], size_t expected_refs_len)
{
- git_refspec *fetch_spec = &remote->fetch;
+ git_refspec *fetch_spec;
size_t i, j;
git_buf msg = GIT_BUF_INIT;
git_buf ref_name = GIT_BUF_INIT;
@@ -179,7 +179,8 @@ static void verify_tracking_branches(git_remote *remote, expected_ref expected_r
/* Convert remote reference name into tracking branch name.
* If the spec is not under refs/heads/, then skip.
*/
- if (!git_refspec_src_matches(fetch_spec, expected_refs[i].name))
+ fetch_spec = git_remote__matching_refspec(remote, expected_refs[i].name);
+ if (!fetch_spec)
continue;
cl_git_pass(git_refspec_transform_r(&ref_name, fetch_spec, expected_refs[i].name));
diff --git a/tests-clar/refs/branches/remote.c b/tests-clar/refs/branches/remote.c
index 2beef3724..475fa54a8 100644
--- a/tests-clar/refs/branches/remote.c
+++ b/tests-clar/refs/branches/remote.c
@@ -69,7 +69,8 @@ void test_refs_branches_remote__ambiguous_remote_returns_error(void)
cl_git_pass(git_remote_create(&remote, g_repo, "addtest", "http://github.com/libgit2/libgit2"));
/* Update the remote fetch spec */
- cl_git_pass(git_remote_set_fetchspec(remote, "refs/heads/*:refs/remotes/test/*"));
+ git_remote_clear_refspecs(remote);
+ cl_git_pass(git_remote_add_fetchspec(remote, "refs/heads/*:refs/remotes/test/*"));
cl_git_pass(git_remote_save(remote));
git_remote_free(remote);