Skip to content

Add production-grade server/client integration, fuzz, and soak tests #75

Description

@AlexJuca

Context

Most current integration coverage calls command handlers directly through socketpair(). That is useful, but production readiness needs tests that exercise the real server binary, event loop backends, network behavior, and long-running resource stability.

Relevant areas:

  • tests/test_integration.c
  • src/io/event_dispatcher_epoll.c
  • src/io/event_dispatcher_kqueue.c
  • src/io/event_dispatcher_io_uring.c
  • src/fkvs-cli.c
  • src/fkvs-benchmark.c

Scope

  • Add tests that start fkvs-server as a subprocess and exercise it through fkvs-cli or raw protocol clients.
  • Cover TCP and Unix domain socket modes.
  • Cover pipelined requests, partial frames, split writes, partial reads, disconnects, and backpressure.
  • Add malformed frame tests that verify the server drops or errors safely without crashing.
  • Add soak tests for repeated SET/GET/DEL/TTL cycles and client churn.
  • Add optional stress/benchmark smoke tests with stable pass/fail thresholds.

Acceptance criteria

  • Real server integration tests run in CI with bounded timeouts.
  • At least one test exercises each supported event backend where practical.
  • Malformed clients cannot crash or hang the server.
  • Long-running soak tests show no obvious fd leaks or memory growth under sanitizers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions