Skip to content
Commit Detail

Commit 2c32de2

Author
Martin Schwarzl <mschwarzl@cloudflare.com> 2025-11-04 16:41:46 +0000
Parents
2376e81
Tree
d3f3383
Add 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

Files changed