diff options
author | Wealian Liao <whliao@nuvoton.corp-partner.google.com> | 2021-03-08 14:47:59 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-03-10 03:53:34 +0000 |
commit | 819adb4fa98f5d32a373ebd63e668b1c1bc5b121 (patch) | |
tree | db3a05edc92e98757ebde2570b7e4577040bdc19 /zephyr/test | |
parent | 43fe3569949f74ece62d6a82829355c39a010d65 (diff) | |
download | chrome-ec-819adb4fa98f5d32a373ebd63e668b1c1bc5b121.tar.gz |
zephyr: add defer canceling
For the description of hook_call_deferred() in hooks.h, pass delay time
-1 to hook_call_deferred() should cancel the deferred call. Add
canceling to sync the original behavior in shim hook.
BRANCH=none
BUG=none
TEST=zmake testall
TEST=check defer is canceled by ` -1 ` parameter.
Signed-off-by: Wealian Liao <whliao@nuvoton.corp-partner.google.com>
Change-Id: I3e9743d5c19efbc8619fd5cbd61ff247db700af9
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2738912
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Diffstat (limited to 'zephyr/test')
-rw-r--r-- | zephyr/test/hooks/hooks.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/zephyr/test/hooks/hooks.c b/zephyr/test/hooks/hooks.c index 6b482b30cf..9f504d4ff4 100644 --- a/zephyr/test/hooks/hooks.c +++ b/zephyr/test/hooks/hooks.c @@ -120,6 +120,27 @@ static void test_deferred_func_push_out(void) "The deferred function was not called, but should have been"); } +static bool deferred_func_3_called; + +static void deferred_func_3(void) +{ + deferred_func_3_called = true; +} +DECLARE_DEFERRED(deferred_func_3); + +static void test_deferred_func_cancel(void) +{ + zassert_false( + deferred_func_3_called, + "The deferred function was called, but should not have been"); + hook_call_deferred(&deferred_func_3_data, DEFERRED_DELAY_US); + hook_call_deferred(&deferred_func_3_data, -1); + k_usleep(DEFERRED_DELAY_US * 2); + zassert_false( + deferred_func_3_called, + "The deferred function was called, but should not have been"); +} + void test_main(void) { ztest_test_suite( @@ -128,7 +149,8 @@ void test_main(void) ztest_unit_test(test_hook_list_single), ztest_unit_test(test_hook_list_empty), ztest_unit_test(test_deferred_func), - ztest_unit_test(test_deferred_func_push_out)); + ztest_unit_test(test_deferred_func_push_out), + ztest_unit_test(test_deferred_func_cancel)); ztest_run_test_suite(hooks_tests); } |