Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[uss_qualifier] Add execution control #292

Merged
merged 2 commits into from
Oct 30, 2023

Conversation

BenjaminPelletier
Copy link
Member

With uss_qualifier's configurations growing larger, there is often a need to focus execution on a smaller part of the final configuration for the purpose of rapid development. Currently, users must create a new configuration sufficiently similar to the final configuration to accomplish this, and this can be, tedious, error-prone, and time-consuming.

This PR introduces execution control to uss_qualifier by allowing users to adjust their existing configurations only slightly in order to selectively execute only parts of the normal test run. This includes, for instance, targeting a particular scenario, a particular instance of a particular scenario, or a test suite, or excluding the same. As such, the configurations exercising particular components of the F3548-21 test suite in the configurations/f3548 folder are now obsolete and are removed.

Execution control is accomplished by an additional execution parameter in the TestConfiguration object; see configuration.py for its structure. The addition of this configuration field results in auto-generating a number of schema (the JSON files in this PR are all autogenerated).

Implementation of this functionality is in suite.py where a new ExecutionContext object is added. It is similar to the stack in normal programming languages, as it keeps track of what is running and has been run. The logic for whether to skip a particular action is the bulk of ExecutionContext's code.

This new functionality is documented with a number of examples in configurations/README.md.

A number of small bugs and improvements discovered while exercising this functionality are addressed.

All of the examples were tested by inserting the execution content shown into the configurations.dev.uspace configuration.

@BenjaminPelletier BenjaminPelletier marked this pull request as ready for review October 26, 2023 02:30
Copy link
Contributor

@barroco barroco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me 👍

@BenjaminPelletier BenjaminPelletier merged commit 7fb0ef7 into interuss:main Oct 30, 2023
8 checks passed
@BenjaminPelletier BenjaminPelletier deleted the execution-control branch October 30, 2023 13:33
github-actions bot added a commit that referenced this pull request Oct 30, 2023
* Add execution control

* Fix behavior with missing execution specification 7fb0ef7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants