zephyr/tests/kernel/test_sema/nanokernel
Yannis Damigos 60695b18a0 tests: kernel: reduce ram requirements
Reduces the amount of memory allocated for stack (both fiber
and task). This permits test_sema and test_mutex to compile
on boards like nucleo-f103rb. Sanitycheck script passes all
tests for test_sema and test_mutex.

This patch was verified on the emulated platforms and not
against real hardware boards.

Change-Id: Ie25288bbbbfa64bfc5f7463639bfb09639cc184f
Signed-off-by: Yannis Damigos <giannis.damigos@gmail.com>
2016-03-31 23:17:51 +00:00
..
src tests: kernel: reduce ram requirements 2016-03-31 23:17:51 +00:00
Makefile
README.txt
prj.conf
testcase.ini tests: kernel: reduce ram requirements 2016-03-31 23:17:51 +00: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