zephyr/tests/kernel/test_sema/microkernel/src
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
..
main.c tests: move kernel tests to tests/ 2016-02-11 18:06:33 +00:00
Makefile move include directory for tests cases to tests/ 2016-02-11 18:08:08 +00:00
README tests: move kernel tests to tests/ 2016-02-11 18:06:33 +00:00
sema.c tests: move kernel tests to tests/ 2016-02-11 18:06:33 +00:00
test_fiber.c tests: kernel: reduce ram requirements 2016-03-31 23:17:51 +00:00

The semaphore test suite checks the following ...

1. Signal a semaphore from an ISR 5 times.
2. Check the semaphore status from the task.
3. Take the semaphore 8 times.  First 5 should succeed; next three should fail.
4. Wait for up to XX ticks for the semaphore.  This should timeout.
5. Wait for up to XX ticks for the semaphore.  Have an ISR give the semaphore.
6. Wait for up to XX ticks for the semaphore.  Have a task give the semaphore.
7. Multiple tasks wait for the semaphore.  Highest priority task gets it.
8. Wait on a group of semaphores--timeout.
9. Wait on a group of semaphores
    - Wake on receipt of each semaphore (test done for each sem in group)
        - Semaphore signalled from ISR
        - Semaphore signalled from task
    - Wake on receipt of many semaphores (test done for various combos)
        - Can only be done from a task
    - task_sem_count_get() performed on semaphores in group before and signalling
10. Give semaphore a number of times, then call task_sem_reset()
11. Give many semaphores a number of times, then call task_sem_group_take()
12. Tests signaling semaphore from a fiber:
    - task waits on a semaphore and fiber signals it
    - fiber signals the semaphore N times, task checks that task_sem_count_get is N
    - task waits on a semaphore group and fiber signals each of them once. Task
      checks which of the semaphores has been signaled