Server IP : 15.235.198.142 / Your IP : 216.73.216.27 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/jsonschema/tests/ |
Upload File : |
""" 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), ) @given(obj1=DICT, obj2=DICT) 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()