diff --git a/tests/kernel/systhreads/Makefile b/tests/kernel/systhreads/Makefile new file mode 100644 index 00000000000..4de50f93d4d --- /dev/null +++ b/tests/kernel/systhreads/Makefile @@ -0,0 +1,4 @@ +BOARD ?= qemu_x86 +CONF_FILE = prj.conf + +include ${ZEPHYR_BASE}/Makefile.inc diff --git a/tests/kernel/systhreads/README b/tests/kernel/systhreads/README new file mode 100644 index 00000000000..6607b29fd03 --- /dev/null +++ b/tests/kernel/systhreads/README @@ -0,0 +1,12 @@ +$make qemu + +Running test suite test_systhreads +tc_start() - test_systhreads_main +=================================================================== +PASS - test_systhreads_main. +tc_start() - test_systhreads_idle +=================================================================== +PASS - test_systhreads_idle. +=================================================================== +PROJECT EXECUTION SUCCESSFUL + diff --git a/tests/kernel/systhreads/prj.conf b/tests/kernel/systhreads/prj.conf new file mode 100644 index 00000000000..fec5cd40331 --- /dev/null +++ b/tests/kernel/systhreads/prj.conf @@ -0,0 +1,5 @@ +CONFIG_ZTEST=y +CONFIG_SYS_POWER_MANAGEMENT=y +CONFIG_SYS_POWER_LOW_POWER_STATE=y +CONFIG_TICKLESS_IDLE=y +CONFIG_LEGACY_KERNEL=n diff --git a/tests/kernel/systhreads/src/Makefile b/tests/kernel/systhreads/src/Makefile new file mode 100644 index 00000000000..bf94ad389d7 --- /dev/null +++ b/tests/kernel/systhreads/src/Makefile @@ -0,0 +1,3 @@ +include $(ZEPHYR_BASE)/tests/Makefile.test + +obj-y = main.o test_systhreads.o diff --git a/tests/kernel/systhreads/src/main.c b/tests/kernel/systhreads/src/main.c new file mode 100644 index 00000000000..c2b4e2c0a39 --- /dev/null +++ b/tests/kernel/systhreads/src/main.c @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2016 Intel Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @addtogroup t_kernel_threads + * @{ + * @defgroup t_systhreads test_systhreads + * @brief TestPurpose: verify 2 system threads - main thread and idle thread + * @} + */ + +#include +#include "test_systhreads.h" + +/* test case main entry */ +void test_main(void *p1, void *p2, void *p3) +{ + ARG_UNUSED(p1); + ARG_UNUSED(p2); + ARG_UNUSED(p3); + + test_systhreads_setup(); + ztest_test_suite(test_systhreads, + ztest_unit_test(test_systhreads_main), + ztest_unit_test(test_systhreads_idle)); + ztest_run_test_suite(test_systhreads); +} diff --git a/tests/kernel/systhreads/src/test_systhreads.c b/tests/kernel/systhreads/src/test_systhreads.c new file mode 100644 index 00000000000..c966c7920fa --- /dev/null +++ b/tests/kernel/systhreads/src/test_systhreads.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2016 Intel Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +static int main_prio; + +/* power hook functions if support */ +int _sys_soc_suspend(int32_t ticks) +{ + /** TESTPOINT: check idle thread priority */ + assert_true(k_thread_priority_get(k_current_get()) == + K_IDLE_PRIO, NULL); + return 0; +} + +/* test cases */ +void test_systhreads_setup(void) +{ + main_prio = k_thread_priority_get(k_current_get()); +} + +void test_systhreads_main(void) +{ + assert_true(main_prio == CONFIG_MAIN_THREAD_PRIORITY, NULL); +} + +void test_systhreads_idle(void) +{ + k_sleep(100); + /** TESTPOINT: check working thread priority should */ + assert_true(k_thread_priority_get(k_current_get()) < + K_IDLE_PRIO, NULL); +} diff --git a/tests/kernel/systhreads/src/test_systhreads.h b/tests/kernel/systhreads/src/test_systhreads.h new file mode 100644 index 00000000000..652fa4606db --- /dev/null +++ b/tests/kernel/systhreads/src/test_systhreads.h @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2016 Intel Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __TEST_SYSTHREADS_H__ +#define __TEST_SYSTHREADS_H__ + +void test_systhreads_setup(void); +void test_systhreads_main(void); +void test_systhreads_idle(void); + +#endif /* __TEST_SYSTHREADS_H__ */ diff --git a/tests/kernel/systhreads/testcase.ini b/tests/kernel/systhreads/testcase.ini new file mode 100644 index 00000000000..1648d3a56d1 --- /dev/null +++ b/tests/kernel/systhreads/testcase.ini @@ -0,0 +1,4 @@ +[test] +tags = kernel +# tickless is not supported on nios2 and riscv-machine +arch_exclude = nios2 riscv32