Generate combinational tests for linear memory functions #1233
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.
Generate linear memory tests
What
Resolves #1144
This PR introduces new macro code
synth_linear_memory_tests.rs
that generates tests (tests/linear_memory.rs
) for linear memory host functions.There are three different types of test, depending on the form of input argument combinations (a host function may have multiple):
a). "lm_pos + len (bytes)" where either the initial
lm_pos
or the range can be out of bound. Involved host functions:b). "val_pos + len (number of Vals)", where either the initial
val_pos
or the range can go out of bound. HereVal
must also be 8 bytes forming a validenv::Val
. Involved host functions:c) An array of keys where each key is a 8-byte slice consist of 4-byte ptr + 4-byte len, where either the ptr or len can go out of range. Involved host functions:
It also involves generating a wasm module for each host function, setting up sections of linear memory, preload it with some values. Please refer to the big comment in the file for details.
Why
[TODO: Why this change is being made. Include any context required to understand the why.]
Known limitations
[TODO or N/A]