about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/jsonschema/tests/fuzz_validate.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/jsonschema/tests/fuzz_validate.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are here HEAD master
Diffstat (limited to '.venv/lib/python3.12/site-packages/jsonschema/tests/fuzz_validate.py')
-rw-r--r--.venv/lib/python3.12/site-packages/jsonschema/tests/fuzz_validate.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/jsonschema/tests/fuzz_validate.py b/.venv/lib/python3.12/site-packages/jsonschema/tests/fuzz_validate.py
new file mode 100644
index 00000000..c12e88bc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/jsonschema/tests/fuzz_validate.py
@@ -0,0 +1,50 @@
+"""
+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()