diff options
| author | Patrick Steinhardt <ps@pks.im> | 2016-09-06 11:21:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-09-06 11:21:29 +0200 |
| commit | 46035d984fc025d9acc0be2ffdeea21966b06aed (patch) | |
| tree | 7d3b782c2ca07799d9f4cf9b41021e82b3950e69 /tests | |
| parent | ce54e77c70b5d0429a7d8a18dd31696f668ef3d0 (diff) | |
| parent | 1eee631d1189312219773e699d76848680c02e19 (diff) | |
| download | libgit2-46035d984fc025d9acc0be2ffdeea21966b06aed.tar.gz | |
Merge pull request #3882 from pks-t/pks/fix-fetch-refspec-dst-parsing
refspec: do not set empty rhs for fetch refspecs
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/online/fetchhead.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/online/fetchhead.c b/tests/online/fetchhead.c index 200edacfd..9aaad253c 100644 --- a/tests/online/fetchhead.c +++ b/tests/online/fetchhead.c @@ -35,6 +35,19 @@ static void fetchhead_test_clone(void) cl_git_pass(git_clone(&g_repo, LIVE_REPO_URL, "./foo", &g_options)); } +static int count_references(void) +{ + git_strarray array; + int refs; + + cl_git_pass(git_reference_list(&array, g_repo)); + refs = array.count; + + git_strarray_free(&array); + + return refs; +} + static void fetchhead_test_fetch(const char *fetchspec, const char *expected_fetchhead) { git_remote *remote; @@ -101,3 +114,41 @@ void test_online_fetchhead__no_merges(void) cl_git_pass(git_tag_delete(g_repo, "commit_tree")); fetchhead_test_fetch(NULL, FETCH_HEAD_NO_MERGE_DATA3); } + +void test_online_fetchhead__explicit_dst_refspec_creates_branch(void) +{ + git_reference *ref; + int refs; + + fetchhead_test_clone(); + refs = count_references(); + fetchhead_test_fetch("refs/heads/first-merge:refs/heads/explicit-refspec", FETCH_HEAD_EXPLICIT_DATA); + + cl_git_pass(git_branch_lookup(&ref, g_repo, "explicit-refspec", GIT_BRANCH_ALL)); + cl_assert_equal_i(refs + 1, count_references()); +} + +void test_online_fetchhead__empty_dst_refspec_creates_no_branch(void) +{ + git_reference *ref; + int refs; + + fetchhead_test_clone(); + refs = count_references(); + + fetchhead_test_fetch("refs/heads/first-merge", FETCH_HEAD_EXPLICIT_DATA); + cl_git_fail(git_branch_lookup(&ref, g_repo, "first-merge", GIT_BRANCH_ALL)); + + cl_assert_equal_i(refs, count_references()); +} + +void test_online_fetchhead__colon_only_dst_refspec_creates_no_branch(void) +{ + int refs; + + fetchhead_test_clone(); + refs = count_references(); + fetchhead_test_fetch("refs/heads/first-merge:", FETCH_HEAD_EXPLICIT_DATA); + + cl_assert_equal_i(refs, count_references()); +} |
