Spaces:
Runtime error
Runtime error
""" | |
Fuzzing setup for OSS-Fuzz. | |
See https://github.com/google/oss-fuzz/tree/master/projects/jsonschema for the | |
other half of the setup here. | |
""" | |
import sys | |
from hypothesis import given, strategies | |
import jsonschema | |
PRIM = strategies.one_of( | |
strategies.booleans(), | |
strategies.integers(), | |
strategies.floats(allow_nan=False, allow_infinity=False), | |
strategies.text(), | |
) | |
DICT = strategies.recursive( | |
base=strategies.one_of( | |
strategies.booleans(), | |
strategies.dictionaries(strategies.text(), PRIM), | |
), | |
extend=lambda inner: strategies.dictionaries(strategies.text(), inner), | |
) | |
def test_schemas(obj1, obj2): | |
try: | |
jsonschema.validate(instance=obj1, schema=obj2) | |
except jsonschema.exceptions.ValidationError: | |
pass | |
except jsonschema.exceptions.SchemaError: | |
pass | |
def main(): | |
atheris.instrument_all() | |
atheris.Setup( | |
sys.argv, | |
test_schemas.hypothesis.fuzz_one_input, | |
enable_python_coverage=True, | |
) | |
atheris.Fuzz() | |
if __name__ == "__main__": | |
import atheris | |
main() | |