Skip to content

Latest commit

 

History

History
25 lines (20 loc) · 900 Bytes

README.md

File metadata and controls

25 lines (20 loc) · 900 Bytes

Fuzzing

Six targets cover the untrusted-input boundaries required by the v1 specification:

Target Boundary
lexer bounded source scanning
parser tutor AST construction and diagnostics
normalizer deterministic answer normalization
structural_comparer learner/target structural comparison
formula_layout RaTeX layout of successfully parsed tutor trees
custom_content_loader bounded, rooted custom-pack loading

Run one target with a fixed local time budget:

cargo install cargo-fuzz --locked
cargo fuzz run parser -- -max_total_time=60

CI compiles all six libFuzzer targets and runs cargo xtask fuzz-smoke --release, a deterministic bounded arbitrary-UTF-8 probe that does not require a nightly toolchain. Longer local or scheduled libFuzzer runs should retain any minimized crashing input under fuzz/corpus/<target>/.