summaryrefslogtreecommitdiff
path: root/test/hooks.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/hooks.c')
-rw-r--r--test/hooks.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/test/hooks.c b/test/hooks.c
index fb7944cff1..26b02d511f 100644
--- a/test/hooks.c
+++ b/test/hooks.c
@@ -67,7 +67,12 @@ static int test_ticks(void)
uint64_t interval;
int error_pct;
- usleep(1500 * MSEC);
+ /*
+ * HOOK_SECOND must have been fired at least once when HOOK
+ * task starts. We only need to wait for just more than a second
+ * to allow it fires for the second time.
+ */
+ usleep(1300 * MSEC);
interval = tick_time[1].val - tick_time[0].val;
error_pct = (interval - HOOK_TICK_INTERVAL) * 100 /
@@ -93,22 +98,22 @@ static int test_priority(void)
static int test_deferred(void)
{
deferred_call_count = 0;
- hook_call_deferred(deferred_func, 10 * MSEC);
- usleep(20 * MSEC);
+ hook_call_deferred(deferred_func, 50 * MSEC);
+ usleep(100 * MSEC);
TEST_ASSERT(deferred_call_count == 1);
- hook_call_deferred(deferred_func, 10 * MSEC);
- usleep(5 * MSEC);
+ hook_call_deferred(deferred_func, 50 * MSEC);
+ usleep(25 * MSEC);
hook_call_deferred(deferred_func, -1);
- usleep(15 * MSEC);
+ usleep(75 * MSEC);
TEST_ASSERT(deferred_call_count == 1);
- hook_call_deferred(deferred_func, 10 * MSEC);
- usleep(5 * MSEC);
+ hook_call_deferred(deferred_func, 50 * MSEC);
+ usleep(25 * MSEC);
hook_call_deferred(deferred_func, -1);
- usleep(3 * MSEC);
- hook_call_deferred(deferred_func, 5 * MSEC);
- usleep(10 * MSEC);
+ usleep(15 * MSEC);
+ hook_call_deferred(deferred_func, 25 * MSEC);
+ usleep(50 * MSEC);
TEST_ASSERT(deferred_call_count == 2);
return EC_SUCCESS;