Skip to content

Commit 4c88169

Browse files
jukkarcarlescufi
authored andcommitted
tests: net: sockets: Add tests for SO_DOMAIN socket option
Make sure that the SO_DOMAIN is a read only value and it returns correct socket domain (AF_INET or AF_INET6) in the tests. Signed-off-by: Jukka Rissanen <[email protected]>
1 parent 298ab2c commit 4c88169

File tree

1 file changed

+35
-0
lines changed
  • tests/net/socket/misc/src

1 file changed

+35
-0
lines changed

tests/net/socket/misc/src/main.c

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,4 +887,39 @@ ZTEST(socket_misc_test_suite, test_ipv4_mapped_to_ipv6_server)
887887
test_ipv4_mapped_to_ipv6_server();
888888
}
889889

890+
ZTEST(socket_misc_test_suite, test_so_domain_socket_option)
891+
{
892+
int ret;
893+
int sock_u;
894+
int sock_t;
895+
socklen_t optlen = sizeof(int);
896+
int domain;
897+
898+
sock_t = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
899+
zassert_true(sock_t >= 0, "TCP socket open failed");
900+
sock_u = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
901+
zassert_true(sock_u >= 0, "UDP socket open failed");
902+
903+
ret = getsockopt(sock_t, SOL_SOCKET, SO_DOMAIN, &domain, &optlen);
904+
zassert_equal(ret, 0, "getsockopt failed, %d", -errno);
905+
zassert_equal(domain, AF_INET, "Mismatch domain value %d vs %d",
906+
AF_INET, domain);
907+
908+
ret = getsockopt(sock_u, SOL_SOCKET, SO_DOMAIN, &domain, &optlen);
909+
zassert_equal(ret, 0, "getsockopt failed, %d", -errno);
910+
zassert_equal(domain, AF_INET6, "Mismatch domain value %d vs %d",
911+
AF_INET6, domain);
912+
913+
/* setsockopt() is not supported for this option */
914+
domain = AF_INET;
915+
ret = setsockopt(sock_u, SOL_SOCKET, SO_DOMAIN, &domain, optlen);
916+
zassert_equal(ret, -1, "setsockopt succeed");
917+
zassert_equal(errno, ENOPROTOOPT, "Invalid errno %d", errno);
918+
919+
ret = close(sock_t);
920+
zassert_equal(ret, 0, "close failed, %d", -errno);
921+
ret = close(sock_u);
922+
zassert_equal(ret, 0, "close failed, %d", -errno);
923+
}
924+
890925
ZTEST_SUITE(socket_misc_test_suite, NULL, setup, NULL, NULL, NULL);

0 commit comments

Comments
 (0)