From 775c3a6253cee996897b1564c2598ba154ffc96f Mon Sep 17 00:00:00 2001 From: David Cermak Date: Wed, 2 Feb 2022 16:10:57 +0100 Subject: [PATCH] lwip/dhcps: Add simple start/stop unit cases --- components/lwip/test/test_lwip_apps.c | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/components/lwip/test/test_lwip_apps.c b/components/lwip/test/test_lwip_apps.c index bf55b5f38a..df5fdbc248 100644 --- a/components/lwip/test/test_lwip_apps.c +++ b/components/lwip/test/test_lwip_apps.c @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ #include "freertos/FreeRTOS.h" #include "freertos/event_groups.h" #include "test_utils.h" @@ -6,6 +11,7 @@ #include "lwip/netdb.h" #include "lwip/sockets.h" #include "ping/ping_sock.h" +#include "dhcpserver/dhcpserver.h" #define ETH_PING_END_BIT BIT(1) #define ETH_PING_DURATION_MS (5000) @@ -104,3 +110,31 @@ TEST_CASE("localhost ping test", "[lwip]") vEventGroupDelete(eth_event_group); } + +TEST_CASE("dhcp server init/deinit", "[lwip][leaks=0]") +{ + dhcps_t *dhcps = dhcps_new(); + ip4_addr_t ip = { .addr = IPADDR_ANY }; + TEST_ASSERT(dhcps_start(dhcps, NULL, ip) == ERR_ARG); + TEST_ASSERT(dhcps_stop(dhcps, NULL) == ERR_ARG); + dhcps_delete(dhcps); +} + +TEST_CASE("dhcp server start/stop on localhost", "[lwip]") +{ + test_case_uses_tcpip(); + dhcps_t *dhcps = dhcps_new(); + struct netif *netif; + + NETIF_FOREACH(netif) { + if (netif->name[0] == 'l' && netif->name[1] == 'o') { + break; + } + } + TEST_ASSERT_NOT_NULL(netif); + + ip4_addr_t ip = { .addr = 0x7f0001 }; + TEST_ASSERT(dhcps_start(dhcps, netif, ip) == ERR_OK); + TEST_ASSERT(dhcps_stop(dhcps, netif) == ERR_OK); + dhcps_delete(dhcps); +}