tests: add test for k_timer_user_data_set/get()
Change-Id: I1baaa4d1a4c1626b3acdbeb4b0bfe58c9b8fff0c Signed-off-by: Benjamin Walsh <walsh.benj@gmail.com>
This commit is contained in:
parent
e4e98f9d7b
commit
7ddec7b471
3 changed files with 64 additions and 1 deletions
|
@ -39,6 +39,7 @@ void test_main(void *p1, void *p2, void *p3)
|
|||
ztest_unit_test(test_timer_status_get),
|
||||
ztest_unit_test(test_timer_status_get_anytime),
|
||||
ztest_unit_test(test_timer_status_sync),
|
||||
ztest_unit_test(test_timer_k_define));
|
||||
ztest_unit_test(test_timer_k_define),
|
||||
ztest_unit_test(test_timer_user_data));
|
||||
ztest_run_test_suite(test_timer_api);
|
||||
}
|
||||
|
|
|
@ -31,5 +31,6 @@ void test_timer_status_get(void);
|
|||
void test_timer_status_get_anytime(void);
|
||||
void test_timer_status_sync(void);
|
||||
void test_timer_k_define(void);
|
||||
void test_timer_user_data(void);
|
||||
|
||||
#endif /* __TEST_TIMER_H__ */
|
||||
|
|
|
@ -213,3 +213,64 @@ void test_timer_k_define(void)
|
|||
/* cleanup environment */
|
||||
k_timer_stop(&ktimer);
|
||||
}
|
||||
|
||||
/* k_timer_user_data_set/get test */
|
||||
|
||||
static void user_data_timer_handler(struct k_timer *timer);
|
||||
|
||||
static struct k_timer user_data_timer[5] = {
|
||||
K_TIMER_INITIALIZER(user_data_timer[0], user_data_timer_handler, NULL),
|
||||
K_TIMER_INITIALIZER(user_data_timer[1], user_data_timer_handler, NULL),
|
||||
K_TIMER_INITIALIZER(user_data_timer[2], user_data_timer_handler, NULL),
|
||||
K_TIMER_INITIALIZER(user_data_timer[3], user_data_timer_handler, NULL),
|
||||
K_TIMER_INITIALIZER(user_data_timer[4], user_data_timer_handler, NULL),
|
||||
};
|
||||
|
||||
static const intptr_t user_data[5] = {0x1337, 0xbabe, 0xd00d, 0xdeaf, 0xfade};
|
||||
|
||||
static int user_data_correct[5] = {0, 0, 0, 0, 0};
|
||||
|
||||
static void user_data_timer_handler(struct k_timer *timer)
|
||||
{
|
||||
int timer_num = timer == &user_data_timer[0] ? 0 :
|
||||
timer == &user_data_timer[1] ? 1 :
|
||||
timer == &user_data_timer[2] ? 2 :
|
||||
timer == &user_data_timer[3] ? 3 :
|
||||
timer == &user_data_timer[4] ? 4 : -1;
|
||||
|
||||
if (timer_num == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
intptr_t data_retrieved = (intptr_t)k_timer_user_data_get(timer);
|
||||
user_data_correct[timer_num] = user_data[timer_num] == data_retrieved;
|
||||
}
|
||||
|
||||
void test_timer_user_data(void)
|
||||
{
|
||||
int ii;
|
||||
|
||||
for (ii = 0; ii < 5; ii++) {
|
||||
intptr_t check;
|
||||
|
||||
k_timer_user_data_set(&user_data_timer[ii],
|
||||
(void *)user_data[ii]);
|
||||
check = (intptr_t)k_timer_user_data_get(&user_data_timer[ii]);
|
||||
|
||||
assert_true(check == user_data[ii], NULL);
|
||||
}
|
||||
|
||||
for (ii = 0; ii < 5; ii++) {
|
||||
k_timer_start(&user_data_timer[ii], 50 + ii * 50, 0);
|
||||
}
|
||||
|
||||
k_sleep(50 * ii + 50);
|
||||
|
||||
for (ii = 0; ii < 5; ii++) {
|
||||
k_timer_stop(&user_data_timer[ii]);
|
||||
}
|
||||
|
||||
for (ii = 0; ii < 5; ii++) {
|
||||
assert_true(user_data_correct[ii], NULL);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue