Summary
Establish continuous integration to prevent regressions and add advanced testing infrastructure.
No CI pipeline
The project has no automated CI. Formatting, linting, tests, and dependency audits are not run on push or pull request, so regressions, style drift, and known vulnerabilities in dependencies can land unnoticed.
No fuzz testing for protocol and persistence parsing
The wire protocol parser (Message::receive() / Message::receive_async()), WAL entry decoding, and input parsing functions accept untrusted byte input but are never fuzz-tested. Malformed or adversarial input could trigger panics, out-of-bounds access, or logic errors that only surface in production.
Benchmarks don't produce statistically meaningful results
The current benchmarks in src/bench/ use println!() for output, with no statistical analysis, warmup, or variance reporting.
Acceptance Criteria
Summary
Establish continuous integration to prevent regressions and add advanced testing infrastructure.
No CI pipeline
The project has no automated CI. Formatting, linting, tests, and dependency audits are not run on push or pull request, so regressions, style drift, and known vulnerabilities in dependencies can land unnoticed.
No fuzz testing for protocol and persistence parsing
The wire protocol parser (
Message::receive() / Message::receive_async()), WAL entry decoding, and input parsing functions accept untrusted byte input but are never fuzz-tested. Malformed or adversarial input could trigger panics, out-of-bounds access, or logic errors that only surface in production.Benchmarks don't produce statistically meaningful results
The current benchmarks in
src/bench/useprintln!()for output, with no statistical analysis, warmup, or variance reporting.Acceptance Criteria