Test suite: Automate testing of specific commands
The test case from #3 (closed) for the 'algo test' FSM provides a high-level test of a standard workflow, but in order to make sure that each command is doing what we expect, in particular with a suitable range of parameter values, we should also have a set of test cases that each target a specific individual command.
Each of these single-command test case should essentially:
- Run the command, after some prerequisite commands
- Check the monitoring status
- Check what components are enabled/disabled.
To understand how best to factorise the implementations, should first focus on a set of commands that provides spans the full phase space of complexity & functionality. For now, I'd suggest starting with the program and reset commands:
- For the program command, the only pre-requisite is the power-on command. Confirm that all FW components are disabled after the command is run
- For the reset command, there would be two pre-requisite commands: Power on and program. Run this for
source="internal"
andsource="tcds2"
.
The core functionality of this test case will be the same for various commands, so I think we should be able to implement most of this with a common function, that just gets called with different argument values in each test case.
In contrast with #3 (closed), I think it will make more sense to get specify the parameter values directly in the test case rather than reading these from the off-board config file - since for most of these test cases, we'll want to try a few different values.