Skip to content

Commit da25e1e

Browse files
committed
Run fuzzer as part of pytest
Signed-off-by: Stephen Crowe <[email protected]>
1 parent 0fa2a37 commit da25e1e

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed
Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
only raise DecodeValidationError or NotImplementedError.
66
77
Usage:
8-
python scripts/fuzz.py [--num-tests N] [--seed S] [--verbose]
8+
CLI: python test/openjd/model/test_fuzz.py [--num-tests N] [--seed S] [--verbose]
9+
pytest: pytest test/openjd/model/test_fuzz.py::test_fuzz
910
"""
1011

1112
import argparse
@@ -196,7 +197,7 @@ def fuzz_yaml_json_string():
196197
)
197198

198199

199-
def run_fuzzer(num_tests: int, seed: int | None, verbose: bool):
200+
def run_fuzzer(num_tests: int, seed: int | None, verbose: bool) -> bool:
200201
if seed is not None:
201202
random.seed(seed)
202203
else:
@@ -274,6 +275,11 @@ def run_fuzzer(num_tests: int, seed: int | None, verbose: bool):
274275
return len(crashes) == 0
275276

276277

278+
def test_fuzz():
279+
"""Fuzz test: all malformed inputs should raise DecodeValidationError or NotImplementedError."""
280+
assert run_fuzzer(num_tests=1000, seed=None, verbose=False)
281+
282+
277283
def main():
278284
parser = argparse.ArgumentParser(description="Fuzz openjd-model template parsing")
279285
parser.add_argument(

0 commit comments

Comments
 (0)