zephyr/tests/kernel/test_context/src
Andrew Boie 96cadd1a9a arc: move special-purpose irq priorities to flags
We have already done this on x86 and ARM. The policy is as follows:

* IRQ priority levels starting at 0 all have the same semantics and
do not have special properties. The priority level is either ignored
on arches which do not support programmable priority levels, or lower
priority levels take precedence over higher ones.
* Special-case priorty levels are specified via flags, in which case
the supplied priority level is ignored.

Issue: ZEP-60
Change-Id: Ic603f49299ee1426fb9350ca29d0b8ef96a1d53a
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-07-26 15:06:28 +00:00
..
context.c arc: move special-purpose irq priorities to flags 2016-07-26 15:06:28 +00:00
Makefile build: move from srctree to ZEPHYR_BASE for app include paths 2016-06-30 14:36:39 +00:00
README tests: move kernel tests to tests/ 2016-02-11 18:06:33 +00:00

APIs tested in this test set
============================

fiber_fiber_start
  - start a helper fiber to help with fiber_yield() tests

task_fiber_start
  - start a fiber to test fiber related functionality

fiber_yield
  - Called by a higher priority fiber when there is another fiber
  - Called by an equal priority fiber when there is another fiber
  - Called by a lower priority fiber when there is another fiber

sys_thread_self_get
  - Called from an ISR (interrupted a task)
  - Called from an ISR (interrupted a fiber)
  - Called from a task
  - Called from a fiber

sys_execution_context_type_get
  - Called from an ISR that interrupted a task
  - Called from an ISR that interrupted a fiber
  - Called from a task
  - Called from a fiber

nano_cpu_idle
  - CPU to be woken up by tick timer.  Thus, after each call, the tick count
    should have advanced by one tick.

irq_lock
  - 1. Count the number of calls to sys_tick_get_32() before a tick expires.
  - 2. Once determined, call sys_tick_get_32() many more times than that
       with interrupts locked.  Check that the tick count remains unchanged.

irq_unlock
  - Continuation irq_lock: unlock interrupts, loop and verify the tick
    count changes.

irq_offload
  - Used when triggering an ISR to perform ISR context work.

nanoCpuExcConnect
  - Used during nanokernel object initialization.  Verified by triggering a
    divide-by-zero exception.  The handler skips us over the offending
    instruction.

irq_enable
irq_disable
  - Use these routines to disable and enable timer interrupts so that they can
    be tested in the same way as irq_lock() and irq_unlock().