diff options
author | cthomas <email.cthomas@gmail.com> | 2015-04-21 20:02:24 -0400 |
---|---|---|
committer | cthomas <email.cthomas@gmail.com> | 2015-04-21 20:02:24 -0400 |
commit | fc6f044ea3963eeee1a422de18c04fb29a2541fb (patch) | |
tree | 61666f5319491835e0bbd1119294dbedaec467f8 /tests/online | |
parent | aaf42c8df75a78344e3e231260a935d2e034d8eb (diff) | |
download | libgit2-fc6f044ea3963eeee1a422de18c04fb29a2541fb.tar.gz |
Fix for Issue #3023 tests fail with no network
Moved offending tests from network to online so they will get skipped
when there is a lack of network connectivity:
-test_online_remotes__single_branch
-test_online_remotes__restricted_refspecs
Diffstat (limited to 'tests/online')
-rw-r--r-- | tests/online/remotes.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/online/remotes.c b/tests/online/remotes.c new file mode 100644 index 000000000..70374be2f --- /dev/null +++ b/tests/online/remotes.c @@ -0,0 +1,52 @@ +#include "clar_libgit2.h" + +static int remote_single_branch(git_remote **out, git_repository *repo, const char *name, const char *url, void *payload) +{ + char *fetch_refspecs[] = { + "refs/heads/first-merge:refs/remotes/origin/first-merge", + }; + git_strarray fetch_refspecs_strarray = { + fetch_refspecs, + 1, + }; + + GIT_UNUSED(payload); + + cl_git_pass(git_remote_create(out, repo, name, url)); + cl_git_pass(git_remote_set_fetch_refspecs(*out, &fetch_refspecs_strarray)); + + return 0; +} + +void test_online_remotes__single_branch(void) +{ + git_clone_options opts = GIT_CLONE_OPTIONS_INIT; + git_repository *repo; + git_strarray refs; + size_t i, count = 0; + + opts.remote_cb = remote_single_branch; + opts.checkout_branch = "first-merge"; + + cl_git_pass(git_clone(&repo, "git://github.com/libgit2/TestGitRepository", "./single-branch", &opts)); + cl_git_pass(git_reference_list(&refs, repo)); + + for (i = 0; i < refs.count; i++) { + if (!git__prefixcmp(refs.strings[i], "refs/heads/")) + count++; + } + cl_assert_equal_i(1, count); + + git_strarray_free(&refs); + git_repository_free(repo); +} + +void test_online_remotes__restricted_refspecs(void) +{ + git_clone_options opts = GIT_CLONE_OPTIONS_INIT; + git_repository *repo; + + opts.remote_cb = remote_single_branch; + + cl_git_fail_with(GIT_EINVALIDSPEC, git_clone(&repo, "git://github.com/libgit2/TestGitRepository", "./restrict-refspec", &opts)); +} |