summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicent Marti <vicent@github.com>2014-06-03 17:25:59 +0200
committerVicent Marti <vicent@github.com>2014-06-03 17:25:59 +0200
commitbccb36ebf9d950f7562153d9e9ef9a3678e72516 (patch)
tree64bc8a0eeb726efa0aed6f468d5020db0785e293
parenteb27d29676a607e7864350732d7cfc9991740ca1 (diff)
parentd723dbed0c46ddb2fb037c63cc13a6131c3824b8 (diff)
downloadlibgit2-bccb36ebf9d950f7562153d9e9ef9a3678e72516.tar.gz
Merge pull request #2389 from arthurschreiber/arthur/set-error-when-no-remote-found
Remote: Set an error when a remote cannot be found.
-rw-r--r--src/remote.c1
-rw-r--r--tests/network/remote/remotes.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/src/remote.c b/src/remote.c
index b56bf3b24..0c82433d1 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -403,6 +403,7 @@ int git_remote_load(git_remote **out, git_repository *repo, const char *name)
if (!optional_setting_found) {
error = GIT_ENOTFOUND;
+ giterr_set(GITERR_CONFIG, "Remote '%s' does not exist.", name);
goto cleanup;
}
diff --git a/tests/network/remote/remotes.c b/tests/network/remote/remotes.c
index 306ccaee5..333b52a5b 100644
--- a/tests/network/remote/remotes.c
+++ b/tests/network/remote/remotes.c
@@ -60,6 +60,15 @@ void test_network_remote_remotes__pushurl(void)
cl_assert(git_remote_pushurl(_remote) == NULL);
}
+void test_network_remote_remotes__error_when_not_found(void)
+{
+ git_remote *r;
+ cl_git_fail_with(git_remote_load(&r, _repo, "does-not-exist"), GIT_ENOTFOUND);
+
+ cl_assert(giterr_last() != NULL);
+ cl_assert(giterr_last()->klass == GITERR_CONFIG);
+}
+
void test_network_remote_remotes__error_when_no_push_available(void)
{
git_remote *r;