# System Under Test Definition

A system-under-test (SUT) definition may be represented as a collection of configuration files. SUT.toml is the manifest for the SUT itself—it contains some identifying information for the SUT and then points to directories containing configuration files for each component.

# Component Directories

A SUT is made up of components, logical groupings of functionality. Each component has a set of manifest files which Modality generates based on the instrumentation in your code using the modality-probe manifest-gen command. Generated component manifest files must live together in a directory with the following structure:

  • <component-name>/ (directory, generated with manifest-gen and mutator-gen)
    • Component.toml (file, the Component Manifest)
    • events.csv (file, the Events Manifest)
    • probes.csv (file, the Probes Manifest)
    • mutators/ (directory, optional, contains 0 or more Mutator Manifest files)
      • <mutator-name>.toml (file, a Mutator Manifest)

For a simple example of generating component manifest files, see the guide.

A diagram of Modality's system under test (SUT) model, where components of any sort can integrate with Modality for observation and troubleshooting

# SUT Manifest

The SUT manifest is a toml file with the name SUT.toml which contains the following fields:

  • name - required - string - The name of the whole SUT.
  • tags - optional - array of 0 or more strings - Each string is an arbitrary piece of metadata or description about the SUT.
  • component_paths - optional - array of 0 or more strings - Each string must contain a relative file system path, pointing to a directory containing definition files for a component.

# Example SUT Manifest

name = "test-sut"
tags = ["test", "producer", "consumer"]
component_paths = [
    "./test-component"
]