Add recursive validation to config #6576
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #4584
Description:
This PR, which is heavily based on @FreakyNobleGas 's work, allows for children of config structs to define their own Validate method. All nodes' Validate methods will be checked instead of just the root of the config element.
If a validation error is found within the config tree, it will be surfaced with a message like this:
Link to tracking Issue:
#4584
Testing:
I added two new tests to check that children of config are validated. I ran these tests through
make all
in the root of the project.I think the testing I've done is a bit weak just because of my unfamiliarity with the project, so I'm happy to do more testing if needed.
Open question: If a config struct has a Validate method implemented, but that validation succeeds, should we continue checking inside the children of that object, or should we consider the entire object "checked" by that implementation? Right now, I've chosen the former option.