Skip to content

Guide: update fuzzing docs with platform requirements, VMBus example, and operational guidance#3029

Merged
mattkur merged 2 commits intomicrosoft:mainfrom
mattkur:guide-fuzzing-docs
Mar 18, 2026
Merged

Guide: update fuzzing docs with platform requirements, VMBus example, and operational guidance#3029
mattkur merged 2 commits intomicrosoft:mainfrom
mattkur:guide-fuzzing-docs

Conversation

@mattkur
Copy link
Contributor

@mattkur mattkur commented Mar 17, 2026

Updates the fuzzing Guide pages:

  • fuzzing.md: Added Linux-only/aarch64 platform warning and fuzzer category overview
  • running.md: Added lldb/lcov dependencies, crash reproduction, crash minimization (tmin), corpus management (cmin), parallel fuzzing (-fork=N), coverage filtering tip
  • writing.md: Replaced VMBus device fuzzing TBD section with a fuzz_storvsp-based example showing connected_async_channels, TestWorker, protocol negotiation, and select! teardown pattern

… and operational guidance

Why is this change being made?
- fuzzing.md had no platform requirements or fuzzer category overview
- running.md was missing crash reproduction, corpus management, and parallel fuzzing
- writing.md marked VMBus device fuzzing as TBD despite fuzz_storvsp existing

What changed?
- fuzzing.md: added Linux-only/aarch64 warning, fuzzer category overview
- running.md: added lldb/lcov dependencies, platform warning, build command,
  crash reproduction, crash minimization (tmin), corpus management (cmin),
  parallel fuzzing (-fork=N), coverage filtering tip
- writing.md: replaced VMBus TBD with fuzz_storvsp-based example showing
  connected_async_channels, TestWorker, protocol negotiation, select! teardown

How was the change tested?
- N/A (documentation only)
@mattkur mattkur requested a review from a team as a code owner March 17, 2026 18:21
Copilot AI review requested due to automatic review settings March 17, 2026 18:21
@github-actions github-actions bot added the Guide label Mar 17, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the OpenVMM fuzzing guide to reflect current platform constraints and provide more actionable workflows and examples for running and authoring fuzzers.

Changes:

  • Documented Linux-only (and aarch64-specific) platform requirements for fuzzing.
  • Expanded “running fuzzers” guidance with debugging, crash reproduction/minimization, corpus management, and parallel runs.
  • Replaced the VMBus device fuzzing “TBD” with a storvsp-based example and recommended control-flow pattern.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
Guide/src/dev_guide/tests/fuzzing.md Adds platform requirements and a high-level overview of fuzzer categories.
Guide/src/dev_guide/tests/fuzzing/running.md Adds operational guidance (lldb/lcov deps, repro/tmin/cmin, parallel fuzzing, coverage tip) and fixes a small formatting issue.
Guide/src/dev_guide/tests/fuzzing/writing.md Replaces the VMBus device fuzzing placeholder with an end-to-end example and recommended pattern.

Comment on lines +184 to +186

fn do_fuzz(u: &mut Unstructured<'_>) -> Result<(), anyhow::Error> {
DefaultPool::run_with(async |driver| {
fn do_fuzz(u: &mut Unstructured<'_>) -> Result<(), anyhow::Error> {
DefaultPool::run_with(async |driver| {
let (host, guest_channel) = connected_async_channels(4 * 1024);
let guest_queue = Queue::new(guest_channel).unwrap();

## Running

While its entirely possible to run the various fuzzers in the OpenVMM repo using
@@ -105,7 +185,13 @@ To generate a report with "sane defaults", you can simply run:
cargo xtask fuzz coverage fuzz_ide --with-html-report
@github-actions
Copy link

- Fix async closure syntax: async |driver| -> |driver| async move
- Replace .unwrap() with ? in example code
- Present lldb as a suggestion, not a requirement
- Fix 'its' -> 'it's' typo
- Remove aarch64 RUSTFLAGS note (handled by .cargo/config.toml)
- Add +nightly to coverage command for consistency
@github-actions
Copy link

@mattkur mattkur merged commit 34f793f into microsoft:main Mar 18, 2026
77 of 82 checks passed
@mattkur mattkur deleted the guide-fuzzing-docs branch March 18, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants