tests: net: socket: Add recvfrom addr validation
Add address length validation and expected source address checks in packet socket tests. Signed-off-by: Christoph Seitz <christoph.seitz@infineon.com>
This commit is contained in:
parent
0e4cf09b55
commit
5340fa49a7
@ -337,8 +337,13 @@ ZTEST(socket_packet, test_packet_sockets_dgram)
|
||||
-errno);
|
||||
|
||||
k_msleep(10); /* Let the packet enter the system */
|
||||
memset(&src, 0, sizeof(src));
|
||||
|
||||
ret = zsock_recvfrom(sock2, data_to_receive, sizeof(data_to_receive), 0,
|
||||
(struct sockaddr *)&src, &addrlen);
|
||||
zassert_equal(ret, -1, "Received something (%d)", ret);
|
||||
zassert_equal(errno, EAGAIN, "Wrong errno (%d)", errno);
|
||||
|
||||
memset(&src, 0, sizeof(src));
|
||||
errno = 0;
|
||||
iter = 0;
|
||||
do {
|
||||
@ -352,6 +357,21 @@ ZTEST(socket_packet, test_packet_sockets_dgram)
|
||||
"Cannot receive all data (%d vs %zd) (%d)",
|
||||
ret, sizeof(data_to_send), -errno);
|
||||
|
||||
zassert_equal(addrlen, sizeof(struct sockaddr_ll),
|
||||
"Invalid address length (%d)", addrlen);
|
||||
|
||||
struct sockaddr_ll src_expected = {
|
||||
.sll_family = AF_PACKET,
|
||||
.sll_protocol = dst.sll_protocol,
|
||||
.sll_ifindex = net_if_get_by_iface(ud.first),
|
||||
.sll_pkttype = PACKET_OTHERHOST,
|
||||
.sll_hatype = ARPHRD_ETHER,
|
||||
.sll_halen = sizeof(lladdr2),
|
||||
.sll_addr = {0},
|
||||
};
|
||||
memcpy(&src_expected.sll_addr, lladdr2, ARRAY_SIZE(lladdr2));
|
||||
zassert_mem_equal(&src, &src_expected, addrlen, "Invalid source address");
|
||||
|
||||
zassert_mem_equal(data_to_send, data_to_receive, sizeof(data_to_send),
|
||||
"Data mismatch");
|
||||
|
||||
@ -386,6 +406,21 @@ ZTEST(socket_packet, test_packet_sockets_dgram)
|
||||
|
||||
zassert_equal(ret, sizeof(data_to_send), "Cannot receive all data (%d)",
|
||||
-errno);
|
||||
zassert_equal(addrlen, sizeof(struct sockaddr_ll),
|
||||
"Invalid address length (%d)", addrlen);
|
||||
|
||||
src_expected = (struct sockaddr_ll){
|
||||
.sll_family = AF_PACKET,
|
||||
.sll_protocol = dst.sll_protocol,
|
||||
.sll_ifindex = net_if_get_by_iface(ud.second),
|
||||
.sll_pkttype = PACKET_OTHERHOST,
|
||||
.sll_hatype = ARPHRD_ETHER,
|
||||
.sll_halen = ARRAY_SIZE(lladdr2),
|
||||
.sll_addr = {0},
|
||||
};
|
||||
memcpy(&src_expected.sll_addr, lladdr2, ARRAY_SIZE(lladdr2));
|
||||
zassert_mem_equal(&src, &src_expected, addrlen, "Invalid source address");
|
||||
|
||||
zassert_mem_equal(data_to_send, data_to_receive, sizeof(data_to_send),
|
||||
"Data mismatch");
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user