CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-atheris

A coverage-guided fuzzer for Python and Python extensions based on libFuzzer

91

1.28x
Overview
Eval results
Files

rubric.jsonevals/scenario-9/

{
  "context": "This criteria evaluates how well the engineer uses Atheris to implement fuzzing with custom import loaders, focusing specifically on the instrument_imports() context manager with enable_loader_override parameter and proper integration with the fuzzing lifecycle.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "instrument_imports usage",
      "description": "Uses atheris.instrument_imports() context manager to enable automatic instrumentation of imported modules",
      "max_score": 25
    },
    {
      "name": "enable_loader_override parameter",
      "description": "Correctly passes enable_loader_override=True to instrument_imports() to support custom loaders",
      "max_score": 20
    },
    {
      "name": "Setup() initialization",
      "description": "Calls atheris.Setup() with sys.argv and the TestOneInput callback function to initialize the fuzzer",
      "max_score": 15
    },
    {
      "name": "FuzzedDataProvider usage",
      "description": "Uses atheris.FuzzedDataProvider to convert raw fuzzer bytes into structured data (strings, integers, etc.)",
      "max_score": 15
    },
    {
      "name": "Fuzz() execution",
      "description": "Calls atheris.Fuzz() to start the fuzzing loop after setup is complete",
      "max_score": 10
    },
    {
      "name": "Custom loader integration",
      "description": "Implements a custom loader (using importlib.abc.Loader or similar) that works correctly with instrument_imports()",
      "max_score": 10
    },
    {
      "name": "Exception handling",
      "description": "Properly handles exceptions in TestOneInput() to allow fuzzer to continue discovering inputs without crashing the harness",
      "max_score": 5
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/pypi-atheris

tile.json