-
Notifications
You must be signed in to change notification settings - Fork 120
Open
Labels
enhancementNew feature or requestNew feature or request
Description
I'm in the process of writing end-to-end tests to make sure Python coverage is high-quality. In doing so, I discovered that Hypothesis structured fuzzing causes really poor fuzz quality - even the example in the readme doesn't work:
import atheris
from hypothesis import given, strategies as st
@given(st.from_regex(r"\w+!?", fullmatch=True))
@atheris.instrument_func
def test(string):
assert string != "bad"
atheris.Setup(sys.argv, atheris.instrument_func(test.hypothesis.fuzz_one_input))
atheris.Fuzz()I checked, and this isn't caused by the new coverage method - this works poorly with old coverage too. Doing this with regular Atheris, however, works excellently.
@Zac-HD, as the original contributor of the Hypothesis examples: do you have any suggestions here? I was thinking something along the lines of an external mutator for libFuzzer might work to fix the issues here. That's how libprotobuf-mutator for C++ works.
@nedwill your input might also be helpful here.
langfield and sg3-141-592
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request