From 047f3b33068b17d6d84c0ae5d7457cdcffb90bd3 Mon Sep 17 00:00:00 2001 From: Erik Ekman Date: Sat, 4 Jul 2020 18:31:36 +0200 Subject: [PATCH] dns: Verify setting/getting servers in unit test --- test/unit/Filelists.cmake | 1 + test/unit/Filelists.mk | 1 + test/unit/core/test_dns.c | 52 ++++++++++++++++++++++++++++++++++++++ test/unit/core/test_dns.h | 8 ++++++ test/unit/lwip_unittests.c | 2 ++ 5 files changed, 64 insertions(+) create mode 100644 test/unit/core/test_dns.c create mode 100644 test/unit/core/test_dns.h diff --git a/test/unit/Filelists.cmake b/test/unit/Filelists.cmake index 7c7d1f13..7f5041bd 100644 --- a/test/unit/Filelists.cmake +++ b/test/unit/Filelists.cmake @@ -18,6 +18,7 @@ set(LWIP_TESTFILES ${LWIP_TESTDIR}/api/test_sockets.c ${LWIP_TESTDIR}/arch/sys_arch.c ${LWIP_TESTDIR}/core/test_def.c + ${LWIP_TESTDIR}/core/test_dns.c ${LWIP_TESTDIR}/core/test_mem.c ${LWIP_TESTDIR}/core/test_netif.c ${LWIP_TESTDIR}/core/test_pbuf.c diff --git a/test/unit/Filelists.mk b/test/unit/Filelists.mk index 4b770782..bb8160a1 100644 --- a/test/unit/Filelists.mk +++ b/test/unit/Filelists.mk @@ -34,6 +34,7 @@ TESTFILES=$(TESTDIR)/lwip_unittests.c \ $(TESTDIR)/api/test_sockets.c \ $(TESTDIR)/arch/sys_arch.c \ $(TESTDIR)/core/test_def.c \ + $(TESTDIR)/core/test_dns.c \ $(TESTDIR)/core/test_mem.c \ $(TESTDIR)/core/test_netif.c \ $(TESTDIR)/core/test_pbuf.c \ diff --git a/test/unit/core/test_dns.c b/test/unit/core/test_dns.c new file mode 100644 index 00000000..66d22da6 --- /dev/null +++ b/test/unit/core/test_dns.c @@ -0,0 +1,52 @@ +#include "test_dns.h" + +#include "lwip/dns.h" + +/* Setups/teardown functions */ + +static void +dns_setup(void) +{ +} + +static void +dns_teardown(void) +{ +} + +/* Test functions */ + +START_TEST(test_dns_set_get_server) +{ + int i; + LWIP_UNUSED_ARG(_i); + + for (i = 0; i < 256; i++) { + ip_addr_t server; + /* Should return a zeroed address for any index */ + fail_unless(dns_getserver(i)); + fail_unless(ip_addr_isany(dns_getserver(i))); + + /* Should accept setting address for any index, and ignore if out of range */ + IP_ADDR4(&server, 10, 0, 0, i); + dns_setserver(i, &server); + fail_unless(dns_getserver(i)); + if (i < DNS_MAX_SERVERS) { + /* ip_addr_cmp returns 1 if they match. */ + fail_unless(ip_addr_cmp(dns_getserver(i), &server) == 1); + } else { + fail_unless(ip_addr_isany(dns_getserver(i))); + } + } +} +END_TEST + +/** Create the suite including all tests for this module */ +Suite * +dns_suite(void) +{ + testfunc tests[] = { + TESTFUNC(test_dns_set_get_server) + }; + return create_suite("DNS", tests, sizeof(tests)/sizeof(testfunc), dns_setup, dns_teardown); +} diff --git a/test/unit/core/test_dns.h b/test/unit/core/test_dns.h new file mode 100644 index 00000000..eaad0ca0 --- /dev/null +++ b/test/unit/core/test_dns.h @@ -0,0 +1,8 @@ +#ifndef LWIP_HDR_TEST_DNS_H +#define LWIP_HDR_TEST_DNS_H + +#include "../lwip_check.h" + +Suite *dns_suite(void); + +#endif diff --git a/test/unit/lwip_unittests.c b/test/unit/lwip_unittests.c index 5b8d523f..a7055464 100644 --- a/test/unit/lwip_unittests.c +++ b/test/unit/lwip_unittests.c @@ -6,6 +6,7 @@ #include "tcp/test_tcp.h" #include "tcp/test_tcp_oos.h" #include "core/test_def.h" +#include "core/test_dns.h" #include "core/test_mem.h" #include "core/test_netif.h" #include "core/test_pbuf.h" @@ -78,6 +79,7 @@ int main(void) tcp_suite, tcp_oos_suite, def_suite, + dns_suite, mem_suite, netif_suite, pbuf_suite,