Guide: update fuzzing docs with platform requirements, VMBus example, and operational guidance#3029
Merged
mattkur merged 2 commits intomicrosoft:mainfrom Mar 18, 2026
Merged
Conversation
… 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)
Contributor
There was a problem hiding this comment.
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 | |||
smalis-msft
reviewed
Mar 17, 2026
smalis-msft
reviewed
Mar 17, 2026
- 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
smalis-msft
approved these changes
Mar 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates the fuzzing Guide pages: