Title: Private Mailboxes
Description:
This test verifies that the microkernel mailbox APIs operate as expected.
This also verifies the mechanism to define private mailboxes and their usage.
--------------------------------------------------------------------------------
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 mailbox tests
===================================================================
MsgSenderTask: task_mbox_put(TICKS_NONE) to non-waiting task is OK
MsgRcvrTask: task_mbox_get when no message is OK
MsgSenderTask: task_mbox_put(timeout) to non-waiting task is OK
MsgRcvrTask: task_mbox_get(timeout) when no message is OK
MsgRcvrTask: task_mbox_get(TICKS_UNLIMITED) from specified task is OK
MsgSenderTask: task_mbox_put(TICKS_NONE) to specified waiting task is OK
MsgRcvrTask: task_mbox_get from anonymous task is OK
MsgSenderTask: task_mbox_put(timeout) to anonymous non-waiting task is OK
MsgSenderTask: task_mbox_put(TICKS_UNLIMITED) of empty message is OK
MsgRcvrTask: task_mbox_get(TICKS_UNLIMITED) of empty message is OK
MsgRcvrTask: task_mbox_get(TICKS_UNLIMITED) of message header #3 is OK
MsgRcvrTask: task_mbox_data_get of message data #3 is OK
MsgSenderTask: task_mbox_put(timeout) for 2 part receive test is OK
MsgRcvrTask: task_mbox_get(timeout) of message header #4 is OK
MsgRcvrTask: task_mbox_data_get cancellation of message #4 is OK
MsgSenderTask: task_mbox_put(TICKS_UNLIMITED) for cancelled receive test is OK
MsgRcvrTask: task_mbox_get(TICKS_UNLIMITED) of message header #1 is OK
MsgRcvrTask: task_mbox_data_block_get of message data #1 is OK
MsgSenderTask: task_mbox_put(TICKS_UNLIMITED) for block-based receive test is OK
MsgRcvrTask: task_mbox_get(TICKS_UNLIMITED) of message header #2 is OK
MsgRcvrTask: task_mbox_data_block_get of message data #2 is OK
MsgSenderTask: task_mbox_put(TICKS_UNLIMITED) for block-exhaustion receive test is OK
MsgRcvrTask: task_mbox_get(TICKS_UNLIMITED) of message header #3 is OK
MsgRcvrTask: task_mbox_data_get of message data #3 is OK
MsgSenderTask: task_mbox_put(timeout) for long-duration receive test is OK
===================================================================
PROJECT EXECUTION SUCCESSFUL