zephyr/tests/kernel
Andy Ross 86b5364335 tests/kernel: Add preemption priority test
This test exaustively tests preemption points between threads of all
priority classes (cooperative, preemptible, and metairq), done both
from a synchronous reschedule (via k_sem_give() and from interrupt
context (via irq_offload()), and with and without the sched_lock()
held.  It then detects the next thread that runs and validates vs. the
documented priority rules.

Note that there is a whitelisted case on ARM, where irq_offload()
seems not to be working like a true interrupt (it always returns to
the interrupted context and doesn't seem to hit the normal exception
return path which can context switch).  And native_posix is excluded
because of failures and the fact that it's actually never possible to
truly preempt a thread there (they run to completion inside _Swap()
et. al. and then block themselves).  Both of these should be fixable
in the future but don't (seem to) directly relate to this test.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-05-25 09:40:55 -07:00
..
alert/alert_api tests: alert: improve test documentation 2018-05-23 18:58:03 -04:00
arm_irq_vector_table tests: kernel: Add description for test cases 2018-05-18 02:10:35 +03:00
arm_runtime_nmi doc: fix misspellings in test documentation 2018-05-23 15:27:19 -05:00
boot_page_table tests: classify tests 2018-04-09 22:55:20 -04:00
common tests/kernel/common: Add rigorous integer typing test 2018-05-23 19:40:07 -07:00
context tests: Remove newline character 2018-05-23 12:59:12 -04:00
critical tests: critical: document test functions 2018-04-30 17:15:29 -04:00
device doc: process test documentation 2018-05-07 12:27:07 -04:00
early_sleep tests: rename main test to main.c 2018-05-07 12:27:07 -04:00
errno tests: errno: document test functions 2018-04-30 17:15:29 -04:00
fatal test: kernel: remove workaround for arm_mpu (keep for nxp_mpu) 2018-05-25 09:46:24 -05:00
fifo tests: fifo: improve test documentation 2018-05-23 18:58:03 -04:00
fp_sharing tests: fp_sharing: Fix definition of PI_NUM_ITERATIONS 2018-05-03 23:24:57 -04:00
gen_isr_table tests: classify tests 2018-04-09 22:55:20 -04:00
init tests: Remove newline character 2018-05-23 12:59:12 -04:00
irq_offload tests: Remove newline character 2018-05-23 12:59:12 -04:00
lifo tests: lifo: improve test documentation 2018-05-23 18:58:03 -04:00
mbox tests/kernel: Bump stack sizes for a few tests on qemu_x86 2018-05-19 07:00:55 +03:00
mem_heap/mheap_api_concept doc: fix misspellings in test documentation 2018-05-23 15:27:19 -05:00
mem_pool doc: fix misspellings in test documentation 2018-05-23 15:27:19 -05:00
mem_protect tests: Remove newline character 2018-05-23 12:59:12 -04:00
mem_slab tests: mslab_threadsafe: Check for return value 2018-05-24 10:56:58 -04:00
mp tests: kernel: style, tag, and category fixes 2018-04-25 14:18:15 +05:30
msgq/msgq_api tests: msgq: improve test documentation 2018-05-23 18:58:03 -04:00
mutex tests: Remove newline character 2018-05-23 12:59:12 -04:00
obj_tracing tests: Remove newline character 2018-05-23 12:59:12 -04:00
pending tests kernel pending: unitialized variable 2018-05-10 08:20:15 -07:00
pipe tests: pipe: improve test documentation 2018-05-23 18:58:03 -04:00
poll doc: tests: remove obsolete and bogus test groups 2018-05-18 01:48:31 +03:00
profiling/profiling_api doc: tests: remove obsolete and bogus test groups 2018-05-18 01:48:31 +03:00
queue tests: Remove newline character 2018-05-23 12:59:12 -04:00
sched/preempt tests/kernel: Add preemption priority test 2018-05-25 09:40:55 -07:00
semaphore tests: semaphore: improve test documentation 2018-05-23 18:58:03 -04:00
sleep tests/kernel: Bump stack sizes for a few tests on qemu_x86 2018-05-19 07:00:55 +03:00
smp tests: kernel: style, tag, and category fixes 2018-04-25 14:18:15 +05:30
spinlock tests: Remove newline character 2018-05-23 12:59:12 -04:00
stack tests: stack: improve test documentation 2018-05-23 18:58:03 -04:00
static_idt tests: Remove newline character 2018-05-23 12:59:12 -04:00
systhreads doc: tests: remove obsolete and bogus test groups 2018-05-18 01:48:31 +03:00
threads doc: fix misspellings in test documentation 2018-05-23 15:27:19 -05:00
tickless doc: tests: remove obsolete and bogus test groups 2018-05-18 01:48:31 +03:00
timer tests: kernel: timer: timer_api: Remove nonexistent config option 2018-05-23 17:57:06 -04:00
workq doc: tests: remove obsolete and bogus test groups 2018-05-18 01:48:31 +03:00
xip tests: rename main test to main.c 2018-05-07 12:27:07 -04:00