Skip to content

Commit

Permalink
Adds fuzz tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jesslatimer committed Apr 21, 2023
1 parent 76a71b1 commit e510b5c
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
4 changes: 4 additions & 0 deletions tests/fuzz_isort.dict
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
"from"
"import"
"with"
"as"
47 changes: 47 additions & 0 deletions tests/fuzz_isort.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/usr/bin/python3
import sys
import io
import atheris


with atheris.instrument_imports():
import isort
from isort.exceptions import ExistingSyntaxErrors


def TestOneInput(data):
fdp = atheris.FuzzedDataProvider(data)
try:
isort.api.check_code_string(fdp.ConsumeUnicodeNoSurrogates(
fdp.ConsumeIntInRange(1, 1000)))
isort.api.check_stream(io.StringIO(fdp.ConsumeUnicodeNoSurrogates(
fdp.ConsumeIntInRange(1, 1000))))
# exceptions caused by invalid inputs - ignore as uninteresting
except (ExistingSyntaxErrors, ValueError):
pass
try:
isort.api.sort_code_string(fdp.ConsumeUnicodeNoSurrogates(
fdp.ConsumeIntInRange(1, 1000)))
isort.api.sort_stream(io.StringIO(fdp.ConsumeUnicodeNoSurrogates(
fdp.ConsumeIntInRange(1, 1000))),
io.StringIO(fdp.ConsumeUnicodeNoSurrogates(
fdp.ConsumeIntInRange(1, 1000))))
# exceptions caused by invalid inputs - ignore as uninteresting
except (ExistingSyntaxErrors, ValueError):
pass
try:
isort.api.place_module(fdp.ConsumeUnicodeNoSurrogates(
fdp.ConsumeIntInRange(1, 1000)))
isort.api.place_module_with_reason(fdp.ConsumeUnicodeNoSurrogates(
fdp.ConsumeIntInRange(1, 1000)))
# exceptions caused by invalid inputs - ignore as uninteresting
except (ValueError, OSError):
pass
isort.api.find_imports_in_stream(io.StringIO(fdp.ConsumeUnicodeNoSurrogates(
fdp.ConsumeIntInRange(1, 1000))))
isort.api.find_imports_in_code(fdp.ConsumeUnicodeNoSurrogates(
fdp.ConsumeIntInRange(1, 1000)))


atheris.Setup(sys.argv, TestOneInput)
atheris.Fuzz()

0 comments on commit e510b5c

Please sign in to comment.