diff options
| author | Dirk Ziegelmeier <[email protected]> | 2018-01-12 12:37:16 +0100 |
|---|---|---|
| committer | Dirk Ziegelmeier <[email protected]> | 2018-01-12 12:37:16 +0100 |
| commit | 990c25d4f328d49fa8c68412b458e94a2de4aaf4 (patch) | |
| tree | b0273d4f17d76ff4fb279c306218fc0e46f360e8 /test | |
| parent | 6ccd12b97c97c97deab500f34e2555f398ae2e6d (diff) | |
Add unit test for a long running timer
Diffstat (limited to 'test')
| -rw-r--r-- | test/unit/core/test_timers.c | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/test/unit/core/test_timers.c b/test/unit/core/test_timers.c index 39804230..820b7189 100644 --- a/test/unit/core/test_timers.c +++ b/test/unit/core/test_timers.c @@ -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); } |
