-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Description
Currently the integration testing framework focuses heavily on the processes that drunc orchestrates, and not on the functionality that drunc provides. We would like to extend this within the drunc repository under a new integtest directory for focusing on the features that drunc provides.
The integration tests (e.g. minimal_system_quick_test.py, daqsystemtest_integtest_bundle.sh) currently do something like
- boot
- conf
- start
- enable-triggers
- disable-triggers
- drain-dataflow
- stop-trigger-sources
- stop
- scrap
without any options provided. We will want tests that do the above with the additional parameters, e.g.
- command targeting and subsequent behaviour
- including and excluding
- flushing processes and subsequent behaviour
- command sequences
- manual error introductions
Note the above is non-exhaustive, and will require a series of developments. For now lets start with the base case and build up all the permutations of behaviours we are interested in.
Potential impact radius
Small/Isolated
Reason for change
Several issues have been found with the drunc tooling, and in the direction of providing a resilitent and fault tolerant platform, we want to ensure that all changes that are made do not break current functionality.
Suggested implementations
Using the click CLI runner to run drunc, and a set of commands. Capture tty output with tee.
These are suggestions, not requirements. If you think of/know of better tools for this, happy to discuss.
Testing suggestions
This is the biggest question. The way I see it, we should have tests that support the following
- base configuration, SSH shell PM, all commands, can run everywhere, marker --integtest-ssh-shell
- base configuration, SSH paramiko PM, all commands, can run everywhere, marker --integtest-ssh-paramiko
- base configuration, k8s PM, all commands, can run everywhere, marker --integtest-k8s
- base configuration, subprocess PM (this is a WIP), all commands, can run everywhere, marker --integtest-subprocess
- The same as above but with a host-specific configuration, marker --integtest-np0x
Anything else?
This will likely have to get broken down, but the main idea is to have testing framework to continue discussing all the use cases for the run control and all the behaviours that we want to have