blob: f1afd24e33d32612ab98a8ea9269214f0d90e6ff [file] [log] [blame]
/*
* Copyright (c) 2019 Linaro Limited
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <logging/log.h>
LOG_MODULE_REGISTER(net_test, CONFIG_NET_SOCKETS_LOG_LEVEL);
#include <stdio.h>
#include <ztest_assert.h>
#include <net/socket.h>
void test_getnameinfo_ipv4(void)
{
struct sockaddr_in saddr;
char host[80];
char serv[10];
int ret;
memset(&saddr, 0, sizeof(saddr));
saddr.sin_family = AF_INET;
ret = getnameinfo((struct sockaddr *)&saddr, sizeof(saddr),
host, sizeof(host), serv, sizeof(serv), 0);
zassert_equal(ret, 0, "");
printk("%s %s\n", host, serv);
zassert_equal(strcmp(host, "0.0.0.0"), 0, "");
zassert_equal(strcmp(serv, "0"), 0, "");
saddr.sin_port = htons(1234);
saddr.sin_addr.s_addr = htonl(0x7f000001);
ret = getnameinfo((struct sockaddr *)&saddr, sizeof(saddr),
host, sizeof(host), serv, sizeof(serv), 0);
zassert_equal(ret, 0, "");
printk("%s %s\n", host, serv);
zassert_equal(strcmp(host, "127.0.0.1"), 0, "");
zassert_equal(strcmp(serv, "1234"), 0, "");
}
void test_getnameinfo_ipv6(void)
{
struct sockaddr_in6 saddr;
char host[80];
char serv[10];
int ret;
memset(&saddr, 0, sizeof(saddr));
saddr.sin6_family = AF_INET6;
ret = getnameinfo((struct sockaddr *)&saddr, sizeof(saddr),
host, sizeof(host), serv, sizeof(serv), 0);
zassert_equal(ret, 0, "");
printk("%s %s\n", host, serv);
zassert_equal(strcmp(host, "::"), 0, "");
zassert_equal(strcmp(serv, "0"), 0, "");
saddr.sin6_port = htons(4321);
saddr.sin6_addr.s6_addr[0] = 0xff;
saddr.sin6_addr.s6_addr[1] = 0x55;
saddr.sin6_addr.s6_addr[15] = 0x11;
ret = getnameinfo((struct sockaddr *)&saddr, sizeof(saddr),
host, sizeof(host), serv, sizeof(serv), 0);
zassert_equal(ret, 0, "");
printk("%s %s\n", host, serv);
zassert_equal(strcmp(host, "ff55::11"), 0, "");
zassert_equal(strcmp(serv, "4321"), 0, "");
}
void test_main(void)
{
k_thread_system_pool_assign(k_current_get());
ztest_test_suite(socket_getnameinfo,
ztest_user_unit_test(test_getnameinfo_ipv4),
ztest_user_unit_test(test_getnameinfo_ipv6));
ztest_run_test_suite(socket_getnameinfo);
}