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.
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.csrc/io/event_dispatcher_epoll.csrc/io/event_dispatcher_kqueue.csrc/io/event_dispatcher_io_uring.csrc/fkvs-cli.csrc/fkvs-benchmark.cScope
fkvs-serveras a subprocess and exercise it throughfkvs-clior raw protocol clients.Acceptance criteria