Run shared memory tests with miri #1174
Draft
+56
−43
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.
Enables 10 existing shared_memory tests to be run with Miri and adds them to CI. This allows us to exercise some of our unsafe code and increase confidence in correctness and not having UB.
Note:
Vec<u8>backing for for HostMapping which does not use platform apis (mmap,VirtualAlloc), but it turns outmmapis partially supported by Miri, but not with MAP_SHARED so I did that instead because it is easier. Aside: I don't think we need to use MAP_SHARED in general for hyperlight, but that not relevant to this PR.base_ptr()is intentional because we used to cast pointer to integer, which loses pointer provenance. The fix is to use pointer arithmetics instead to preserve provenance.