Checking osmo_sock_init() with bind to a random local UDP port
Checking for OSMO_SOCK_F_NONBLOCK
Checking for invalid flags
Checking osmo_sock_init2() with bind to a random local UDP port
Checking osmo_sock_init2() for OSMO_SOCK_F_NONBLOCK
Checking osmo_sock_init2() for invalid flags
Checking osmo_sock_init2() for combined BIND + CONNECT
Checking osmo_sock_init2(AF_UNSPEC) must fail on mixed IPv4 & IPv6
Checking osmo_sock_init2(AF_UNSPEC) must fail on mixed IPv6 & IPv4
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
