summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@vercel.com>2023-02-24 16:47:39 +0000
committerEdward Thomson <ethomson@edwardthomson.com>2023-02-24 21:11:58 +0000
commit43e84e246cc716ac51a276945b5b112b21d802d1 (patch)
tree0a250fa6dd0dc59095a03602f6584d1964f9ca14 /tests
parentf68b40c0af9c7c5c2c8740fe4a8fbcba367e0087 (diff)
downloadlibgit2-43e84e246cc716ac51a276945b5b112b21d802d1.tar.gz
tests: validate host and port for ssh tests when non-standard
Diffstat (limited to 'tests')
-rw-r--r--tests/libgit2/online/clone.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/libgit2/online/clone.c b/tests/libgit2/online/clone.c
index 1a4cdb520..bb704c066 100644
--- a/tests/libgit2/online/clone.c
+++ b/tests/libgit2/online/clone.c
@@ -787,10 +787,19 @@ static int ssh_certificate_check(git_cert *cert, int valid, const char *host, vo
{
git_cert_hostkey *key;
git_oid expected = GIT_OID_SHA1_ZERO, actual = GIT_OID_SHA1_ZERO;
+ git_str expected_host = GIT_STR_INIT;
+ git_net_url parsed_url = GIT_NET_URL_INIT;
GIT_UNUSED(valid);
GIT_UNUSED(payload);
+ cl_git_pass(git_net_url_parse_standard_or_scp(&parsed_url, _remote_url));
+ cl_git_pass(git_str_printf(&expected_host, "%s%s%s",
+ parsed_url.host,
+ git_net_url_is_default_port(&parsed_url) ? "" : ":",
+ git_net_url_is_default_port(&parsed_url) ? "" : parsed_url.port));
+ cl_assert_equal_s(expected_host.ptr, host);
+
cl_assert(_remote_ssh_fingerprint);
cl_git_pass(git_oid__fromstrp(&expected, _remote_ssh_fingerprint, GIT_OID_SHA1));
@@ -812,7 +821,8 @@ static int ssh_certificate_check(git_cert *cert, int valid, const char *host, vo
cl_assert(!memcmp(&expected, &actual, 20));
- cl_assert_equal_s("localhost", host);
+ git_net_url_dispose(&parsed_url);
+ git_str_dispose(&expected_host);
return GIT_EUSER;
}