-
Converters
: Implements conversion rules to generate validVyper
sources from theproto
messages -
Generators
: Interacts withatheris
fuzzer engine andconverters
to generateVyper
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.
-
Test Case Generation: The
generators
module producesVyper
source codes usingconverters
module based on structuredproto
templates and compiler coverage. -
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. -
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 viatitanoboa
. -
Result Verification: The verifiers module retrieves results and checks them for consistency across compiler versions, identifying potential bugs or inconsistencies.