-
Notifications
You must be signed in to change notification settings - Fork 114
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
Fuzz testing #2
Comments
@acln0 how large is this file? I may be willing to host it somewhere like Google Cloud Storage, since it should only cost a few cents a month I'd think. |
@theckman The fuzz test corpus contains multiple files, one for every interesting input the fuzzer has found. The general notion is that the developer seeds the corpus with interesting inputs (usually based on test cases), by creating one file per input and storing it in the work directory, under Given that the parser doesn't have many branches and the |
Sure. I wasn't sure how much data we'd think we'd grow to, in the context of not making the repository unnecessarily large. If it was going to be too large, I was thinking of offering the seeded+mutated corpus as a publicly downloadable archive. That way people could use it for local testing with a consistent set of data. If it's not going to be too large, then we could just check the files in. I've not ran |
For this particular case, it's quite small. I ran the fuzzer on this for ~30 minutes, and it amounted to somewhere between 20 and 30 files. If you're okay with checking them in, I think they should live under |
That sounds perfectly acceptable. 👍 |
Since this package touches untrusted user input, it would be a good idea to fuzz
FromString
,(*UUID).UnmarshalText
and similar.Assuming we use https://github.com/dvyukov/go-fuzz, what should we do about the fuzz testing corpus? I think there are three options:
testdata/{corpus,crashers,suppressions}
: this clutters things quite a bit, unfortunatelygofrs/uuid-test-corpus
: this may be overkillThoughts?
The text was updated successfully, but these errors were encountered: