zephyr/tests/benchmark/sys_kernel/nanokernel
Inaky Perez-Gonzalez 960a498182 benchmark/sys_kernel: use TC_PRINT_RUNID
For automation to detect this is the right test case being executed,
print the RUNID if defined

This TC doesn't use TC_*() macros, so we need to invoke it manually.

Change-Id: I6f7417621d649a59412bb92d8b665130757d926a
Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
2016-06-14 22:01:27 +00:00
..
src benchmark/sys_kernel: use TC_PRINT_RUNID 2016-06-14 22:01:27 +00:00
Makefile move benchmark applications to tests/benchmark/ 2016-02-11 13:08:44 -05:00
prj_console.conf samples/tests: remove old message about standard security 2016-03-07 16:07:35 +00:00
README.txt benchmark: Remove trailing whitespaces. 2016-04-09 10:32:09 +00:00
testcase.ini move benchmark applications to tests/benchmark/ 2016-02-11 13:08:44 -05:00

Title: Nanokernel Object Performance

Description:

The SysKernel test measures the performance of the nanokernel's semaphore,
lifo, fifo, and stack objects.

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

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:

MODULE: Nanokernel API test
KERNEL VERSION: <varies>

Each test below are repeated 5000 times and the average
time for one iteration is displayed.

TEST CASE: Semaphore #1
TEST COVERAGE:
	nano_sem_init
	nano_fiber_sem_take(TICKS_UNLIMITED)
	nano_fiber_sem_give
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: Semaphore #2
TEST COVERAGE:
	nano_sem_init
	nano_fiber_sem_take(TICKS_NONE)
	fiber_yield
	nano_fiber_sem_give
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: Semaphore #3
TEST COVERAGE:
	nano_sem_init
	nano_fiber_sem_take(TICKS_UNLIMITED)
	nano_fiber_sem_give
	nano_task_sem_give
	nano_task_sem_take(TICKS_UNLIMITED)
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: LIFO #1
TEST COVERAGE:
	nano_lifo_init
	nano_fiber_lifo_get(TICKS_UNLIMITED)
	nano_fiber_lifo_put
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: LIFO #2
TEST COVERAGE:
	nano_lifo_init
	nano_fiber_lifo_get(TICKS_UNLIMITED)
	nano_fiber_lifo_get(TICKS_NONE)
	nano_fiber_lifo_put
	fiber_yield
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: LIFO #3
TEST COVERAGE:
	nano_lifo_init
	nano_fiber_lifo_get(TICKS_UNLIMITED)
	nano_fiber_lifo_put
	nano_task_lifo_get(TICKS_UNLIMITED)
	nano_task_lifo_put
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: FIFO #1
TEST COVERAGE:
	nano_fifo_init
	nano_fiber_fifo_get(TICKS_UNLIMITED)
	nano_fiber_fifo_put
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: FIFO #2
TEST COVERAGE:
	nano_fifo_init
	nano_fiber_fifo_get(TICKS_UNLIMITED)
	nano_fiber_fifo_get
	nano_fiber_fifo_put
	fiber_yield
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: FIFO #3
TEST COVERAGE:
	nano_fifo_init
	nano_fiber_fifo_get(TICKS_UNLIMITED)
	nano_fiber_fifo_put
	nano_task_fifo_get_wait
	nano_task_fifo_put
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: Stack #1
TEST COVERAGE:
	nano_stack_init
	nano_fiber_stack_pop(TICKS_UNLIMITED)
	nano_fiber_stack_push
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: Stack #2
TEST COVERAGE:
	nano_stack_init
	nano_fiber_stack_pop(TICKS_UNLIMITED)
	nano_fiber_stack_pop
	nano_fiber_stack_push
	fiber_yield
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

TEST CASE: Stack #3
TEST COVERAGE:
	nano_stack_init
	nano_fiber_stack_pop(TICKS_UNLIMITED)
	nano_fiber_stack_push
	nano_task_stack_pop(TICKS_UNLIMITED)
	nano_task_stack_push
Starting test. Please wait...
TEST RESULT: SUCCESSFUL
DETAILS: Average time for 1 iteration: NNNN nSec
END TEST CASE

PROJECT EXECUTION SUCCESSFUL