zephyr/samples/nanokernel/test/test_stack
Benjamin Walsh 0dcad8331b clarify use of term 'context'
The term 'context' is vague and overloaded. Its usage for 'an execution
context' is now referred as such, in both comments and some APIs' names.
When the execution context can only be a fiber or a task (i.e. not an
ISR), it is referred to as a 'thread', again in comments and everywhere
in the code.

APIs that had their names changed:

  - nano_context_id_t is now nano_thread_id_t
  - context_self_get() is now sys_thread_self_get()
  - context_type_get() is now sys_execution_context_type_get()
  - context_custom_data_set/get() are now
    sys_thread_custom_data_set/get()

The 'context' prefix namespace does not have to be reserved by the
kernel anymore.

The Context Control Structure (CCS) data structure is now the Thread
Control Structure (TCS):

  - struct ccs is now struct tcs
  - tCCS is now tTCS

Change-Id: I7526a76c5b01e7c86333078e2d2e77c9feef5364
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
..
src clarify use of term 'context' 2016-02-05 20:15:27 -05:00
Makefile Renames supported platform configurations 2016-02-05 20:14:39 -05:00
prj_arm.conf samples: remove explicit enabling of SW_ISR_TABLE/DYNAMIC 2016-02-05 20:13:45 -05:00
prj_x86.conf irq_connect for x86 uses static stub array 2016-02-05 20:14:25 -05:00
README.txt Update Title in sample project README.txt files 2016-02-05 20:15:21 -05:00
testcase.ini initial commit for next-gen sanity checks 2016-02-05 20:14:42 -05:00

Title: Stack APIs

Description:

This test verifies that the nanokernel stack APIs operate as expected.

---------------------------------------------------------------------------

Building and Running Project:

This nanokernel project outputs to the console.  It can be built and executed
on QEMU as follows:

    make qemu

---------------------------------------------------------------------------

Troubleshooting:

Problems caused by out-dated project information can be addressed by
issuing one of the following commands then rebuilding the project:

    make clean          # discard results of previous builds
                        # but keep existing configuration info
or
    make pristine       # discard results of previous builds
                        # and restore pre-defined configuration info

---------------------------------------------------------------------------

Sample Output:

tc_start() - Test Nanokernel STACK
Test Task STACK Push

TASK STACK Put Order:  100, 200, 300, 400,
===================================================================
Test Fiber STACK Pop

FIBER STACK Pop: count = 0, data is 400
FIBER STACK Pop: count = 1, data is 300
FIBER STACK Pop: count = 2, data is 200
FIBER STACK Pop: count = 3, data is 100
PASS - fiber1.
===================================================================
Test Fiber STACK Push

FIBER STACK Put Order:  400, 300, 200, 100,
===================================================================
Test Task STACK Pop
TASK STACK Pop: count = 0, data is 100
TASK STACK Pop: count = 1, data is 200
TASK STACK Pop: count = 2, data is 300
TASK STACK Pop: count = 3, data is 400
===================================================================
Test STACK Pop Wait Interfaces

TASK  STACK Push to queue2: 100
Test Fiber STACK Pop Wait Interfaces

FIBER STACK Pop from queue2: 100
FIBER STACK Push to queue1: 200
TASK STACK Pop from queue1: 200
TASK STACK Push to queue2: 300
FIBER STACK Pop from queue2: 300
FIBER STACK Push to queue1: 400
PASS - testFiberStackPopW.
===================================================================
Test ISR STACK (invoked from Fiber)

ISR STACK (running in fiber context) Pop from queue1: 400
ISR STACK (running in fiber context) Push to queue1:
  150,   250,   350,   450,
PASS - testIsrStackFromFiber.
PASS - fiber2.
PASS - testTaskStackPopW.
===================================================================
Test ISR STACK (invoked from Task)

  Pop from queue1: count = 0, data is 450
  Pop from queue1: count = 1, data is 350
  Pop from queue1: count = 2, data is 250
  Pop from queue1: count = 3, data is 150

Test ISR STACK (invoked from Task) - push 450 and pop back 450
PASS - testIsrStackFromTask.
===================================================================
PASS - main.
===================================================================
PROJECT EXECUTION SUCCESSFUL