ruff/fuzz/corpus
Dhruv Manilawala 1685d95ed2
Some checks are pending
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
[red-knot] Add fuzzer to catch panics for invalid syntax (#14678)
## Summary

This PR adds a fuzzer harness for red knot that runs the type checker on
source code that contains invalid syntax.

Additionally, this PR also updates the `init-fuzzer.sh` script to
increase the corpus size to:
* Include various crates that includes Python source code
* Use the 3.13 CPython source code

And, remove any non-Python files from the final corpus so that when the
fuzzer tries to minify the corpus, it doesn't produce files that only
contains documentation content as that's just noise.

## Test Plan

Run `./fuzz/init-fuzzer.sh`, say no to the large dataset.
Run the fuzzer with `cargo +night fuzz run red_knot_check_invalid_syntax
-- -timeout=5`
2024-12-04 14:36:58 +05:30
..
red_knot_check_invalid_syntax [red-knot] Add fuzzer to catch panics for invalid syntax (#14678) 2024-12-04 14:36:58 +05:30
ruff_formatter_idempotency Add a idempotent fuzz_target for ruff_python_formatter (#9448) 2024-01-11 08:55:59 +01:00
ruff_formatter_validity Add a idempotent fuzz_target for ruff_python_formatter (#9448) 2024-01-11 08:55:59 +01:00
ruff_new_parser_equiv Replace LALRPOP parser with hand-written parser (#10036) 2024-04-18 17:57:39 +05:30
ruff_parse_idempotency Create fuzzers for testing correctness of parsing, linting and fixing (#4822) 2023-06-07 14:57:07 +02:00
ruff_parse_simple Create fuzzers for testing correctness of parsing, linting and fixing (#4822) 2023-06-07 14:57:07 +02:00