zephyr/tests/legacy/kernel/test_sema/nanokernel
David B. Kinder ac74d8b652 license: Replace Apache boilerplate with SPDX tag
Replace the existing Apache 2.0 boilerplate header with an SPDX tag
throughout the zephyr code tree. This patch was generated via a
script run over the master branch.

Also updated doc/porting/application.rst that had a dependency on
line numbers in a literal include.

Manually updated subsys/logging/sys_log.c that had a malformed
header in the original file.  Also cleanup several cases that already
had a SPDX tag and we either got a duplicate or missed updating.

Jira: ZEP-1457

Change-Id: I6131a1d4ee0e58f5b938300c2d2fc77d2e69572c
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-19 03:50:58 +00:00
..
src license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
Makefile tests: introduce Makefile.test 2017-01-03 17:48:44 +00:00
README.txt
prj.conf samples/tests: reduce ram & code size for failing tests on nRF5x boards 2017-01-10 02:23:23 +00:00
testcase.ini samples: tests: tag all legacy test cases and samples 2016-11-30 21:45:22 +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