zephyr/tests/legacy/kernel/test_timer/microkernel
Anas Nashif 66cfcc26bc tests: introduce Makefile.test
To customise test builds and support test related features such as time
stamps and a boot banner, introduce a Makefile variant that is dedicated
to testing.

Initially we introduce a new config overlay that is used for all tests, in
this case we enable BOOT_BANNER and BUILD_TIMESTAMP. This will print the
current version and the date, useful when reporting bugs and also an
indicator that the system has booted before the test has started.

For example:

[QEMU] CPU: qemu32
***** BOOTING ZEPHYR OS v1.6.99 - BUILD: Dec 21 2016 19:57:13 *****
tc_start() - Test Nanokernel CPU and thread routines
Initializing nanokernel objects
...
..

Change-Id: I224318cdeb55a301964ea366dbc577e2e3a09175
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-01-03 17:48:44 +00:00
..
src kernel: Eliminate use of KERNEL_V2 configuration option 2016-11-12 12:04:39 +00:00
Makefile tests: introduce Makefile.test 2017-01-03 17:48:44 +00:00
prj.conf kernel: disable MDEF by default 2016-12-12 20:25:07 +00:00
prj.mdef tests: move kernel tests to tests/legacy 2016-11-01 13:42:17 -04:00
README.txt tests: move kernel tests to tests/legacy 2016-11-01 13:42:17 -04:00
testcase.ini samples: tests: tag all legacy test cases and samples 2016-11-30 21:45:22 +00: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