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