zephyr/tests/legacy/kernel/test_nano_work
Benjamin Walsh 8cf56bcac7 unified: dissociate system workqueue from common workqueue module
Making a reference to the common work queue code should not necessarily
drag in the system workqueue, since it is possible to use a workqueue
that is not the system workqueue. This is done by moving the system
workqueue into its own code module.

Moving the system workqueue to its own code module allows removing the
NANO_WORKQUEUE and SYSTEM_WORKQUEUE kconfig options, and compiling the
common workqueue code and system workqueue all the time. They are only
linked in the final image if a reference to them exist, same as the
other kernel modules.

Change-Id: I6f48d2542bda24f4702e7c2e317818dd082b3c11
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-11-04 22:39:54 +00:00
..
src tests: move kernel tests to tests/legacy 2016-11-01 13:42:17 -04:00
Makefile samples: tests: remove obsolete KERNEL_TYPE and kernel variables 2016-11-04 15:47:25 -04:00
prj.conf unified: dissociate system workqueue from common workqueue module 2016-11-04 22:39:54 +00:00
README.txt tests: move kernel tests to tests/legacy 2016-11-01 13:42:17 -04:00
testcase.ini samples: tests: remove obsolete KERNEL_TYPE and kernel variables 2016-11-04 15:47:25 -04:00

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