| Title: FIFO APIs |
| |
| Description: |
| |
| This test verifies that the nanokernel FIFO APIs operate as expected. |
| |
| --------------------------------------------------------------------------- |
| |
| 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: |
| |
| tc_start() - Test Nanokernel FIFO |
| Test Task FIFO Put |
| |
| TASK FIFO Put Order: 001056dc, 00104ed4, 001046c0, 00103e80, |
| =================================================================== |
| Test Fiber FIFO Get |
| |
| FIBER FIFO Get: count = 0, ptr is 001056dc |
| FIBER FIFO Get: count = 1, ptr is 00104ed4 |
| FIBER FIFO Get: count = 2, ptr is 001046c0 |
| FIBER FIFO Get: count = 3, ptr is 00103e80 |
| PASS - fiber1. |
| =================================================================== |
| Test Fiber FIFO Put |
| |
| FIBER FIFO Put Order: 00103e80, 001046c0, 00104ed4, 001056dc, |
| =================================================================== |
| Test Task FIFO Get |
| TASK FIFO Get: count = 0, ptr is 00103e80 |
| TASK FIFO Get: count = 1, ptr is 001046c0 |
| TASK FIFO Get: count = 2, ptr is 00104ed4 |
| TASK FIFO Get: count = 3, ptr is 001056dc |
| =================================================================== |
| Test Task FIFO Get Wait Interfaces |
| |
| TASK FIFO Put to queue2: 001056dc |
| Test Fiber FIFO Get Wait Interfaces |
| |
| FIBER FIFO Get from queue2: 001056dc |
| FIBER FIFO Put to queue1: 00104ed4 |
| TASK FIFO Get from queue1: 00104ed4 |
| TASK FIFO Put to queue2: 001046c0 |
| FIBER FIFO Get from queue2: 001046c0 |
| FIBER FIFO Put to queue1: 00103e80 |
| PASS - testFiberFifoGetW. |
| =================================================================== |
| Test ISR FIFO (invoked from Fiber) |
| |
| ISR FIFO Get from queue1: 00103e80 |
| |
| ISR FIFO (running in fiber context) Put Order: |
| 001056dc, 00104ed4, 001046c0, 00103e80, |
| PASS - testIsrFifoFromFiber. |
| PASS - fiber2. |
| PASS - testTaskFifoGetW. |
| =================================================================== |
| Test ISR FIFO (invoked from Task) |
| |
| Get from queue1: count = 0, ptr is 001056dc |
| Get from queue1: count = 1, ptr is 00104ed4 |
| Get from queue1: count = 2, ptr is 001046c0 |
| Get from queue1: count = 3, ptr is 00103e80 |
| |
| Test ISR FIFO (invoked from Task) - put 001056dc and get back 001056dc |
| PASS - testIsrFifoFromTask. |
| =================================================================== |
| test nano_task_fifo_get with timeout > 0 |
| nano_task_fifo_get timed out as expected |
| nano_task_fifo_get got fifo in time, as expected |
| testing timeouts of 5 fibers on same fifo |
| got fiber (q order: 2, t/o: 10, fifo 200049c0) as expected |
| got fiber (q order: 3, t/o: 15, fifo 200049c0) as expected |
| got fiber (q order: 0, t/o: 20, fifo 200049c0) as expected |
| got fiber (q order: 4, t/o: 25, fifo 200049c0) as expected |
| got fiber (q order: 1, t/o: 30, fifo 200049c0) as expected |
| testing timeouts of 9 fibers on different fifos |
| got fiber (q order: 0, t/o: 10, fifo 200049cc) as expected |
| got fiber (q order: 5, t/o: 15, fifo 200049c0) as expected |
| got fiber (q order: 7, t/o: 20, fifo 200049c0) as expected |
| got fiber (q order: 1, t/o: 25, fifo 200049c0) as expected |
| got fiber (q order: 8, t/o: 30, fifo 200049cc) as expected |
| got fiber (q order: 2, t/o: 35, fifo 200049c0) as expected |
| got fiber (q order: 6, t/o: 40, fifo 200049c0) as expected |
| got fiber (q order: 4, t/o: 45, fifo 200049cc) as expected |
| got fiber (q order: 3, t/o: 50, fifo 200049cc) as expected |
| testing 5 fibers timing out, but obtaining the data in time |
| (except the last one, which times out) |
| got fiber (q order: 0, t/o: 20, fifo 200049c0) as expected |
| got fiber (q order: 1, t/o: 30, fifo 200049c0) as expected |
| got fiber (q order: 2, t/o: 10, fifo 200049c0) as expected |
| got fiber (q order: 3, t/o: 15, fifo 200049c0) as expected |
| got fiber (q order: 4, t/o: 25, fifo 200049c0) as expected |
| =================================================================== |
| PASS - test_timeout. |
| =================================================================== |
| =================================================================== |
| PASS - main. |
| =================================================================== |
| PROJECT EXECUTION SUCCESSFUL |