Skip to content

Commit 9f46048

Browse files
jukkarkartben
authored andcommitted
tests: net: dhcpv4: client: Add DNS server deletion test
Make sure net_dhcpv4_stop() will generate DNS server deletion events. Signed-off-by: Jukka Rissanen <[email protected]>
1 parent 29e0272 commit 9f46048

File tree

1 file changed

+24
-2
lines changed
  • tests/net/dhcpv4/client/src

1 file changed

+24
-2
lines changed

tests/net/dhcpv4/client/src/main.c

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,9 @@ static uint32_t request_xid;
252252
#define EVT_VENDOR_EMPTY BIT(12)
253253
#define EVT_DHCP_OFFER BIT(13)
254254
#define EVT_DHCP_ACK BIT(14)
255+
#define EVT_DNS_SERVER1_DEL BIT(15)
256+
#define EVT_DNS_SERVER2_DEL BIT(16)
257+
#define EVT_DNS_SERVER3_DEL BIT(17)
255258

256259
static K_EVENT_DEFINE(events);
257260

@@ -538,6 +541,18 @@ static void receiver_cb(uint64_t nm_event, struct net_if *iface, void *info, siz
538541
zassert_unreachable("Unknown DNS server");
539542
}
540543
break;
544+
case NET_EVENT_DNS_SERVER_DEL:
545+
zassert_equal(info_length, sizeof(struct sockaddr));
546+
if (net_sin(info)->sin_addr.s_addr == dns_addrs[0].s_addr) {
547+
k_event_post(&events, EVT_DNS_SERVER1_DEL);
548+
} else if (net_sin(info)->sin_addr.s_addr == dns_addrs[1].s_addr) {
549+
k_event_post(&events, EVT_DNS_SERVER2_DEL);
550+
} else if (net_sin(info)->sin_addr.s_addr == dns_addrs[2].s_addr) {
551+
k_event_post(&events, EVT_DNS_SERVER3_DEL);
552+
} else {
553+
zassert_unreachable("Unknown DNS server");
554+
}
555+
break;
541556
case NET_EVENT_IPV4_DHCP_START:
542557
k_event_post(&events, EVT_DHCP_START);
543558
break;
@@ -781,8 +796,15 @@ ZTEST(dhcpv4_tests, test_dhcp)
781796

782797
net_dhcpv4_stop(iface);
783798

784-
evt = k_event_wait_all(&events, EVT_DHCP_STOP | EVT_ADDR_DEL, false, WAIT_TIME);
785-
zassert_equal(evt, EVT_DHCP_STOP | EVT_ADDR_DEL,
799+
evt = k_event_wait_all(&events,
800+
EVT_DHCP_STOP | EVT_ADDR_DEL |
801+
EVT_DNS_SERVER1_DEL | EVT_DNS_SERVER2_DEL |
802+
EVT_DNS_SERVER3_DEL,
803+
false, WAIT_TIME);
804+
zassert_equal(evt,
805+
EVT_DHCP_STOP | EVT_ADDR_DEL |
806+
EVT_DNS_SERVER1_DEL | EVT_DNS_SERVER2_DEL |
807+
EVT_DNS_SERVER3_DEL,
786808
"Missing DHCP stop or deleted address");
787809
}
788810
}

0 commit comments

Comments
 (0)