Skip to content

Commit 3955540

Browse files
ZhaoningxMaureenHelm
authored andcommitted
Kernel: poll: code coverage improvement
Add some testcases to test some unnormal branches, for covering branches that not covered.Meanwhile, Using the public fatal handler function to handle fatal errors. Signed-off-by: Ningx Zhao <[email protected]>
1 parent 23bb30a commit 3955540

File tree

4 files changed

+392
-2
lines changed

4 files changed

+392
-2
lines changed

tests/kernel/poll/prj.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@ CONFIG_POLL=y
33
CONFIG_DYNAMIC_OBJECTS=y
44
CONFIG_TEST_USERSPACE=y
55
CONFIG_MP_NUM_CPUS=1
6+
CONFIG_ZTEST_FATAL_HOOK=y
7+
CONFIG_ZTEST_ASSERT_HOOK=y
8+
CONFIG_SYS_CLOCK_EXISTS=y

tests/kernel/poll/src/main.c

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,40 @@ extern void test_poll_cancel_main_high_prio(void);
1313
extern void test_poll_multi(void);
1414
extern void test_poll_threadstate(void);
1515
extern void test_poll_grant_access(void);
16+
extern void test_poll_fail_grant_access(void);
17+
extern void test_poll_lower_prio(void);
18+
extern void test_condition_met_type_err(void);
19+
#ifdef CONFIG_USERSPACE
20+
extern void test_k_poll_user_num_err(void);
21+
extern void test_k_poll_user_mem_err(void);
22+
extern void test_k_poll_user_type_sem_err(void);
23+
extern void test_k_poll_user_type_signal_err(void);
24+
extern void test_k_poll_user_type_fifo_err(void);
25+
extern void test_poll_signal_init_null(void);
26+
extern void test_poll_signal_check_obj(void);
27+
extern void test_poll_signal_check_signal(void);
28+
extern void test_poll_signal_check_result(void);
29+
extern void test_poll_signal_raise_null(void);
30+
extern void test_poll_signal_reset_null(void);
31+
#else
32+
#define dummy_test(_name) \
33+
static void _name(void) \
34+
{ \
35+
ztest_test_skip(); \
36+
}
37+
38+
dummy_test(test_k_poll_user_num_err);
39+
dummy_test(test_k_poll_user_mem_err);
40+
dummy_test(test_k_poll_user_type_sem_err);
41+
dummy_test(test_k_poll_user_type_signal_err);
42+
dummy_test(test_k_poll_user_type_fifo_err);
43+
dummy_test(test_poll_signal_init_null);
44+
dummy_test(test_poll_signal_check_obj);
45+
dummy_test(test_poll_signal_check_signal);
46+
dummy_test(test_poll_signal_check_result);
47+
dummy_test(test_poll_signal_raise_null);
48+
dummy_test(test_poll_signal_reset_null);
49+
#endif /* CONFIG_USERSPACE */
1650

1751
#ifdef CONFIG_64BIT
1852
#define MAX_SZ 256
@@ -26,6 +60,7 @@ K_HEAP_DEFINE(test_heap, MAX_SZ * 4);
2660
void test_main(void)
2761
{
2862
test_poll_grant_access();
63+
test_poll_fail_grant_access();
2964

3065
k_thread_heap_assign(k_current_get(), &test_heap);
3166

@@ -36,6 +71,20 @@ void test_main(void)
3671
ztest_1cpu_unit_test(test_poll_cancel_main_low_prio),
3772
ztest_1cpu_unit_test(test_poll_cancel_main_high_prio),
3873
ztest_unit_test(test_poll_multi),
39-
ztest_1cpu_unit_test(test_poll_threadstate));
74+
ztest_1cpu_unit_test(test_poll_lower_prio),
75+
ztest_1cpu_unit_test(test_poll_threadstate),
76+
ztest_1cpu_unit_test(test_condition_met_type_err),
77+
ztest_user_unit_test(test_k_poll_user_num_err),
78+
ztest_user_unit_test(test_k_poll_user_mem_err),
79+
ztest_user_unit_test(test_k_poll_user_type_sem_err),
80+
ztest_user_unit_test(test_k_poll_user_type_signal_err),
81+
ztest_user_unit_test(test_k_poll_user_type_fifo_err),
82+
ztest_user_unit_test(test_poll_signal_init_null),
83+
ztest_user_unit_test(test_poll_signal_check_obj),
84+
ztest_user_unit_test(test_poll_signal_check_signal),
85+
ztest_user_unit_test(test_poll_signal_check_result),
86+
ztest_user_unit_test(test_poll_signal_raise_null),
87+
ztest_user_unit_test(test_poll_signal_reset_null)
88+
);
4089
ztest_run_test_suite(poll_api);
4190
}

0 commit comments

Comments
 (0)