-
Notifications
You must be signed in to change notification settings - Fork 255
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 fuzzing support #1632
Add fuzzing support #1632
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks pretty and not too intrusive.
If you switch to the log
crate to avoid the explicit debug variable it should get even more compact.
Changed to use |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems still good :)
Find assertion fails in your own rav1e clone in one simple command.
Closes #115, although new issues could be opened for adding, for example, proptest, or the randomizing RDO decisions thing.
The design I chose here (putting actual fuzzable functions inside the
rav1e
crate) should make it easy to hook up other fuzzers such as AFL and honggfuzz (more fuzzers more better), although it doesn't make it easy to hook up proptest or quickcheck because those frameworks want you to generate each individual parameter through them, rather than feeding in a chunk of random bytes (this is so that they can meaningfully shrink and expand the inputs, which is the whole point).Additionally included is the ability to inspect crashing state straight through the fuzz target executables via the
RUST_LOG=debug
environment variable, which is extremely handy for figuring out what's up and making test cases.Thus far trophies include everything fixed in #1619 and #1630 and a more-interesting case for #1611.