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] Organize DSS tests #218

Merged

Conversation

BenjaminPelletier
Copy link
Member

This PR establishes a new test suite to validate the InterUSS DSS implementation which implements DSS requirements across three standards (though we only currently have dedicated uss_qualifier DSS tests for F3411-19 and F3411-22a) and makes the resource definitions in the configuration explicit rather than $ref'd so the full content is easily accessible.

It also regroups the DSS testing for F3411-19 and F3411-22a to run the interoperability test for all participants acting as primary DSS -- this allows a number of requirements to be verified for all participants that previously weren't checked when only one participant's DSS acted as primary DSS. In order to accomplish this, an optional resource specifying all the other DSS instances is declared in each of the standard's dss_probing test suites and used for the interoperability scenario if present. To support cases where someone wants to test only a single DSS instance, support is added for skipping test suite actions that don't have the necessary resources specified (see suite README.md).

Finally, some test suite documentation_urls are populated and an off-by-one error corrected.

@BenjaminPelletier BenjaminPelletier marked this pull request as ready for review September 21, 2023 04:58
Copy link
Contributor

@mickmis mickmis left a comment

Choose a reason for hiding this comment

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

Side note: depending on which gets merged first between this PR and #204, the service_area resource in dss_probing.yaml will need to be updated.

Side note bis: this test framework is really becoming powerful and in a mostly generic way, have you ever considered factoring it out in a project of its own at some point? :)

monitoring/uss_qualifier/suites/astm/netrid/f3411_19.yaml Outdated Show resolved Hide resolved
monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.yaml Outdated Show resolved Hide resolved
@@ -73,6 +73,15 @@ def __init__(
if local_debug is not None:
self.local_debug = local_debug

def is_same_as(self, other: DSSInstance) -> bool:
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: Shouldn't comparing the participant IDs be enough? It looks like if there are different DSSs declared with the same participant ID, of the same DSSs declared multiple times with different configuration, it should error out before.

Copy link
Member Author

Choose a reason for hiding this comment

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

It should be relatively common for a single participant to provide multiple instances -- InterUSS's DSS needs an odd number of instances and some redundancy is good practice, so the baseline starting instance count for a normal deployment is 3. If there are fewer than 3 USSs in the ecosystem who want to help host the DSS pool, then one participant will necessarily provide multiple instances. I think it should be fine to provide multiple DSS instances from the same participant (both conceptually and in the current implementation)? If not, I'll follow up with a fix in another PR.

Copy link
Contributor

Choose a reason for hiding this comment

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

Ohh I didn't think at all about the 1 participant having multiple instances, that makes sense yes.

@BenjaminPelletier BenjaminPelletier merged commit e7820e4 into interuss:main Sep 22, 2023
@BenjaminPelletier BenjaminPelletier deleted the feature/organize-dss-tests branch September 22, 2023 03:09
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