From eeee2b1c55230ea99c47d3728008cf7f80c49acf Mon Sep 17 00:00:00 2001 From: Simon Goldschmidt Date: Tue, 3 Jul 2018 20:47:49 +0200 Subject: [PATCH] dhcp: adapt unit test to ignoring packets without END --- test/unit/dhcp/test_dhcp.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/test/unit/dhcp/test_dhcp.c b/test/unit/dhcp/test_dhcp.c index 1b6d974a..4cefa33a 100644 --- a/test/unit/dhcp/test_dhcp.c +++ b/test/unit/dhcp/test_dhcp.c @@ -875,6 +875,9 @@ START_TEST(test_dhcp_nak_no_endmarker) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; u32_t xid; + struct dhcp* dhcp; + u8_t tries; + u16_t request_timeout; LWIP_UNUSED_ARG(_i); tcase = TEST_LWIP_DHCP_NAK_NO_ENDMARKER; @@ -889,9 +892,10 @@ START_TEST(test_dhcp_nak_no_endmarker) netif_set_up(&net_test); dhcp_start(&net_test); + dhcp = netif_dhcp_data(&net_test); fail_unless(txpacket == 1); /* DHCP discover sent */ - xid = netif_dhcp_data(&net_test)->xid; /* Write bad xid, not using htonl! */ + xid = dhcp->xid; /* Write bad xid, not using htonl! */ memcpy(&dhcp_offer[46], &xid, 4); send_pkt(&net_test, dhcp_offer, sizeof(dhcp_offer)); @@ -901,19 +905,25 @@ START_TEST(test_dhcp_nak_no_endmarker) fail_if(memcmp(&gw, &net_test.gw, sizeof(ip4_addr_t))); fail_unless(txpacket == 1); /* Nothing more sent */ - xid = htonl(netif_dhcp_data(&net_test)->xid); + xid = htonl(dhcp->xid); memcpy(&dhcp_offer[46], &xid, 4); /* insert correct transaction id */ send_pkt(&net_test, dhcp_offer, sizeof(dhcp_offer)); - - fail_unless(netif_dhcp_data(&net_test)->state == DHCP_STATE_REQUESTING); + + fail_unless(dhcp->state == DHCP_STATE_REQUESTING); fail_unless(txpacket == 2); /* No more sent */ - xid = htonl(netif_dhcp_data(&net_test)->xid); /* xid updated */ + xid = htonl(dhcp->xid); /* xid updated */ memcpy(&dhcp_nack_no_endmarker[46], &xid, 4); /* insert transaction id */ + tries = dhcp->tries; + request_timeout = dhcp->request_timeout; send_pkt(&net_test, dhcp_nack_no_endmarker, sizeof(dhcp_nack_no_endmarker)); - /* NAK should put us in another state for a while, no other way detecting it */ - fail_unless(netif_dhcp_data(&net_test)->state != DHCP_STATE_REQUESTING); + /* NAK should be ignored */ + fail_unless(dhcp->state == DHCP_STATE_REQUESTING); + fail_unless(txpacket == 2); /* No more sent */ + fail_unless(xid == htonl(dhcp->xid)); + fail_unless(tries == dhcp->tries); + fail_unless(request_timeout == dhcp->request_timeout); tcase = TEST_NONE; dhcp_stop(&net_test);