diff --git a/tests/net/dhcpv4/client/src/main.c b/tests/net/dhcpv4/client/src/main.c index 267af6d3c8f..c46ad78c29f 100644 --- a/tests/net/dhcpv4/client/src/main.c +++ b/tests/net/dhcpv4/client/src/main.c @@ -252,6 +252,9 @@ static uint32_t request_xid; #define EVT_VENDOR_EMPTY BIT(12) #define EVT_DHCP_OFFER BIT(13) #define EVT_DHCP_ACK BIT(14) +#define EVT_DNS_SERVER1_DEL BIT(15) +#define EVT_DNS_SERVER2_DEL BIT(16) +#define EVT_DNS_SERVER3_DEL BIT(17) static K_EVENT_DEFINE(events); @@ -538,6 +541,18 @@ static void receiver_cb(uint64_t nm_event, struct net_if *iface, void *info, siz zassert_unreachable("Unknown DNS server"); } break; + case NET_EVENT_DNS_SERVER_DEL: + zassert_equal(info_length, sizeof(struct sockaddr)); + if (net_sin(info)->sin_addr.s_addr == dns_addrs[0].s_addr) { + k_event_post(&events, EVT_DNS_SERVER1_DEL); + } else if (net_sin(info)->sin_addr.s_addr == dns_addrs[1].s_addr) { + k_event_post(&events, EVT_DNS_SERVER2_DEL); + } else if (net_sin(info)->sin_addr.s_addr == dns_addrs[2].s_addr) { + k_event_post(&events, EVT_DNS_SERVER3_DEL); + } else { + zassert_unreachable("Unknown DNS server"); + } + break; case NET_EVENT_IPV4_DHCP_START: k_event_post(&events, EVT_DHCP_START); break; @@ -781,8 +796,15 @@ ZTEST(dhcpv4_tests, test_dhcp) net_dhcpv4_stop(iface); - evt = k_event_wait_all(&events, EVT_DHCP_STOP | EVT_ADDR_DEL, false, WAIT_TIME); - zassert_equal(evt, EVT_DHCP_STOP | EVT_ADDR_DEL, + evt = k_event_wait_all(&events, + EVT_DHCP_STOP | EVT_ADDR_DEL | + EVT_DNS_SERVER1_DEL | EVT_DNS_SERVER2_DEL | + EVT_DNS_SERVER3_DEL, + false, WAIT_TIME); + zassert_equal(evt, + EVT_DHCP_STOP | EVT_ADDR_DEL | + EVT_DNS_SERVER1_DEL | EVT_DNS_SERVER2_DEL | + EVT_DNS_SERVER3_DEL, "Missing DHCP stop or deleted address"); } }