zephyr/tests/legacy/kernel/test_nano_work
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
Makefile tests: introduce Makefile.test 2017-01-03 17:48:44 +00:00
prj.conf
README.txt
testcase.ini

Title: Test nano_work

Description:

A simple application verifying the workqueue API

The first test submits a few work items from both fiber and task context and
checks that they are executed in order.

The second test checks that a work item can be resubmitted from its own handler.

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

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:

Starting sequence test
 - Initializing test items
 - Submitting test items
 - Submitting work 1 from task
 - Running test item 1
 - Submitting work 2 from fiber
 - Submitting work 3 from task
 - Submitting work 4 from fiber
 - Running test item 2
 - Submitting work 5 from task
 - Submitting work 6 from fiber
 - Waiting for work to finish
 - Running test item 3
 - Running test item 4
 - Running test item 5
 - Running test item 6
 - Checking results
Starting resubmit test
 - Submitting work
 - Waiting for work to finish
 - Resubmitting work
 - Resubmitting work
 - Resubmitting work
 - Resubmitting work
 - Resubmitting work
 - Checking results
Starting delayed test
 - Initializing delayed test items
 - Submitting delayed test items
 - Submitting delayed work 1 from task
 - Submitting delayed work 3 from task
 - Submitting delayed work 5 from task
 - Waiting for delayed work to finish
 - Submitting delayed work 2 from fiber
 - Submitting delayed work 4 from fiber
 - Submitting delayed work 6 from fiber
 - Running delayed test item 1
 - Running delayed test item 2
 - Running delayed test item 3
 - Running delayed test item 4
 - Running delayed test item 5
 - Running delayed test item 6
 - Checking results
Starting delayed resubmit test
 - Submitting delayed work
 - Waiting for work to finish
 - Resubmitting delayed work
 - Resubmitting delayed work
 - Resubmitting delayed work
 - Resubmitting delayed work
 - Resubmitting delayed work
 - Checking results
Starting delayed resubmit from fiber test
 - Resubmitting delayed work with 1 tick
 - Resubmitting delayed work with 1 tick
 - Resubmitting delayed work with 1 tick
 - Resubmitting delayed work with 1 tick
 - Resubmitting delayed work with 1 tick
 - Resubmitting delayed work with 1 tick
 - Running delayed test item 1
 - Waiting for work to finish
 - Checking results
Starting delayed cancel test
 - Cancel delayed work from task
 - Cancel delayed work from fiber
 - Waiting for work to finish
 - Checking results
===================================================================
PASS - main.
===================================================================
PROJECT EXECUTION SUCCESSFUL