tests/kernel/threads_apis: Add case for CPU_MASK_PIN_ONLY
Add testing for the PIN_ONLY API variant (which has a separate run
queue per CPU). Predicate on SMP systems only, to keep needless
duplicate testing to a minimum.
Note that one of the cases in this test exercises an "all cpus" option
for the cpu mask, which is illegal when CONFIG_SCHED_CPU_MASK_PIN_ONLY
is set. Skip.
Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
diff --git a/tests/kernel/threads/thread_apis/src/test_threads_cpu_mask.c b/tests/kernel/threads/thread_apis/src/test_threads_cpu_mask.c
index d377908..739dbea 100644
--- a/tests/kernel/threads/thread_apis/src/test_threads_cpu_mask.c
+++ b/tests/kernel/threads/thread_apis/src/test_threads_cpu_mask.c
@@ -42,6 +42,13 @@
zassert_true(ret == -EINVAL, "");
for (pass = 0; pass < 4; pass++) {
+ if (IS_ENABLED(CONFIG_SCHED_CPU_MASK_PIN_ONLY) && pass == 1) {
+ /* Pass 1 enables more than one CPU in the
+ * mask, which is illegal when PIN_ONLY
+ */
+ continue;
+ }
+
child_has_run = false;
/* Create a thread at a higher priority, don't start
diff --git a/tests/kernel/threads/thread_apis/testcase.yaml b/tests/kernel/threads/thread_apis/testcase.yaml
index f1ede4a..f2404d4 100644
--- a/tests/kernel/threads/thread_apis/testcase.yaml
+++ b/tests/kernel/threads/thread_apis/testcase.yaml
@@ -2,3 +2,9 @@
kernel.threads.apis:
tags: kernel threads userspace ignore_faults
min_flash: 34
+ kernel.threads.apis.pinonly:
+ tags: kernel threads userspace ignore_faults
+ min_flash: 34
+ filter: CONFIG_SMP
+ extra_configs:
+ - CONFIG_SCHED_CPU_MASK_PIN_ONLY=y