-
Notifications
You must be signed in to change notification settings - Fork 257
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Add fuzzing support #1632
Merged
Merged
Add fuzzing support #1632
Conversation
This file contains 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
tmatth
reviewed
Sep 5, 2019
lu-zero
approved these changes
Sep 5, 2019
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 |
tmatth
reviewed
Sep 5, 2019
lu-zero
approved these changes
Sep 6, 2019
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 :)
# for free
to join this conversation on GitHub.
Already have an account?
# 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.
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.