zephyr/tests/kernel/test_sema/nanokernel
Benjamin Walsh 87f1232770 unified/tests: tag working some tests kernel as 'unified_capable'
This allows running the sanitycheck with:

  --tag unified_capable -x KERNEL_TYPE=unified

to run the unified kernel with the tests it is currently known to be
able to run.

Change-Id: Ic145fc6adca162745887672372226fd67447b34a
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-09-13 17:12:55 -04:00
..
src unified/test_sema: fix isr wrapper names 2016-09-13 17:12:55 -04:00
Makefile
README.txt
prj.conf
testcase.ini unified/tests: tag working some tests kernel as 'unified_capable' 2016-09-13 17:12:55 -04:00

README.txt

Title: Semaphore APIs

Description:

This test verifies that the nanokernel semaphore 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 Semaphores
Nano objects initialized
Giving and taking a semaphore in a task (non-blocking)
Giving and taking a semaphore in an ISR (non-blocking)
Giving and taking a semaphore in a fiber (non-blocking)
Semaphore from the task woke the fiber
Semaphore from the fiber woke the task
Semaphore from the ISR woke the task.
First pass
multiple-waiter fiber 0 trying to get semaphore...
multiple-waiter fiber 1 trying to get semaphore...
multiple-waiter fiber 2 trying to get semaphore...
multiple-waiter fiber 0 acquired semaphore, sending reply
multiple-waiter fiber 1 acquired semaphore, sending reply
multiple-waiter fiber 2 acquired semaphore, sending reply
Task took multi-waiter reply semaphore 3 times, as expected.
Second pass
multiple-waiter fiber 0 trying to get semaphore...
multiple-waiter fiber 1 trying to get semaphore...
multiple-waiter fiber 2 trying to get semaphore...
multiple-waiter fiber 0 acquired semaphore, sending reply
multiple-waiter fiber 1 acquired semaphore, sending reply
multiple-waiter fiber 2 acquired semaphore, sending reply
Task took multi-waiter reply semaphore 3 times, as expected.
test nano_task_sem_take() with timeout > 0
nano_task_sem_take() timed out as expected
nano_task_sem_take() got sem in time, as expected
testing timeouts of 5 fibers on same sem
 got fiber (q order: 2, t/o: 10, sem: 200001c8) as expected
 got fiber (q order: 3, t/o: 15, sem: 200001c8) as expected
 got fiber (q order: 0, t/o: 20, sem: 200001c8) as expected
 got fiber (q order: 4, t/o: 25, sem: 200001c8) as expected
 got fiber (q order: 1, t/o: 30, sem: 200001c8) as expected
testing timeouts of 9 fibers on different sems
 got fiber (q order: 0, t/o: 10, sem: 200001d4) as expected
 got fiber (q order: 5, t/o: 15, sem: 200001c8) as expected
 got fiber (q order: 7, t/o: 20, sem: 200001c8) as expected
 got fiber (q order: 1, t/o: 25, sem: 200001c8) as expected
 got fiber (q order: 8, t/o: 30, sem: 200001d4) as expected
 got fiber (q order: 2, t/o: 35, sem: 200001c8) as expected
 got fiber (q order: 6, t/o: 40, sem: 200001c8) as expected
 got fiber (q order: 4, t/o: 45, sem: 200001d4) as expected
 got fiber (q order: 3, t/o: 50, sem: 200001d4) as expected
testing 5 fibers timing out, but obtaining the sem in time
(except the last one, which times out)
 got fiber (q order: 0, t/o: 20, sem: 200001c8) as expected
 got fiber (q order: 1, t/o: 30, sem: 200001c8) as expected
 got fiber (q order: 2, t/o: 10, sem: 200001c8) as expected
 got fiber (q order: 3, t/o: 15, sem: 200001c8) as expected
 got fiber (q order: 4, t/o: 25, sem: 200001c8) as expected
===================================================================
PASS - main.
===================================================================
PROJECT EXECUTION SUCCESSFUL