Tests general thread behaviour.
More...
|
| T_TEST_CASE_FIXTURE (ScoreThreadValThread, &ScoreThreadValThread_Fixture) |
|
Tests general thread behaviour.
This test case performs the following actions:
- Create an extension set with a thread terminate extension which deletes the killer task if it is invoked for the worker task. Create and start the worker task. Create and start the killer task. The killer task deletes the worker task.
- Check that the killer task was deleted.
- Check that the worker task still exists.
- Check that the life of the worker task is protected and terminating.
- Check that the worker task is waiting for a joining thread.
- Delete the worker task using brute force.
- Clean up all used resources.
- Delete a thread which least recently used the floating point coprocessor.
- Start the worker thread. Let it use the floating point coprocessor.
- Delete the worker thread and free the thread resources.
- Clean up all used resources.
- Validate the global construction. Mark that the test case executed.
- Check that the global constructor was called exactly once.
- Check that the global construction was done by the Classic API user initialization task.
- Check that the global constructor was called before the task entry.
- Validate that thread dispatching does not recurse. Issue a couple of thread context switches during a thread dispatch. Record the stack pointers of the heir threads.
- Check that the thread dispatching did not recurse through the recorded stack pointers.