From 54ffb34f3ffb274e44fa41bf26a94a7f0f4a03d8 Mon Sep 17 00:00:00 2001 From: Falk Werner Date: Sat, 27 Apr 2019 16:53:25 +0200 Subject: [PATCH] increases coverage of timer test --- test/test_timer.cc | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/test/test_timer.cc b/test/test_timer.cc index d33dea8..b838147 100644 --- a/test/test_timer.cc +++ b/test/test_timer.cc @@ -49,6 +49,23 @@ TEST(timer, trigger) wf_impl_timeout_manager_cleanup(&manager); } +TEST(timer, trigger_on_cleanup) +{ + struct wf_impl_timeout_manager manager; + struct wf_impl_timer timer; + + wf_impl_timeout_manager_init(&manager); + wf_impl_timer_init(&timer, &manager); + + bool triggered = false; + wf_impl_timer_start(&timer, wf_impl_timepoint_in_msec(5 * 60 * 1000), &on_timeout, reinterpret_cast(&triggered)); + + wf_impl_timeout_manager_cleanup(&manager); + ASSERT_TRUE(triggered); + + wf_impl_timer_cleanup(&timer); +} + TEST(timer, cancel) { struct wf_impl_timeout_manager manager; @@ -69,6 +86,37 @@ TEST(timer, cancel) wf_impl_timeout_manager_cleanup(&manager); } +TEST(timer, cancel_multiple_timers) +{ + static size_t const count = 5; + struct wf_impl_timeout_manager manager; + struct wf_impl_timer timer[count]; + + wf_impl_timeout_manager_init(&manager); + + bool triggered = false; + for(size_t i = 0; i < count; i++) + { + wf_impl_timer_init(&timer[i], &manager); + wf_impl_timer_start(&timer[i], wf_impl_timepoint_in_msec(0), &on_timeout, &triggered); + } + + msleep(10); + for(size_t i = 0; i < count; i++) + { + wf_impl_timer_cancel(&timer[i]); + } + + wf_impl_timeout_manager_check(&manager); + ASSERT_FALSE(triggered); + + for(size_t i = 0; i < count; i++) + { + wf_impl_timer_cleanup(&timer[0]); + } + wf_impl_timeout_manager_cleanup(&manager); +} + TEST(timer, multiple_timers) { static size_t const count = 5;