bindings/python/fuzz.py (25 lines of code) (raw):
import datetime
import sys
import tempfile
from collections import defaultdict
import atheris
with atheris.instrument_imports():
from safetensors.torch import load_file
EXCEPTIONS = defaultdict(int)
START = datetime.datetime.now()
DT = datetime.timedelta(seconds=30)
def TestOneInput(data):
global START
with tempfile.NamedTemporaryFile() as f:
f.write(data)
f.seek(0)
try:
load_file(f.name, device=0)
except Exception as e:
EXCEPTIONS[str(e)] += 1
if datetime.datetime.now() - START > DT:
for e, n in EXCEPTIONS.items():
print(e, n)
START = datetime.datetime.now()
atheris.Setup(sys.argv, TestOneInput)
atheris.Fuzz()