Ensure that unit tests leave the stack in a clean state

This commit is contained in:
goldsimon
2017-08-03 22:25:33 +02:00
parent 6fa5d02435
commit 4cec20230e
12 changed files with 77 additions and 1 deletions

View File

@@ -121,7 +121,8 @@ static enum tcase {
TEST_LWIP_DHCP_NAK,
TEST_LWIP_DHCP_RELAY,
TEST_LWIP_DHCP_NAK_NO_ENDMARKER,
TEST_LWIP_DHCP_INVALID_OVERLOAD
TEST_LWIP_DHCP_INVALID_OVERLOAD,
TEST_NONE
} tcase;
static int debug = 0;
@@ -188,10 +189,12 @@ static err_t testif_init(struct netif *netif)
static void dhcp_setup(void)
{
txpacket = 0;
lwip_check_ensure_no_alloc(SKIP_POOL(MEMP_SYS_TIMEOUT));
}
static void dhcp_teardown(void)
{
lwip_check_ensure_no_alloc(SKIP_POOL(MEMP_SYS_TIMEOUT));
}
static void check_pkt(struct pbuf *p, u32_t pos, const u8_t *mem, u32_t len)
@@ -490,6 +493,9 @@ START_TEST(test_dhcp)
fail_if(memcmp(&netmask, &net_test.netmask, sizeof(ip4_addr_t)));
fail_if(memcmp(&gw, &net_test.gw, sizeof(ip4_addr_t)));
tcase = TEST_NONE;
dhcp_stop(&net_test);
dhcp_cleanup(&net_test);
netif_remove(&net_test);
}
END_TEST
@@ -552,6 +558,9 @@ START_TEST(test_dhcp_nak)
fail_unless(txpacket == 4); /* DHCP nak sent */
tcase = TEST_NONE;
dhcp_stop(&net_test);
dhcp_cleanup(&net_test);
netif_remove(&net_test);
}
END_TEST
@@ -796,6 +805,9 @@ START_TEST(test_dhcp_relayed)
fail_unless(txpacket == 7, "txpacket = %d", txpacket);
tcase = TEST_NONE;
dhcp_stop(&net_test);
dhcp_cleanup(&net_test);
netif_remove(&net_test);
}
@@ -899,6 +911,9 @@ START_TEST(test_dhcp_nak_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);
tcase = TEST_NONE;
dhcp_stop(&net_test);
dhcp_cleanup(&net_test);
netif_remove(&net_test);
}
END_TEST
@@ -1005,6 +1020,9 @@ START_TEST(test_dhcp_invalid_overload)
fail_unless(txpacket == 2); /* No more sent */
xid = htonl(netif_dhcp_data(&net_test)->xid); /* xid updated */
tcase = TEST_NONE;
dhcp_stop(&net_test);
dhcp_cleanup(&net_test);
netif_remove(&net_test);
}
END_TEST