Break out optional tests into requirement-level directories #708
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.
This is another attempt at #590: it would be nice to have the optional tests indicate to what degree they are optional.
I've also added
readme
s to each of the directories so that the intent of the folder is known (both for implementors and for people amending the tests).I've only done draft/next for now. I'm not sure if we want to apply this to the previous versions.
Refs: #495 #25
Open Questions
bignum
&float-overflow
Are these tests in optional because the JSON spec makes a concession for environments that can't handle arbitrary numbers? While JSON Schema doesn't define any restrictions, it also doesn't make any such concessions.
I've put them in undefined/ for now.
References:
format-assertion
The spec isn't explicit on the requirement level for vocabularies as a feature. I'd (@gregsdennis) assume it's a MUST, but that's just an interpretation.
There are requirement levels on
$vocabulary
and its usage, but nothing requiring that vocabularies be a supported feature in general.As such, I'm not sure where this should go.
First, all of these tests assume that the
format-assertion
vocabulary is understood, which is optional. ("An implementation that supports the Format-Assertion vocabulary..." implies that implementations have the option to not support it.)Secondly, assuming the above, these test become mandatory because "full validation support" is a MUST requirement.
I think this is a MAY overall, but could use confirmation.
Also, we don't have any tests around not understanding the
format-assertion
vocabulary. I think this is partially due to the fact that we can't handle error scenarios.References: