Conversation
Closed
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## master #960 +/- ##
==========================================
+ Coverage 95.42% 95.45% +0.02%
==========================================
Files 152 152
Lines 40774 40818 +44
==========================================
+ Hits 38909 38962 +53
+ Misses 1865 1856 -9
☔ View full report in Codecov by Sentry. |
ghaith
approved these changes
Sep 8, 2023
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.
This PR does does two things to fix the failing ARM test:
compile_and_run_no_paramswithcompile_and_runfor String-Function tests, which would otherwise fail due to invalid pointer access (we previously did something similar)#[should_panic]stdlib tests under ARM because of undefined behaviour. More specifically some of our FFI functions callpanic!, the currentrustcimplementation however assumes that anyextern "C"function cannot unwind and doing so would trigger undefined behaviour. Consequentially the#[should_panic]attribute isn't able to catch panics / unwind the stack. I did some experiments if we could bypass this somehow (see code below) but while these tests worked under x86_64, they did not under ARM. One potential fix to this would be to not panic inside FFI functions and instead return error codes which would be a somewhat big-ish refactor. Luckily there's a RFC being stabilized, so maybe in a few Rust versions we can just change the function signature of FFIs frompub extern "C"topub extern "C-unwind", potentially fixing this issue.TL;DR: Wait for some future Rust version where
C-unwindis introduced, in the meantime#[ignore]some tests under ARM.Some more references I found
...and the bypass attempts