Title: Private FIFOs Description: This test verifies that the microkernel FIFO APIs operate as expected. This also verifies the mechanism to define private FIFO and its 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: tc_start() - Test Microkernel FIFO myData[0] = 1, myData[1] = 101, myData[2] = 201, myData[3] = 301, myData[4] = 401, =================================================================== PASS - fillFIFO. verifyQueueData: i=0, successfully get data 1 verifyQueueData: i=1, successfully get data 101 verifyQueueData: i=2, FIFOQ is empty. No data. =================================================================== PASS - verifyQueueData. =================================================================== PASS - fillFIFO. RegressionTask: About to putWT with data 401 RegressionTask: FIFO Put time out as expected for data 401 verifyQueueData: i=0, successfully get data 1 verifyQueueData: i=1, successfully get data 101 =================================================================== PASS - verifyQueueData. =================================================================== PASS - fillFIFO. RegressionTask: 2 element in queue RegressionTask: Successfully purged queue RegressionTask: confirm 0 element in queue =================================================================== RegressionTask: About to GetW data Starts MicroTestFifoTask MicroTestFifoTask: Puts element 999 RegressionTask: GetW get back 999 MicroTestFifoTask: FIRegressionTask: GetWT timeout expected =================================================================== PASS - fillFIFO. RegressionTask: about to putW data 999 FOPut OK for 999 MicroTestFifoTask: About to purge queue RegressionTask: PutW ok when queue is purged while waiting =================================================================== PASS - fillFIFO. RegressionTask: about to putW data 401 MicroTestFifoTask: Successfully purged queue MicroTestFifoTask: About to dequeue 1 element RegressionTask: PutW success for data 401 =================================================================== RegressionTask: Get back data 101 RegressionTask: Get back data 401 RegressionTask: queue is empty. Test Done! MicroTestFifoTask: task_fifo_get got back correct data 1 =================================================================== PASS - MicroTestFifoTask. =================================================================== PASS - RegressionTask. =================================================================== PROJECT EXECUTION SUCCESSFUL