diff options
author | Sven Strickroth <email@cs-ware.de> | 2014-08-26 17:28:41 +0200 |
---|---|---|
committer | Sven Strickroth <email@cs-ware.de> | 2014-08-27 17:27:07 +0200 |
commit | 0e5bb61992cce41cc45ba9ad352297cbb8432a6d (patch) | |
tree | 55424c7c541c04e20a3a0222ef55de8252ff5d90 | |
parent | 34e510cedfdf0c45de9c77948898553778769ece (diff) | |
download | libgit2-0e5bb61992cce41cc45ba9ad352297cbb8432a6d.tar.gz |
Added some tests
Signed-off-by: Sven Strickroth <email@cs-ware.de>
-rw-r--r-- | tests/transport/register.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/transport/register.c b/tests/transport/register.c new file mode 100644 index 000000000..937194c1c --- /dev/null +++ b/tests/transport/register.c @@ -0,0 +1,66 @@ +#include "clar_libgit2.h" +#include "git2/sys/transport.h" + +static git_transport _transport = GIT_TRANSPORT_INIT; + +static int dummy_transport(git_transport **transport, git_remote *owner, void *param) +{ + *transport = &_transport; + GIT_UNUSED(owner); + GIT_UNUSED(param); + return 0; +} + +void test_transport_register__custom_transport(void) +{ + git_transport *transport; + + cl_git_pass(git_transport_register("something", dummy_transport, NULL)); + + cl_git_pass(git_transport_new(&transport, NULL, "something://somepath")); + + cl_assert(transport == &_transport); + + cl_git_pass(git_transport_unregister("something")); +} + +void test_transport_register__custom_transport_error_doubleregister(void) +{ + cl_git_pass(git_transport_register("something", dummy_transport, NULL)); + + cl_git_fail_with(git_transport_register("something", dummy_transport, NULL), GIT_EEXISTS); + + cl_git_pass(git_transport_unregister("something")); +} + +void test_transport_register__custom_transport_error_remove_non_existing(void) +{ + cl_git_fail_with(git_transport_unregister("something"), GIT_ENOTFOUND); +} + +void test_transport_register__custom_transport_ssh(void) +{ + git_transport *transport; + +#ifndef GIT_SSH + cl_git_fail_with(git_transport_new(&transport, NULL, "ssh://somehost:somepath"), -1); + cl_git_fail_with(git_transport_new(&transport, NULL, "git@somehost:somepath"), -1); +#else + cl_git_pass(git_transport_new(&transport, NULL, "git@somehost:somepath")); +#endif + + cl_git_pass(git_transport_register("ssh", dummy_transport, NULL)); + + cl_git_pass(git_transport_new(&transport, NULL, "git@somehost:somepath")); + + cl_assert(transport == &_transport); + + cl_git_pass(git_transport_unregister("ssh")); + +#ifndef GIT_SSH + cl_git_fail_with(git_transport_new(&transport, NULL, "ssh://somehost:somepath"), -1); + cl_git_fail_with(git_transport_new(&transport, NULL, "git@somehost:somepath"), -1); +#else + cl_git_pass(git_transport_new(&transport, NULL, "git@somehost:somepath")); +#endif +} |