tests/lwip_sock_ip: Added test for sock_aux_local
This commit is contained in:
parent
1282ab1203
commit
e97ed09c3c
@ -1,6 +1,7 @@
|
||||
include ../Makefile.tests_common
|
||||
|
||||
LWIP_IPV4 ?= 0
|
||||
AUX_LOCAL ?= 1
|
||||
|
||||
ifneq (0, $(LWIP_IPV4))
|
||||
USEMODULE += ipv4_addr
|
||||
@ -17,6 +18,10 @@ ifneq (0, $(LWIP_IPV6))
|
||||
USEMODULE += lwip_ipv6_autoconfig
|
||||
endif
|
||||
|
||||
ifeq (1, $(AUX_LOCAL))
|
||||
USEMODULE += sock_aux_local
|
||||
endif
|
||||
|
||||
USEMODULE += inet_csum
|
||||
USEMODULE += l2util
|
||||
USEMODULE += lwip_netdev
|
||||
|
||||
@ -304,6 +304,32 @@ static void test_sock_ip_recv4__non_blocking(void)
|
||||
expect(_check_net());
|
||||
}
|
||||
|
||||
static void test_sock_ip_recv4__aux(void)
|
||||
{
|
||||
static const sock_ip_ep_t local = { .family = AF_INET };
|
||||
sock_ip_ep_t result;
|
||||
sock_ip_aux_rx_t aux = { .flags = SOCK_AUX_GET_LOCAL };
|
||||
|
||||
expect(0 == sock_ip_create(&_sock, &local, NULL, _TEST_PROTO,
|
||||
SOCK_FLAGS_REUSE_EP));
|
||||
expect(_inject_4packet(_TEST_ADDR4_REMOTE, _TEST_ADDR4_LOCAL, _TEST_PROTO, "ABCD",
|
||||
sizeof("ABCD"), _TEST_NETIF));
|
||||
expect(sizeof("ABCD") == sock_ip_recv_aux(&_sock, _test_buffer,
|
||||
sizeof(_test_buffer), 0, &result,
|
||||
&aux));
|
||||
expect(AF_INET == result.family);
|
||||
expect(_TEST_ADDR4_REMOTE == result.addr.ipv4_u32);
|
||||
expect(_TEST_NETIF == result.netif);
|
||||
#if IS_USED(MODULE_SOCK_AUX_LOCAL)
|
||||
expect(!(aux.flags & SOCK_AUX_GET_LOCAL));
|
||||
expect(aux.local.family == AF_INET );
|
||||
expect(aux.local.addr.ipv4_u32 == _TEST_ADDR4_LOCAL );
|
||||
#else
|
||||
expect(aux.flags & SOCK_AUX_GET_LOCAL);
|
||||
#endif
|
||||
expect(_check_net());
|
||||
}
|
||||
|
||||
static void test_sock_ip_recv_buf4__success(void)
|
||||
{
|
||||
static const sock_ip_ep_t local = { .family = AF_INET };
|
||||
@ -845,6 +871,34 @@ static void test_sock_ip_recv6__non_blocking(void)
|
||||
expect(_check_net());
|
||||
}
|
||||
|
||||
static void test_sock_ip_recv6__aux(void)
|
||||
{
|
||||
static const ipv6_addr_t src_addr = { .u8 = _TEST_ADDR6_REMOTE };
|
||||
static const ipv6_addr_t dst_addr = { .u8 = _TEST_ADDR6_LOCAL };
|
||||
static const sock_ip_ep_t local = { .family = AF_INET6 };
|
||||
sock_ip_ep_t result;
|
||||
sock_ip_aux_rx_t aux = { .flags = SOCK_AUX_GET_LOCAL };
|
||||
|
||||
expect(0 == sock_ip_create(&_sock, &local, NULL, _TEST_PROTO,
|
||||
SOCK_FLAGS_REUSE_EP));
|
||||
expect(_inject_6packet(&src_addr, &dst_addr, _TEST_PROTO, "ABCD",
|
||||
sizeof("ABCD"), _TEST_NETIF));
|
||||
expect(sizeof("ABCD") == sock_ip_recv_aux(&_sock, _test_buffer,
|
||||
sizeof(_test_buffer), 0, &result,
|
||||
&aux));
|
||||
expect(AF_INET6 == result.family);
|
||||
expect(memcmp(&result.addr, &src_addr, sizeof(result.addr)) == 0);
|
||||
expect(_TEST_NETIF == result.netif);
|
||||
#if defined(MODULE_SOCK_AUX_LOCAL)
|
||||
expect(!(aux.flags & SOCK_AUX_GET_LOCAL));
|
||||
expect(aux.local.family == AF_INET6 );
|
||||
expect(memcmp(&aux.local.addr, &dst_addr, sizeof(dst_addr)) == 0);
|
||||
#else
|
||||
expect(aux.flags & SOCK_AUX_GET_LOCAL);
|
||||
#endif
|
||||
expect(_check_net());
|
||||
}
|
||||
|
||||
static void test_sock_ip_recv_buf6__success(void)
|
||||
{
|
||||
static const ipv6_addr_t src_addr = { .u8 = _TEST_ADDR6_REMOTE };
|
||||
@ -1164,6 +1218,7 @@ int main(void)
|
||||
CALL(test_sock_ip_recv4__unsocketed_with_remote());
|
||||
CALL(test_sock_ip_recv4__with_timeout());
|
||||
CALL(test_sock_ip_recv4__non_blocking());
|
||||
CALL(test_sock_ip_recv4__aux());
|
||||
CALL(test_sock_ip_recv_buf4__success());
|
||||
_prepare_send_checks();
|
||||
CALL(test_sock_ip_send4__EAFNOSUPPORT());
|
||||
@ -1209,6 +1264,7 @@ int main(void)
|
||||
CALL(test_sock_ip_recv6__unsocketed_with_remote());
|
||||
CALL(test_sock_ip_recv6__with_timeout());
|
||||
CALL(test_sock_ip_recv6__non_blocking());
|
||||
CALL(test_sock_ip_recv6__aux());
|
||||
CALL(test_sock_ip_recv_buf6__success());
|
||||
_prepare_send_checks();
|
||||
CALL(test_sock_ip_send6__EAFNOSUPPORT());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user