spectest-interp: assert_malformed must error in reader alone#2252
Merged
Conversation
091d43e to
47625af
Compare
sbc100
reviewed
Jun 9, 2023
| } | ||
|
|
||
| bool WellformedIR(const std::string& filename) { | ||
| return CheckIR(filename, false); |
Member
There was a problem hiding this comment.
Is "well formed" something that exists in the spec, or something we a creating there?
Member
Author
There was a problem hiding this comment.
It seems to be the spec's term (e.g. "A byte sequence is a well-formed encoding of a module if and only if it is generated by the grammar." from 5.1). If you think it's better to match the script language, we could call these functions "InvalidIR" and "MalformedIR" (instead of "ValidIR" and "WellformedIR") and just negate the callsites?
sbc100
reviewed
Jun 11, 2023
|
|
||
| Errors errors; | ||
| wabt::Module module; | ||
| Errors errors; |
sbc100
approved these changes
Jun 11, 2023
Previously assert_malformed was treated the same as assert_invalid Also fixes a bug where spectest-interp wasn't trying to validate text modules (e.g. `(assert_invalid (module quote "...") "")`).
47625af to
35d2930
Compare
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
In the spectest interpreter, currently
assert_malformedis treated the same asassert_invalid. This PR requires thatassert_malformedmodules must fail in the reader (not later in validation).This also fixes an issue where
assert_invalidwasn't validating text modules, so spectest-interp wasn't working properly for something like(assert_invalid (module quote "...") ""). There aren't a lot of tests like this because usually there's no need for(module quote)unless it's going to be in an(assert_malformed), but the memory64 tests have one because overlarge offsets are moving from a malformed failure to a validation failure. So this is a prerequisite for #2253.This is logically dependent on #2251 (the tests won't pass until #2251 is merged).