From 967ee03271e95cb1cf75e5e6aeebb260b276fcd9 Mon Sep 17 00:00:00 2001 From: Andrew Boie Date: Sun, 8 Oct 2017 12:53:01 -0700 Subject: [PATCH] tests: thread_init: run in user mode main.c and test_thread_init.c merged. All tests which don't require cooperative priorities now running in user mode. Userspace tag added to testcase.yaml. Signed-off-by: Andrew Boie --- .../lifecycle/thread_init/src/Makefile | 2 +- .../threads/lifecycle/thread_init/src/main.c | 24 ------------------ .../thread_init/src/test_thread_init.c | 25 ++++++++++++++++--- .../lifecycle/thread_init/testcase.yaml | 2 +- 4 files changed, 23 insertions(+), 30 deletions(-) delete mode 100644 tests/kernel/threads/lifecycle/thread_init/src/main.c diff --git a/tests/kernel/threads/lifecycle/thread_init/src/Makefile b/tests/kernel/threads/lifecycle/thread_init/src/Makefile index 19c71af1ae3..6896952afa7 100644 --- a/tests/kernel/threads/lifecycle/thread_init/src/Makefile +++ b/tests/kernel/threads/lifecycle/thread_init/src/Makefile @@ -1,3 +1,3 @@ include $(ZEPHYR_BASE)/tests/Makefile.test -obj-y = main.o test_thread_init.o +obj-y = test_thread_init.o diff --git a/tests/kernel/threads/lifecycle/thread_init/src/main.c b/tests/kernel/threads/lifecycle/thread_init/src/main.c deleted file mode 100644 index 4cf7778cd14..00000000000 --- a/tests/kernel/threads/lifecycle/thread_init/src/main.c +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2016 Intel Corporation - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include - -/*declare test cases */ -extern void test_kdefine_preempt_thread(void); -extern void test_kdefine_coop_thread(void); -extern void test_kinit_preempt_thread(void); -extern void test_kinit_coop_thread(void); - -/*test case main entry*/ -void test_main(void) -{ - ztest_test_suite(test_thread_init, - ztest_unit_test(test_kdefine_preempt_thread), - ztest_unit_test(test_kdefine_coop_thread), - ztest_unit_test(test_kinit_preempt_thread), - ztest_unit_test(test_kinit_coop_thread)); - ztest_run_test_suite(test_thread_init); -} diff --git a/tests/kernel/threads/lifecycle/thread_init/src/test_thread_init.c b/tests/kernel/threads/lifecycle/thread_init/src/test_thread_init.c index 2cd50d6dabf..db022f95147 100644 --- a/tests/kernel/threads/lifecycle/thread_init/src/test_thread_init.c +++ b/tests/kernel/threads/lifecycle/thread_init/src/test_thread_init.c @@ -29,14 +29,14 @@ #define INIT_COOP_P1 ((void *)0xFFFF0000) #define INIT_COOP_P2 ((void *)0xCDEF) #define INIT_COOP_P3 ((void *)0x1234) -#define INIT_COOP_OPTION 0 +#define INIT_COOP_OPTION (K_USER | K_INHERIT_PERMS) #define INIT_COOP_DELAY 2000 #define INIT_PREEMPT_PRIO 1 #define INIT_PREEMPT_STACK_SIZE 499 #define INIT_PREEMPT_P1 ((void *)5) #define INIT_PREEMPT_P2 ((void *)6) #define INIT_PREEMPT_P3 ((void *)7) -#define INIT_PREEMPT_OPTION 0 +#define INIT_PREEMPT_OPTION (K_USER | K_INHERIT_PERMS) #define INIT_PREEMPT_DELAY K_NO_WAIT static void thread_entry(void *p1, void *p2, void *p3); @@ -53,11 +53,14 @@ K_SEM_DEFINE(start_sema, 0, 1); K_SEM_DEFINE(end_sema, 0, 1); +K_THREAD_ACCESS_GRANT(T_KDEFINE_COOP_THREAD, &start_sema, &end_sema); +K_THREAD_ACCESS_GRANT(T_KDEFINE_PREEMPT_THREAD, &start_sema, &end_sema); + /*local variables*/ static K_THREAD_STACK_DEFINE(stack_coop, INIT_COOP_STACK_SIZE); static K_THREAD_STACK_DEFINE(stack_preempt, INIT_PREEMPT_STACK_SIZE); -static struct k_thread thread_coop; -static struct k_thread thread_preempt; +__kernel static struct k_thread thread_coop; +__kernel static struct k_thread thread_preempt; static u64_t t_create; static struct thread_data { int init_prio; @@ -194,3 +197,17 @@ void test_kinit_coop_thread(void) /*wait for thread to exit*/ k_sem_take(&end_sema, K_FOREVER); } + +/*test case main entry*/ +void test_main(void) +{ + k_thread_access_grant(k_current_get(), &thread_preempt, &stack_preempt, + &start_sema, &end_sema, NULL); + + ztest_test_suite(test_thread_init, + ztest_user_unit_test(test_kdefine_preempt_thread), + ztest_user_unit_test(test_kdefine_coop_thread), + ztest_user_unit_test(test_kinit_preempt_thread), + ztest_unit_test(test_kinit_coop_thread)); + ztest_run_test_suite(test_thread_init); +} diff --git a/tests/kernel/threads/lifecycle/thread_init/testcase.yaml b/tests/kernel/threads/lifecycle/thread_init/testcase.yaml index 6e1cd00ebfc..8225b5c5f0f 100644 --- a/tests/kernel/threads/lifecycle/thread_init/testcase.yaml +++ b/tests/kernel/threads/lifecycle/thread_init/testcase.yaml @@ -1,3 +1,3 @@ tests: - test: - tags: kernel threads + tags: kernel threads userspace