zephyr/tests/kernel/test_timer/microkernel
Allan Stephens 1d07bd1bff unified: Eliminate support for dynamic timers
Gets rid of official support for dynamic timer allocation
in the unified kernel, since users can easily define and
initialize timers at any time. Legacy support for dynamic
timers is maintained for backwards compatibility reasons
for the time being ...

Change-Id: I12b3e25914fe11e3886065bee4e96fb96f59b299
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-10-13 13:54:00 +00:00
..
src unified: Eliminate support for dynamic timers 2016-10-13 13:54:00 +00:00
Makefile tests: remove duplicate kernel configs and usage of ARCH 2016-05-23 16:46:08 +00:00
prj.conf k_timer: Don't allocate dynamic timers by default 2016-09-23 18:25:37 +00:00
prj.mdef tests: move kernel tests to tests/ 2016-02-11 18:06:33 +00:00
README.txt tests: move kernel tests to tests/ 2016-02-11 18:06:33 +00:00
testcase.ini unified/tests: tag working some tests kernel as 'unified_capable' 2016-09-13 17:12:55 -04:00

Title: Low Resolution Timer

Description:

This test verifies the following low resolution microkernel timer APIs operate
as expected:
  task_timer_alloc (), task_timer_free()
  task_timer_start(), task_timer_restart(), task_timer_stop()
  sys_tick_delta(), sys_tick_get_32()

Also verifies the nanokernel timeouts can work alongside the microkernel timers.

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

Building and Running Project:

This microkernel 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:

Starting timer tests
===================================================================
Test the allocation of timers.
Test the one shot feature of a timer.
test nano_task_fifo_get with timeout > 0
nano_task_fifo_get timed out as expected
nano_task_fifo_get got fifo in time, as expected
testing timeouts of 5 fibers on same fifo
 got fiber (q order: 2, t/o: 10, fifo 00109134) as expected
 got fiber (q order: 3, t/o: 15, fifo 00109134) as expected
 got fiber (q order: 0, t/o: 20, fifo 00109134) as expected
 got fiber (q order: 4, t/o: 25, fifo 00109134) as expected
 got fiber (q order: 1, t/o: 30, fifo 00109134) as expected
testing timeouts of 9 fibers on different fifos
 got fiber (q order: 0, t/o: 10, fifo 00109140) as expected
 got fiber (q order: 5, t/o: 15, fifo 00109134) as expected
 got fiber (q order: 7, t/o: 20, fifo 00109134) as expected
 got fiber (q order: 1, t/o: 25, fifo 00109134) as expected
 got fiber (q order: 8, t/o: 30, fifo 00109140) as expected
 got fiber (q order: 2, t/o: 35, fifo 00109134) as expected
 got fiber (q order: 6, t/o: 40, fifo 00109134) as expected
 got fiber (q order: 4, t/o: 45, fifo 00109140) as expected
 got fiber (q order: 3, t/o: 50, fifo 00109140) as expected
testing 5 fibers timing out, but obtaining the data in time
(except the last one, which times out)
 got fiber (q order: 0, t/o: 20, fifo 00109134) as expected
 got fiber (q order: 1, t/o: 30, fifo 00109134) as expected
 got fiber (q order: 2, t/o: 10, fifo 00109134) as expected
 got fiber (q order: 3, t/o: 15, fifo 00109134) as expected
 got fiber (q order: 4, t/o: 25, fifo 00109134) as expected
===================================================================
PASS - test_fifo_timeout.
Test that a timer does not start.
Test the periodic feature of a timer
Test the stopping of a timer
Verifying the nanokernel timeouts worked
===================================================================
PROJECT EXECUTION SUCCESSFUL