Repository navigation
Conversation
Pull request dashboard statusWaiting on reviewers · refreshed 2026-10-22 21:00 UTC Review the latest changes. Status above doesn't look right?
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3805 +/- ##
=======================================
- Coverage 84.3% 84.3% -0.1%
=======================================
Files 124 124
Lines 30673 30673
=======================================
- Hits 25882 25880 -2
- Misses 4791 4793 +2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Hey @herin049 this is cool! It's nice it immediately found an issue, and to your point I agree it would be clean to address that particular issue in this PR also 💪 |
Most of this comes from the fact that I wanted to make the fuzzing structure aware. If you'd prefer, I can strip this down to a bare minimum fuzzer with just string inputs. The downside being that it is much less likely to catch real bugs in our implementation. I'm also not very familiar with |
Changes
Adds a
cargo-fuzzcrate infuzz/.Note:
cargo-fuzzrequires nightly so I've left it outside the workspace.This PR adds the required scaffodling for fuzzing with
cargo-fuzzand adds a few basic fuzz targets for trace context/trace state parsing. The fuzz tests use thepestcrate + corresponding pest grammars as oracles for correctness verification. The fuzz tests also implement structure aware fuzzing using thearbitrarycrate for better coverage.The trace state targets run clean (I ran each for ~10 million iterations). The trace context target currently fails because
extract_span_contextdoesn't check the length of the traceparent fields (e.g. a 30 chartrace-id or a 1-char parent-id/flags is accepted). This is a pretty trivial/minor issue, but I figure we might as well address it unless there are objections.
No CI wiring yet.
Merge requirement checklist
CHANGELOG.mdfiles updated for non-trivial, user-facing changes