tests: Split SCTP tests to its own file and run them conditionally

Some systmes (like the ones available in OBS) don't support creating
SCTP sockets, so we need to skip those tests there.

Change-Id: I1d16280674625877ec22cc60cbc5deb67868a656
This commit is contained in:
Pau Espin 2020-08-25 13:56:43 +02:00
parent 3119d47603
commit 16b076cd15
10 changed files with 287 additions and 208 deletions

View File

@ -197,6 +197,10 @@ AS_IF([test "x$ENABLE_LIBSCTP" = "xyes"], [
LIBS=$old_LIBS
])
AC_ARG_ENABLE([sctp-tests], [AS_HELP_STRING([--disable-sctp-tests], [Do not run socket tests requiring system SCTP support])],
[ENABLE_SCTP_TESTS=$enableval], [ENABLE_SCTP_TESTS="yes"])
AM_CONDITIONAL(ENABLE_SCTP_TESTS, test x"$ENABLE_SCTP_TESTS" = x"yes")
AC_ARG_ENABLE(plugin,
[AS_HELP_STRING(
[--disable-plugin],

2
debian/rules vendored
View File

@ -26,7 +26,7 @@ override_dh_auto_test:
dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false)
override_dh_auto_configure:
dh_auto_configure -- --enable-static
dh_auto_configure -- --enable-static --disable-sctp-tests
override_dh_clean:
dh_clean

View File

@ -358,6 +358,14 @@ EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE) \
i460_mux/i460_mux_test.ok \
$(NULL)
if ENABLE_LIBSCTP
if ENABLE_SCTP_TESTS
EXTRA_DIST += socket/socket_sctp_test.ok socket/socket_sctp_test.err
check_PROGRAMS += socket/socket_sctp_test
socket_socket_sctp_test_SOURCES = socket/socket_sctp_test.c
endif
endif
DISTCLEANFILES = atconfig atlocal conv/gsm0503_test_vectors.c
BUILT_SOURCES = conv/gsm0503_test_vectors.c
noinst_HEADERS = conv/conv.h

View File

@ -0,0 +1,233 @@
/*
* (C) 2017 by Harald Welte <laforge@gnumonks.org>
* All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <inttypes.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <osmocom/core/application.h>
#include <osmocom/core/utils.h>
#include <osmocom/core/socket.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/bits.h>
#include "../config.h"
void *ctx = NULL;
#ifdef HAVE_LIBSCTP
static uint16_t sock_get_local_port(int fd, bool is_v6) {
struct sockaddr_storage sa;
struct sockaddr_in *sin = (struct sockaddr_in *)&sa;
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&sa;
socklen_t len = sizeof(sa);
int local_port;
OSMO_ASSERT(getsockname(fd, (struct sockaddr*)&sa, &len) == 0);
if(!is_v6)
local_port = osmo_load16be(&sin->sin_port);
else
local_port = osmo_load16be(&sin6->sin6_port);
//printf("Checking osmo_sock_init2_multiaddr() port: %" PRIu16 "\n", listen_port_v4);
return local_port;
}
/* Test API osmo_sock_init2_multiaddr with 1 local/remote address */
static int test_sockinit2_multiaddr(const char **addrv4_loc, const char **addrv6_loc,
const char **addrv4_rem, const char **addrv6_rem,
size_t addrv4_size, size_t addrv6_size)
{
int fd, rc;
int listen_fd_v4, listen_fd_v6;
int listen_port_v4, listen_port_v6;
printf("Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv4 port\n");
listen_fd_v4 = osmo_sock_init2_multiaddr(AF_INET, SOCK_STREAM, IPPROTO_SCTP,
addrv4_loc, addrv4_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND);
OSMO_ASSERT(listen_fd_v4 >= 0);
/* expect it to be blocking */
rc = fcntl(listen_fd_v4, F_GETFL);
OSMO_ASSERT(!(rc & O_NONBLOCK));
listen_port_v4 = sock_get_local_port(listen_fd_v4, false);
printf("Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv6 port\n");
listen_fd_v6 = osmo_sock_init2_multiaddr(AF_INET6, SOCK_STREAM, IPPROTO_SCTP,
addrv6_loc, addrv6_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND);
OSMO_ASSERT(listen_fd_v6 >= 0);
/* expect it to be blocking */
rc = fcntl(listen_fd_v6, F_GETFL);
OSMO_ASSERT(!(rc & O_NONBLOCK));
listen_port_v6 = sock_get_local_port(listen_fd_v6, true);
printf("Checking osmo_sock_init2_multiaddr() for OSMO_SOCK_F_NONBLOCK\n");
fd = osmo_sock_init2_multiaddr(AF_INET, SOCK_STREAM, IPPROTO_SCTP,
addrv4_loc, addrv4_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND|OSMO_SOCK_F_NONBLOCK);
OSMO_ASSERT(fd >= 0);
/* expect it to be blocking */
rc = fcntl(fd, F_GETFL);
OSMO_ASSERT(rc & O_NONBLOCK);
close(fd);
printf("Checking osmo_sock_init2_multiaddr() for invalid flags\n");
fd = osmo_sock_init2_multiaddr(AF_INET, SOCK_STREAM, IPPROTO_SCTP,
addrv4_loc, addrv4_size, 0,
NULL, 0, 0, 0);
OSMO_ASSERT(fd < 0);
printf("Checking osmo_sock_init2_multiaddr() for combined BIND + CONNECT\n");
fd = osmo_sock_init2_multiaddr(AF_INET, SOCK_STREAM, IPPROTO_SCTP,
addrv4_rem, addrv4_size, 0,
addrv4_rem, addrv4_size, listen_port_v4,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd >= 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv4 & IPv6\n");
fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addrv4_rem, addrv4_size, 0,
addrv6_rem, addrv6_size, listen_port_v6,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd < 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv6 & IPv4\n");
fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addrv6_rem, addrv6_size, 0,
addrv4_rem, addrv4_size, listen_port_v4,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd < 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv4\n");
fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addrv4_rem, addrv4_size, 0,
addrv4_rem, addrv4_size, listen_port_v4,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd >= 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv6\n");
fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addrv6_rem, addrv6_size, 0,
addrv6_rem, addrv6_size, listen_port_v6,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd >= 0);
close(listen_fd_v4);
close(listen_fd_v6);
printf("Done\n");
return 0;
}
/* Test API osmo_sock_init2_multiaddr with 1 local/remote address */
static int test_sockinit2_multiaddr_simple(void)
{
const char *addrv4_loc[] = { "0.0.0.0" };
const char *addrv6_loc[] = { "::" };
const char *addrv4_rem[] = { "127.0.0.1" };
const char *addrv6_rem[] = { "::1" };
return test_sockinit2_multiaddr(addrv4_loc, addrv6_loc,
addrv4_rem, addrv6_rem, 1, 1);
}
/* Test API osmo_sock_init2_multiaddr with several local/remote address */
static int test_sockinit2_multiaddr_several(void)
{
const char *addrv4_localhost[] = { "127.0.0.1", "127.0.0.2" };
const char *addrv6_localhost[] = { "::1" };
return test_sockinit2_multiaddr(addrv4_localhost, addrv6_localhost,
addrv4_localhost, addrv6_localhost, 2, 1);
}
/* Test API osmo_sock_init2_multiaddr with several local/remote address, using both ipv4+v6 */
static int test_sockinit2_multiaddr_mixed(void)
{
const char *addr_localhost[] = { "127.0.0.1", "127.0.0.2", "::1" };
size_t addr_size = ARRAY_SIZE(addr_localhost);
int listen_fd, listen_port, fd;
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_INET IPv4+v6 fails\n");
listen_fd = osmo_sock_init2_multiaddr(AF_INET, SOCK_STREAM, IPPROTO_SCTP,
addr_localhost, addr_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND);
OSMO_ASSERT(listen_fd < 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_INET6 IPv4+v6 fails\n");
listen_fd = osmo_sock_init2_multiaddr(AF_INET6, SOCK_STREAM, IPPROTO_SCTP,
addr_localhost, addr_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND);
OSMO_ASSERT(listen_fd < 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_UNSPEC IPv4+v6 succeeds\n");
listen_fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addr_localhost, addr_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND);
OSMO_ASSERT(listen_fd >= 0);
listen_port = sock_get_local_port(listen_fd, true);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv4\n");
fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addr_localhost, addr_size, 0,
addr_localhost, addr_size, listen_port,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd >= 0);
close(fd);
close(listen_fd);
return 0;
}
#endif /* ifdef HAVE_LIBSCTP */
const struct log_info_cat default_categories[] = {
};
static struct log_info info = {
.cat = default_categories,
.num_cat = ARRAY_SIZE(default_categories),
};
int main(int argc, char *argv[])
{
ctx = talloc_named_const(NULL, 0, "socket_test_sctp");
osmo_init_logging2(ctx, &info);
log_set_use_color(osmo_stderr_target, 0);
log_set_print_filename(osmo_stderr_target, 0);
#ifdef HAVE_LIBSCTP
test_sockinit2_multiaddr_simple();
test_sockinit2_multiaddr_several();
test_sockinit2_multiaddr_mixed();
#endif /* ifdef HAVE_LIBSCTP */
return EXIT_SUCCESS;
}

View File

@ -0,0 +1,8 @@
invalid: you have to specify either BIND or CONNECT flags
Invalid v4 vs v6 in local vs remote addresses
Invalid v4 vs v6 in local vs remote addresses
invalid: you have to specify either BIND or CONNECT flags
Invalid v4 vs v6 in local vs remote addresses
Invalid v4 vs v6 in local vs remote addresses
getaddrinfo(::1, 0) failed: Address family for hostname not supported
getaddrinfo(127.0.0.1, 0) failed: Address family for hostname not supported

View File

@ -0,0 +1,24 @@
Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv4 port
Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv6 port
Checking osmo_sock_init2_multiaddr() for OSMO_SOCK_F_NONBLOCK
Checking osmo_sock_init2_multiaddr() for invalid flags
Checking osmo_sock_init2_multiaddr() for combined BIND + CONNECT
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv4 & IPv6
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv6 & IPv4
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv4
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv6
Done
Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv4 port
Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv6 port
Checking osmo_sock_init2_multiaddr() for OSMO_SOCK_F_NONBLOCK
Checking osmo_sock_init2_multiaddr() for invalid flags
Checking osmo_sock_init2_multiaddr() for combined BIND + CONNECT
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv4 & IPv6
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv6 & IPv4
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv4
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv6
Done
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_INET IPv4+v6 fails
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_INET6 IPv4+v6 fails
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_UNSPEC IPv4+v6 succeeds
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv4

View File

@ -148,176 +148,6 @@ static int test_sockinit2(void)
return 0;
}
#ifdef HAVE_LIBSCTP
static uint16_t sock_get_local_port(int fd, bool is_v6) {
struct sockaddr_storage sa;
struct sockaddr_in *sin = (struct sockaddr_in *)&sa;
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&sa;
socklen_t len = sizeof(sa);
int local_port;
OSMO_ASSERT(getsockname(fd, (struct sockaddr*)&sa, &len) == 0);
if(!is_v6)
local_port = osmo_load16be(&sin->sin_port);
else
local_port = osmo_load16be(&sin6->sin6_port);
//printf("Checking osmo_sock_init2_multiaddr() port: %" PRIu16 "\n", listen_port_v4);
return local_port;
}
/* Test API osmo_sock_init2_multiaddr with 1 local/remote address */
static int test_sockinit2_multiaddr(const char **addrv4_loc, const char **addrv6_loc,
const char **addrv4_rem, const char **addrv6_rem,
size_t addrv4_size, size_t addrv6_size)
{
int fd, rc;
int listen_fd_v4, listen_fd_v6;
int listen_port_v4, listen_port_v6;
printf("Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv4 port\n");
listen_fd_v4 = osmo_sock_init2_multiaddr(AF_INET, SOCK_STREAM, IPPROTO_SCTP,
addrv4_loc, addrv4_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND);
OSMO_ASSERT(listen_fd_v4 >= 0);
/* expect it to be blocking */
rc = fcntl(listen_fd_v4, F_GETFL);
OSMO_ASSERT(!(rc & O_NONBLOCK));
listen_port_v4 = sock_get_local_port(listen_fd_v4, false);
printf("Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv6 port\n");
listen_fd_v6 = osmo_sock_init2_multiaddr(AF_INET6, SOCK_STREAM, IPPROTO_SCTP,
addrv6_loc, addrv6_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND);
OSMO_ASSERT(listen_fd_v6 >= 0);
/* expect it to be blocking */
rc = fcntl(listen_fd_v6, F_GETFL);
OSMO_ASSERT(!(rc & O_NONBLOCK));
listen_port_v6 = sock_get_local_port(listen_fd_v6, true);
printf("Checking osmo_sock_init2_multiaddr() for OSMO_SOCK_F_NONBLOCK\n");
fd = osmo_sock_init2_multiaddr(AF_INET, SOCK_STREAM, IPPROTO_SCTP,
addrv4_loc, addrv4_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND|OSMO_SOCK_F_NONBLOCK);
OSMO_ASSERT(fd >= 0);
/* expect it to be blocking */
rc = fcntl(fd, F_GETFL);
OSMO_ASSERT(rc & O_NONBLOCK);
close(fd);
printf("Checking osmo_sock_init2_multiaddr() for invalid flags\n");
fd = osmo_sock_init2_multiaddr(AF_INET, SOCK_STREAM, IPPROTO_SCTP,
addrv4_loc, addrv4_size, 0,
NULL, 0, 0, 0);
OSMO_ASSERT(fd < 0);
printf("Checking osmo_sock_init2_multiaddr() for combined BIND + CONNECT\n");
fd = osmo_sock_init2_multiaddr(AF_INET, SOCK_STREAM, IPPROTO_SCTP,
addrv4_rem, addrv4_size, 0,
addrv4_rem, addrv4_size, listen_port_v4,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd >= 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv4 & IPv6\n");
fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addrv4_rem, addrv4_size, 0,
addrv6_rem, addrv6_size, listen_port_v6,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd < 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv6 & IPv4\n");
fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addrv6_rem, addrv6_size, 0,
addrv4_rem, addrv4_size, listen_port_v4,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd < 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv4\n");
fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addrv4_rem, addrv4_size, 0,
addrv4_rem, addrv4_size, listen_port_v4,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd >= 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv6\n");
fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addrv6_rem, addrv6_size, 0,
addrv6_rem, addrv6_size, listen_port_v6,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd >= 0);
close(listen_fd_v4);
close(listen_fd_v6);
printf("Done\n");
return 0;
}
/* Test API osmo_sock_init2_multiaddr with 1 local/remote address */
static int test_sockinit2_multiaddr_simple(void)
{
const char *addrv4_loc[] = { "0.0.0.0" };
const char *addrv6_loc[] = { "::" };
const char *addrv4_rem[] = { "127.0.0.1" };
const char *addrv6_rem[] = { "::1" };
return test_sockinit2_multiaddr(addrv4_loc, addrv6_loc,
addrv4_rem, addrv6_rem, 1, 1);
}
/* Test API osmo_sock_init2_multiaddr with several local/remote address */
static int test_sockinit2_multiaddr_several(void)
{
const char *addrv4_localhost[] = { "127.0.0.1", "127.0.0.2" };
const char *addrv6_localhost[] = { "::1" };
return test_sockinit2_multiaddr(addrv4_localhost, addrv6_localhost,
addrv4_localhost, addrv6_localhost, 2, 1);
}
/* Test API osmo_sock_init2_multiaddr with several local/remote address, using both ipv4+v6 */
static int test_sockinit2_multiaddr_mixed(void)
{
const char *addr_localhost[] = { "127.0.0.1", "127.0.0.2", "::1" };
size_t addr_size = ARRAY_SIZE(addr_localhost);
int listen_fd, listen_port, fd;
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_INET IPv4+v6 fails\n");
listen_fd = osmo_sock_init2_multiaddr(AF_INET, SOCK_STREAM, IPPROTO_SCTP,
addr_localhost, addr_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND);
OSMO_ASSERT(listen_fd < 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_INET6 IPv4+v6 fails\n");
listen_fd = osmo_sock_init2_multiaddr(AF_INET6, SOCK_STREAM, IPPROTO_SCTP,
addr_localhost, addr_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND);
OSMO_ASSERT(listen_fd < 0);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_UNSPEC IPv4+v6 succeeds\n");
listen_fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addr_localhost, addr_size, 0,
NULL, 0, 0, OSMO_SOCK_F_BIND);
OSMO_ASSERT(listen_fd >= 0);
listen_port = sock_get_local_port(listen_fd, true);
printf("Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv4\n");
fd = osmo_sock_init2_multiaddr(AF_UNSPEC, SOCK_STREAM, IPPROTO_SCTP,
addr_localhost, addr_size, 0,
addr_localhost, addr_size, listen_port,
OSMO_SOCK_F_BIND|OSMO_SOCK_F_CONNECT);
OSMO_ASSERT(fd >= 0);
close(fd);
close(listen_fd);
return 0;
}
#endif /* ifdef HAVE_LIBSCTP */
const struct log_info_cat default_categories[] = {
};
@ -335,11 +165,6 @@ int main(int argc, char *argv[])
test_sockinit();
test_sockinit2();
#ifdef HAVE_LIBSCTP
test_sockinit2_multiaddr_simple();
test_sockinit2_multiaddr_several();
test_sockinit2_multiaddr_mixed();
#endif /* ifdef HAVE_LIBSCTP */
return EXIT_SUCCESS;
}

