Skip to content

[Feature]: Comprehensive integration testing framework #726

@PawelPlesniak

Description

@PawelPlesniak

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

Sub-issues

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions