-
Notifications
You must be signed in to change notification settings - Fork 49
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
Initial attempt at roundtrip fuzzing #111
Conversation
You can run this with |
Roundtripping won't work when there are NaNs or infinity in the input data! If there is a NaN in the input, then every math operation involving that element will return NaN. Which basically means the entire output is just NaNs. |
I've added code that strips |
Okay, so either I'm doing something very wrong, or this is a bug:
Input triggering it, text form:
Binary form (gzipped): crash-fcf909c931e12fec5df36a5e4d7f5a026663e4d6.gz Reproduce with:
|
That is just unavoidable numerical noise. With f32 you have roughly 8 significant digits. The values here: |
All right, since roundtripping is harder than I thought it would be, I'll shelve it for now and focus on more traditional fuzzing that looks for memory errors. Once the template is in place, someone with FFT domain knowledge can expand on that and implement comparisons against a reference implementation, roundtrips, etc. |
This found a counter-example very quickly, but I suspect I'm just doing something wrong: