1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

tests/gnrc_sock_ip: Added test for sock_aux_local

This commit is contained in:
Marian Buschsieweke 2020-07-27 16:43:10 +02:00
parent f97c190117
commit 3e1417c75d
No known key found for this signature in database
GPG Key ID: 61F64C6599B1539F
2 changed files with 34 additions and 0 deletions

View File

@ -1,5 +1,11 @@
include ../Makefile.tests_common
AUX_LOCAL ?= 1
ifeq (1, $(AUX_LOCAL))
USEMODULE += sock_aux_local
endif
USEMODULE += sock_ip
USEMODULE += gnrc_ipv6
USEMODULE += ps

View File

@ -344,6 +344,33 @@ static void test_sock_ip_recv__non_blocking(void)
expect(_check_net());
}
static void test_sock_ip_recv__aux(void)
{
static const ipv6_addr_t src_addr = { .u8 = _TEST_ADDR_REMOTE };
static const ipv6_addr_t dst_addr = { .u8 = _TEST_ADDR_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_packet(&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 IS_USED(MODULE_SOCK_AUX_LOCAL)
expect(!(aux.flags & SOCK_AUX_GET_LOCAL));
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_buf__success(void)
{
static const ipv6_addr_t src_addr = { .u8 = _TEST_ADDR_REMOTE };
@ -650,6 +677,7 @@ int main(void)
CALL(test_sock_ip_recv__unsocketed_with_remote());
CALL(test_sock_ip_recv__with_timeout());
CALL(test_sock_ip_recv__non_blocking());
CALL(test_sock_ip_recv__aux());
CALL(test_sock_ip_recv_buf__success());
_prepare_send_checks();
CALL(test_sock_ip_send__EAFNOSUPPORT_INET());