View File

@ -2,11 +2,3 @@ invalid: both bind and connect flags set: 0.0.0.0:0
invalid: you have to specify either BIND or CONNECT flags
Unable to find a common protocol (IPv4 or IPv6) for local host: 127.0.0.1 and remote host: ::1.
Unable to find a common protocol (IPv4 or IPv6) for local host: ::1 and remote host: 127.0.0.1.
invalid: you have to specify either BIND or CONNECT flags
Invalid v4 vs v6 in local vs remote addresses
Invalid v4 vs v6 in local vs remote addresses
invalid: you have to specify either BIND or CONNECT flags
Invalid v4 vs v6 in local vs remote addresses
Invalid v4 vs v6 in local vs remote addresses
getaddrinfo(::1, 0) failed: Address family for hostname not supported
getaddrinfo(127.0.0.1, 0) failed: Address family for hostname not supported

View File

@ -9,27 +9,3 @@ 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_multiaddr() with bind to a random local SCTP IPv4 port
Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv6 port
Checking osmo_sock_init2_multiaddr() for OSMO_SOCK_F_NONBLOCK
Checking osmo_sock_init2_multiaddr() for invalid flags
Checking osmo_sock_init2_multiaddr() for combined BIND + CONNECT
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv4 & IPv6
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv6 & IPv4
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv4
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv6
Done
Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv4 port
Checking osmo_sock_init2_multiaddr() with bind to a random local SCTP IPv6 port
Checking osmo_sock_init2_multiaddr() for OSMO_SOCK_F_NONBLOCK
Checking osmo_sock_init2_multiaddr() for invalid flags
Checking osmo_sock_init2_multiaddr() for combined BIND + CONNECT
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv4 & IPv6
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) must fail on mixed IPv6 & IPv4
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv4
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv6
Done
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_INET IPv4+v6 fails
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_INET6 IPv4+v6 fails
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND on AF_UNSPEC IPv4+v6 succeeds
Checking osmo_sock_init2_multiaddr(AF_UNSPEC) BIND + CONNECT on IPv4

View File

@ -313,6 +313,15 @@ touch experr
AT_CHECK([$abs_top_builddir/tests/socket/socket_test], [0], [expout], [experr])
AT_CLEANUP
AT_SETUP([socket_sctp])
AT_KEYWORDS([socket_sctp])
AT_SKIP_IF([! test -e $abs_top_builddir/tests/socket/socket_sctp_test])
cat $abs_srcdir/socket/socket_sctp_test.ok > expout
cat $abs_srcdir/socket/socket_sctp_test.err > experr
touch experr
AT_CHECK([$abs_top_builddir/tests/socket/socket_sctp_test], [0], [expout], [experr])
AT_CLEANUP
AT_SETUP([osmo-auc-gen])
AT_KEYWORDS([osmo-auc-gen])
cat $abs_srcdir/osmo-auc-gen/osmo-auc-gen_test.ok > expout