summaryrefslogtreecommitdiffstats
path: root/tests/sockaddr_str/sockaddr_str_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sockaddr_str/sockaddr_str_test.c')
-rw-r--r--tests/sockaddr_str/sockaddr_str_test.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/sockaddr_str/sockaddr_str_test.c b/tests/sockaddr_str/sockaddr_str_test.c
index bf7d7380..7d8fe4f3 100644
--- a/tests/sockaddr_str/sockaddr_str_test.c
+++ b/tests/sockaddr_str/sockaddr_str_test.c
@@ -55,6 +55,7 @@ struct osmo_sockaddr_str oip_data[] = {
{ .af = AF_INET6, .ip = "::1:10.9.8.7", .port = 1 },
{ .af = AF_INET, .ip = "0.0.0.0", .port = 5 },
{ .af = AF_INET6, .ip = "::", .port = 5 },
+ { .af = AF_INET6, .ip = "0::", .port = 5 },
};
const char *af_name(int af)
@@ -236,9 +237,34 @@ void sockaddr_str_test_conversions()
}
+static void test_osmo_sockaddr_str_cmp()
+{
+ int i;
+ printf("\n\n%s\n", __func__);
+ for (i = 0; i < ARRAY_SIZE(oip_data); i++) {
+ /* use a copy to not hit the pointer comparison in osmo_sockaddr_str_cmp(). */
+ struct osmo_sockaddr_str _a = oip_data[i];
+ struct osmo_sockaddr_str *a = &_a;
+ int j;
+ printf("[%2d]\n", i);
+
+ for (j = 0; j < ARRAY_SIZE(oip_data); j++) {
+ struct osmo_sockaddr_str *b = &oip_data[j];
+ int ip_rc = osmo_sockaddr_str_cmp(a, b);
+ printf(" osmo_sockaddr_str_cmp(): " OSMO_SOCKADDR_STR_FMT "%s %s " OSMO_SOCKADDR_STR_FMT "%s\n",
+ OSMO_SOCKADDR_STR_FMT_ARGS(a),
+ osmo_sockaddr_str_is_nonzero(a) ? "" : "(zero)",
+ ip_rc < 0? "<" : (ip_rc == 0 ? "==" : ">" ),
+ OSMO_SOCKADDR_STR_FMT_ARGS(b),
+ osmo_sockaddr_str_is_nonzero(b) ? "" : "(zero)");
+ }
+ }
+}
+
int main(int argc, char **argv)
{
sockaddr_str_test_conversions();
+ test_osmo_sockaddr_str_cmp();
return 0;
}