X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/306a513137ec93a5053d415319e24bd4057d4045..4f1772e2aed8356e57b923eacf45f813ec3324a0:/fuzz.py?ds=sidebyside diff --git a/fuzz.py b/fuzz.py index 6e20686..83e02f4 100644 --- a/fuzz.py +++ b/fuzz.py @@ -8,7 +8,8 @@ a coverage-guided fuzzer I'm working on. import re import hypothesmith -from hypothesis import HealthCheck, given, settings, strategies as st +from hypothesis import HealthCheck, given, settings +from hypothesis import strategies as st import black from blib2to3.pgen2.tokenize import TokenError @@ -32,7 +33,9 @@ from blib2to3.pgen2.tokenize import TokenError black.FileMode, line_length=st.just(88) | st.integers(0, 200), string_normalization=st.booleans(), + preview=st.booleans(), is_pyi=st.booleans(), + magic_trailing_comma=st.booleans(), ), ) def test_idempotent_any_syntatically_valid_python( @@ -46,13 +49,13 @@ def test_idempotent_any_syntatically_valid_python( dst_contents = black.format_str(src_contents, mode=mode) except black.InvalidInput: # This is a bug - if it's valid Python code, as above, Black should be - # able to cope with it. See issues #970, #1012, #1358, and #1557. + # able to cope with it. See issues #970, #1012 # TODO: remove this try-except block when issues are resolved. return except TokenError as e: - if ( + if ( # Special-case logic for backslashes followed by newlines or end-of-input e.args[0] == "EOF in multi-line statement" - and re.search(r"\r?\n\\\r?\n", src_contents) is not None + and re.search(r"\\($|\r?\n)", src_contents) is not None ): # This is a bug - if it's valid Python code, as above, Black should be # able to cope with it. See issue #1012. @@ -76,6 +79,7 @@ if __name__ == "__main__": # (if you want only bounded fuzzing, just use `pytest fuzz.py`) try: import sys + import atheris except ImportError: pass