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