From ee842535a413098d619372621f300c6033e3845e Mon Sep 17 00:00:00 2001 From: Allan Stephens Date: Tue, 1 Nov 2016 16:10:38 -0500 Subject: [PATCH] unified/test: Adapt object tracing tests to unified kernel Change-Id: I657410d64432d2d09938bd19a4db482bc1f23529 Signed-off-by: Allan Stephens --- .../microkernel/src/object_monitor.c | 25 +++++++++++++++++++ .../test_obj_tracing/microkernel/testcase.ini | 2 +- .../test_obj_tracing/nanokernel/prj.conf | 1 + .../nanokernel/src/object_monitor.c | 22 ++++++++++++++++ .../test_obj_tracing/nanokernel/testcase.ini | 2 +- 5 files changed, 50 insertions(+), 2 deletions(-) diff --git a/tests/legacy/kernel/test_obj_tracing/microkernel/src/object_monitor.c b/tests/legacy/kernel/test_obj_tracing/microkernel/src/object_monitor.c index 2c12c6f1df2..63b679a53f3 100644 --- a/tests/legacy/kernel/test_obj_tracing/microkernel/src/object_monitor.c +++ b/tests/legacy/kernel/test_obj_tracing/microkernel/src/object_monitor.c @@ -38,6 +38,26 @@ #define IPM_THREAD 0 #endif /* CONFIG_IPM_CONSOLE_RECEIVER && CONFIG_PRINTK*/ +#if defined(CONFIG_KERNEL_V2) + +/* Must account for: + * N Philosopher threads + * 1 Object monitor thread + * 1 System idle thread + * 1 System workqueue thread + * 1 IPM console thread + */ + +#define TOTAL_THREADS (N_PHILOSOPHERS + 3 + IPM_THREAD) + +#define OBJ_LIST_NAME k_mutex +#define OBJ_LIST_TYPE struct k_mutex + +/* unified kernel doesn't support task-specific tracing, so it always passes */ +#define test_task_tracing() 1 + +#else + /* Must account for: * N Philosopher tasks * 1 Object monitor task @@ -80,11 +100,16 @@ static inline int test_task_tracing(void) return 0; } +#endif /* CONFIG_KERNEL_V2 */ + static inline int test_thread_monitor(void) { int obj_counter = 0; struct tcs *thread_list = NULL; + /* wait a bit to allow any initialization-only threads to terminate */ + task_sleep(100); + thread_list = (struct tcs *)SYS_THREAD_MONITOR_HEAD; while (thread_list != NULL) { if (thread_list->prio == -1) { diff --git a/tests/legacy/kernel/test_obj_tracing/microkernel/testcase.ini b/tests/legacy/kernel/test_obj_tracing/microkernel/testcase.ini index f4f84174741..d2e66f1be98 100644 --- a/tests/legacy/kernel/test_obj_tracing/microkernel/testcase.ini +++ b/tests/legacy/kernel/test_obj_tracing/microkernel/testcase.ini @@ -1,3 +1,3 @@ [test] -tags = core +tags = core unified_capable kernel = micro diff --git a/tests/legacy/kernel/test_obj_tracing/nanokernel/prj.conf b/tests/legacy/kernel/test_obj_tracing/nanokernel/prj.conf index 7f785a84049..45363974897 100644 --- a/tests/legacy/kernel/test_obj_tracing/nanokernel/prj.conf +++ b/tests/legacy/kernel/test_obj_tracing/nanokernel/prj.conf @@ -1,2 +1,3 @@ +CONFIG_NANO_TIMEOUTS=y CONFIG_DEBUG_TRACING_KERNEL_OBJECTS=y CONFIG_THREAD_MONITOR=y diff --git a/tests/legacy/kernel/test_obj_tracing/nanokernel/src/object_monitor.c b/tests/legacy/kernel/test_obj_tracing/nanokernel/src/object_monitor.c index f9fcc98c3c6..3e5878f23c4 100644 --- a/tests/legacy/kernel/test_obj_tracing/nanokernel/src/object_monitor.c +++ b/tests/legacy/kernel/test_obj_tracing/nanokernel/src/object_monitor.c @@ -38,6 +38,23 @@ #define IPM_THREAD 0 #endif /* CONFIG_IPM_CONSOLE_RECEIVER && CONFIG_PRINTK*/ +#if defined(CONFIG_KERNEL_V2) + +/* Must account for: + * N Philosopher threads + * 1 Object monitor thread + * 1 System idle thread + * 1 System workqueue thread + * 1 IPM console thread + */ + +#define TOTAL_THREADS (N_PHILOSOPHERS + 3 + IPM_THREAD) + +#define OBJ_LIST_NAME k_sem +#define OBJ_LIST_TYPE struct k_sem + +#else + /* Must account for: * N Philosopher fibers * 1 Object monitor fiber @@ -52,11 +69,16 @@ #define OBJ_LIST_NAME nano_sem #define OBJ_LIST_TYPE struct nano_sem +#endif /* CONFIG_KERNEL_V2 */ + static inline int test_thread_monitor(void) { int obj_counter = 0; struct tcs *thread_list = NULL; + /* wait a bit to allow any initialization-only threads to terminate */ + fiber_sleep(100); + thread_list = (struct tcs *)SYS_THREAD_MONITOR_HEAD; while (thread_list != NULL) { if (thread_list->prio == -1) { diff --git a/tests/legacy/kernel/test_obj_tracing/nanokernel/testcase.ini b/tests/legacy/kernel/test_obj_tracing/nanokernel/testcase.ini index 914a14535fc..f39b19d53b9 100644 --- a/tests/legacy/kernel/test_obj_tracing/nanokernel/testcase.ini +++ b/tests/legacy/kernel/test_obj_tracing/nanokernel/testcase.ini @@ -1,2 +1,2 @@ [test] -tags = core +tags = core unified_capable