Skip to content

Set up CI: GitHub Actions, fuzzing, and criterion benchmarks #13

@meonthewire

Description

@meonthewire

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

  • CI runs on every push and PR
  • cargo fmt, clippy, test, and audit all gate merges
  • At least 3 fuzz targets defined
  • Benchmarks produce reproducible, statistical results

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions