Flow selection components
- ../assert Comparing models against systems
The package provides a mechanism by which flows can be chosen at runtime based on their tag values. This mechanism attempts to minimise the number of unwanted flows that are constructed.
It is unlikely that you'll need to depend directly on this module, it will be supplied transitively by assert-core
.
Some aspects of filtering behaviour can be controlled by system properties:
property | description |
---|---|
mctf.filter.exclude |
A comma-separated list of tags values that flows must not have |
mctf.filter.include |
A comma-separated list of tags values that flows must have |
mctf.filter.indices |
A comma-separated list of indices and index ranges for flows to process |
mctf.filter.update |
Supply true to update filter values at runtime in the most appropriate interface.Supply cli to force use of the command-line interface or gui to force use of the graphical interface |
mctf.filter.repeat |
Supply true to use the previous filters again |
mctf.filter.fails |
Configures filters to repeat flows that did not pass assertion in a previous run. Supply the location of a report from which to extract results, or latest to extract from the most recent local report |
mctf.dir |
The path to the dir where assertion artifacts are saved |
mctf.filter.cli.min_width |
The minimum width of the command-line interface |
Calling blockForUpdates()
on a Filter
instance while system property mctf.filter.update
is gui
(or true
in a GUI environment) will cause a graphical interface to be displayed to the user to allow them to update the include and exclude tag sets, and then to choose which of the flows that pass those filters should be exercised.
Calling blockForUpdates()
on a Filter
instance while system property mctf.filter.update
is cli
(or true
in a headless environment) will cause a command-line interface to be displayed to the user to allow them to update the include and exclude tag sets, and then to choose which of the flows that pass those filters should be exercised.
Calling save()
on a filter will cause the filter configuration to be saved to disk.
Calling load()
on a filter (when system property mctf.filter.repeat
is true
) will cause configuration to be loaded from disk.