mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-08-26 23:50:17 +00:00
Full rename of all identifiers, filenames, and references: ironclaw → optimclaw IronClaw → OptimClaw IRONCLAW → OPTIMCLAW ironclaw_common → optimclaw_common ironclaw_safety → optimclaw_safety Upstream: nearai/ironclaw
38 lines
1.1 KiB
Markdown
38 lines
1.1 KiB
Markdown
# OptimClaw Fuzz Targets
|
|
|
|
Fuzz testing for OptimClaw code paths that depend on the full crate, using [cargo-fuzz](https://github.com/rust-fuzz/cargo-fuzz) (libFuzzer).
|
|
|
|
> **Note:** Safety-specific fuzz targets (sanitizer, validator, leak detector, credential detect) have moved to `crates/optimclaw_safety/fuzz/`. See that directory's README for details.
|
|
|
|
## Targets
|
|
|
|
| Target | What it exercises |
|
|
|--------|-------------------|
|
|
| `fuzz_tool_params` | Tool parameter and schema JSON validation |
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
cargo install cargo-fuzz
|
|
rustup install nightly
|
|
```
|
|
|
|
## Running
|
|
|
|
```bash
|
|
# Run a specific target (runs until stopped or crash found)
|
|
cargo +nightly fuzz run fuzz_tool_params
|
|
|
|
# Run with a time limit (5 minutes)
|
|
cargo +nightly fuzz run fuzz_tool_params -- -max_total_time=300
|
|
```
|
|
|
|
## Adding New Targets
|
|
|
|
1. Create `fuzz/fuzz_targets/fuzz_<name>.rs` following the existing pattern
|
|
2. Add a `[[bin]]` entry in `fuzz/Cargo.toml`
|
|
3. Create `fuzz/corpus/fuzz_<name>/` for seed inputs
|
|
4. Exercise real OptimClaw code paths, not just generic serde
|
|
|
|
For safety-only targets, add them to `crates/optimclaw_safety/fuzz/` instead.
|