Skip to content

Latest commit

 

History

History
24 lines (12 loc) · 1.29 KB

README.md

File metadata and controls

24 lines (12 loc) · 1.29 KB

Fuzz

Scope

  • Converters: Implements conversion rules to generate valid Vyper sources from the proto messages

  • Generators: Interacts with atheris fuzzer engine and converters to generate Vyper source codes and their input values for execution

  • Runners: Executes generated source codes with provided input values

  • Verifiers: Manages the validation of test results, ensuring that generated code behaves consistently across compiler versions and configurations.

Workflow

  1. Test Case Generation: The generators module produces Vyper source codes using converters module based on structured proto templates and compiler coverage.

  2. Task Distribution: With QueueManager handling task distribution, each runner instance retrieves a task from the queue and processes it independently, allowing the fuzzer to scale across multiple workers.

  3. Test Case Execution: The runners module listens for tasks in the queue. When a test case is retrieved, the runner compiles and executes the Vyper code using the specified compiler configuration via titanoboa.

  4. Result Verification: The verifiers module retrieves results and checks them for consistency across compiler versions, identifying potential bugs or inconsistencies.

Fuzzer Graph