We've adopted `tracing` for diagnostics, but currently, it is just being used as a drop-in replacement for the `log` crate. Ideally, we would want to start emitting more structured diagnostics, using `tracing`'s `Span`s and structured key-value fields. A lot of the logging in `h2` is already written in a style that imitates the formatting of structured key-value logs, but as textual log messages. Migrating the logs to structured `tracing` events therefore is pretty easy to do. I've also started adding spans, mostly in the read path. Finally, I've updated the tests to use `tracing` rather than `env_logger`. The tracing setup happens in a macro, so that a span for each test with the test's name can be generated and entered. This will make the test output easier to read if multiple tests are run concurrently with `--nocapture`. Signed-off-by: Eliza Weisman <eliza@buoyant.io>
h2 integration tests
This crate includes the h2 integration tests. These tests exist in a separate
crate because they transitively depend on the unstable feature flag via
h2-support. Due to a cargo limitation, if these tests existed as part of the
h2 crate, it would require that h2-support be published to crates.io and
force the unstable feature flag to always be on.
Setup
Install honggfuzz for cargo:
cargo install honggfuzz
Running
From within this directory, run the following command:
HFUZZ_RUN_ARGS="-t 1" cargo hfuzz run h2-fuzz