Commits
Click on a commit to change the comparison rangeAdd Fuzzilli REPRL integration for fuzzing support
This commit adds comprehensive support for fuzzing workerd using Fuzzilli's
REPRL (Read-Eval-Print-Reset-Loop) protocol.
Key changes:
- Implement REPRL protocol handler in workerd server with --stdin-reprl flag
- Add fuzzilli() JavaScript API for crash testing and coverage tracking
- Integrate libreprl C library for REPRL client communication
- Add KJ-based test framework integration (test-reprl.c++)
- Create example Fuzzilli configurations and mock services
- Add immediate-crash.h utility for controlled crash testing
- Fix V8 ASAN macro redefinition warnings by adding V8_USE_ADDRESS_SANITIZER
- Update .bazelrc to use clang-19 directly instead of ccache wrapper
The implementation allows Fuzzilli to:
- Execute JavaScript code in isolated REPRL sessions
- Collect sanitizer coverage feedback
- Detect crashes and memory errors
- Reset worker state between executions
Example usage:
bazel test --config=fuzzilli //src/workerd/tests:test-reprl
./workerd test fuzzilli/config.capnp --experimental --stdin-reprl