|
|
@@ -187,6 +187,38 @@ START_TEST(test_timers)
|
|
|
}
|
|
|
END_TEST
|
|
|
|
|
|
+START_TEST(test_long_timer)
|
|
|
+{
|
|
|
+ LWIP_UNUSED_ARG(_i);
|
|
|
+
|
|
|
+ memset(&fired, 0, sizeof(fired));
|
|
|
+ lwip_sys_now = 0;
|
|
|
+
|
|
|
+ sys_timeout(LWIP_UINT32_MAX / 4, dummy_handler, LWIP_PTR_NUMERIC_CAST(void*, 0));
|
|
|
+ fail_unless(sys_timeouts_sleeptime() == LWIP_UINT32_MAX / 4);
|
|
|
+
|
|
|
+ sys_check_timeouts();
|
|
|
+ fail_unless(fired[0] == 0);
|
|
|
+
|
|
|
+ lwip_sys_now += LWIP_UINT32_MAX / 8;
|
|
|
+
|
|
|
+ sys_check_timeouts();
|
|
|
+ fail_unless(fired[0] == 0);
|
|
|
+
|
|
|
+ lwip_sys_now += LWIP_UINT32_MAX / 8;
|
|
|
+
|
|
|
+ sys_check_timeouts();
|
|
|
+ fail_unless(fired[0] == 0);
|
|
|
+
|
|
|
+ lwip_sys_now += 1;
|
|
|
+
|
|
|
+ sys_check_timeouts();
|
|
|
+ fail_unless(fired[0] == 1);
|
|
|
+
|
|
|
+ sys_untimeout(dummy_handler, LWIP_PTR_NUMERIC_CAST(void*, 0));
|
|
|
+}
|
|
|
+END_TEST
|
|
|
+
|
|
|
/** Create the suite including all tests for this module */
|
|
|
Suite *
|
|
|
timers_suite(void)
|
|
|
@@ -194,7 +226,8 @@ timers_suite(void)
|
|
|
testfunc tests[] = {
|
|
|
TESTFUNC(test_bug52748),
|
|
|
TESTFUNC(test_cyclic_timers),
|
|
|
- TESTFUNC(test_timers)
|
|
|
+ TESTFUNC(test_timers),
|
|
|
+ TESTFUNC(test_long_timer),
|
|
|
};
|
|
|
return create_suite("TIMERS", tests, LWIP_ARRAYSIZE(tests), timers_setup, timers_teardown);
|
|
|
}
|