-
Notifications
You must be signed in to change notification settings - Fork 853
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add test_validate
feature flag + CI check
#1239
Comments
test_validate
feature flag test_validate
feature flag + CI check
"nasal demons" for anyone else who is curious http://www.catb.org/jargon/html/N/nasal-demons.html |
Maybe I actually did this (forced |
Agree, this sounds useful. Making it independent of |
Had a brief stab at adding this, the good news is it doesn't show any new problems, the bad news is it causes a lot of the tests of the validation logic to fail 😆 I need to have a think about how best to handle this... |
Maybe we could just |
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
For better or worse
arrow-rs
makes use of unsafe in various places. Whilst there are ongoing efforts to reduce the use of unsafe, occasionally bugs will slip through. Botharrow-rs
andarrow-datafusion
run with MIRI in order to catch many of these, however, MIRI is extremely slow and fiddly to setup which acts as a limiting factor on crowd-sourced test coverage. Additionally it will not catch the arguably more common types of logic bug, e.g. inconsistent null counts, non-consecutive array offsets, etc...Describe the solution you'd like
Add a
test_validate
feature flag that when enabled will cause various "unchecked" methods to actually perform validation. The most obvious beingArrayDataBuilder::build_unchecked
. This will allow projects to contribute to crowd-sourced nasal demon hunting, without imposing on them all the costs of setting up and running MIRI.Describe alternatives you've considered
This could also be enabled based on debug_assertions being enabled, but this is a global setting that is on by default in debug builds. A feature flag gives people the ability to opt-out of the validation. FWIW this is what the parquet crate currently does.
The text was updated successfully, but these errors were encountered: