ruff/python/py-fuzzer
Carl Meyer 3d2485eb1b
[ty] fix more ecosystem/fuzzer panics with fixpoint (#17758)
## Summary

Add cycle handling for `try_metaclass` and `pep695_generic_context`
queries, as well as adjusting the cycle handling for `try_mro` to ensure
that it short-circuits on cycles and won't grow MROs indefinitely.

This reduces the number of failing fuzzer seeds from 68 to 17. The
latter count includes fuzzer seeds 120, 160, and 335, all of which
previously panicked but now either hang or are very slow; I've
temporarily skipped those seeds in the fuzzer until I can dig into that
slowness further.

This also allows us to move some more ecosystem projects from `bad.txt`
to `good.txt`, which I've done in
https://github.com/astral-sh/ruff/pull/17903

## Test Plan

Added mdtests.
2025-05-08 20:36:20 -07:00
..
fuzz.py [ty] fix more ecosystem/fuzzer panics with fixpoint (#17758) 2025-05-08 20:36:20 -07:00
pyproject.toml Turn the fuzz-parser script into a properly packaged Python project (#14606) 2024-11-27 08:09:04 +00:00
README.md py-fuzzer: recommend using uvx rather than uv run to run the fuzzer (#14645) 2024-11-27 22:19:52 +00:00
uv.lock Turn the fuzz-parser script into a properly packaged Python project (#14606) 2024-11-27 08:09:04 +00:00

py-fuzzer

A fuzzer script to run Ruff executables on randomly generated (but syntactically valid) Python source-code files.

Run uvx --from ./python/py-fuzzer fuzz -h from the repository root for more information and example invocations (requires uv to be installed).