tests/socket: add testcase test_get_ip_and_port
Check if osmo_sock_get_ip_and_port() works correct.
Change-Id: I4e69d814367168c05f0da161ec9b705db36ad096
diff --git a/tests/socket/socket_test.c b/tests/socket/socket_test.c
index ae77184..64e48bc 100644
--- a/tests/socket/socket_test.c
+++ b/tests/socket/socket_test.c
@@ -154,6 +154,38 @@
return 0;
}
+static int test_get_ip_and_port()
+{
+ int fd, rc;
+ char ip[INET6_ADDRSTRLEN] = { };
+ char port[6] = { };
+
+ printf("Checking test_get_ip_and_port() for combined BIND + CONNECT on IPv4\n");
+ fd = osmo_sock_init2(AF_INET, SOCK_DGRAM, IPPROTO_UDP, "127.0.0.1", 0, "127.0.0.1", 55,
+ OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
+
+ OSMO_ASSERT(fd >= 0);
+
+ /* get the remote */
+ rc = osmo_sock_get_ip_and_port(fd, ip, sizeof(ip), port, sizeof(port), false);
+ OSMO_ASSERT(rc == 0);
+ OSMO_ASSERT(strncmp(ip, "127.0.0.1", INET6_ADDRSTRLEN) == 0);
+ OSMO_ASSERT(strncmp(port, "55", 6) == 0);
+
+ printf("Checking test_get_ip_and_port() for combined BIND + CONNECT on IPv6\n");
+ fd = osmo_sock_init2(AF_INET6, SOCK_DGRAM, IPPROTO_UDP, "::1", 0, "::1", 55,
+ OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
+ OSMO_ASSERT(fd >= 0);
+
+ /* get the remote */
+ rc = osmo_sock_get_ip_and_port(fd, ip, sizeof(ip), port, sizeof(port), false);
+ OSMO_ASSERT(rc == 0);
+ OSMO_ASSERT(strncmp(ip, "::1", INET6_ADDRSTRLEN) == 0);
+ OSMO_ASSERT(strncmp(port, "55", 6) == 0);
+
+ return 0;
+}
+
const struct log_info_cat default_categories[] = {
};
@@ -171,6 +203,7 @@
test_sockinit();
test_sockinit2();
+ test_get_ip_and_port();
return EXIT_SUCCESS;
}
diff --git a/tests/socket/socket_test.ok b/tests/socket/socket_test.ok
index 696e356..589036f 100644
--- a/tests/socket/socket_test.ok
+++ b/tests/socket/socket_test.ok
@@ -10,3 +10,5 @@
Checking osmo_sock_init2(AF_UNSPEC) BIND + CONNECT on IPv4
Checking osmo_sock_init2(AF_UNSPEC) BIND + CONNECT on IPv6
Checking osmo_sock_init2(AF_UNSPEC) BIND on IPv4
+Checking test_get_ip_and_port() for combined BIND + CONNECT on IPv4
+Checking test_get_ip_and_port() for combined BIND + CONNECT on IPv6