Testing · evidence · next gates
What has been tested
Ruvio has protocol, compatibility, persistence, recovery, client, and runtime-safety checks, plus dated performance measurements. This page separates test coverage from evidence of a recent run—and calls out the production questions that remain open.
pr-gate.yml runs for pull requests and pushes to
main. Extended ci.yml, integration-package,
and Pages deployment workflows require manual dispatch. Coverage does
not imply a passing run on the current commit.
Explore the evidence
Each topic shows test conditions, measured outcomes, limitations and links to the underlying methodology. These are dated observations—not an all-workloads capacity, durability or compatibility guarantee.
Automated test coverage
| Area | What is exercised | Where |
|---|---|---|
| Core and portability | Rust unit/integration tests, formatting, Clippy, and store smoke on macOS, Linux, and Windows. | ci.yml |
| Protocol and compatibility | RESP conformance, supported-command differential checks against Redis, compatibility-matrix drift, and multi-shard routing smoke. | ci.yml |
| Persistence and recovery | WAL and snapshot recovery, corruption/checksum rejection, missing segments, TTL restart, backup/restore, and frozen-format compatibility. | Release evidence |
| Clients and integrations | Live-server Rust and .NET client suites; separate integration-package tests and packing. | CI · Integration workflow |
| Runtime safety | RESP parser fuzzing, AddressSanitizer, and selected Miri tests. | ci.yml |
| Supply chain | Dependency policy, release version checks, SBOM generation, and security-policy checks. | ci.yml |
Run the tests
Clone the repository and run the portable test entry point from its root. The default runs formatting, all Rust targets, and a store smoke example; resilience scenarios are opt-in.
| Environment | Core checks | Optional resilience checks |
|---|---|---|
| macOS / Linux / WSL | ./scripts/test.sh | ./scripts/test.sh --native-resilience and ./scripts/test.sh --docker-resilience |
| Windows PowerShell | .\scripts\test.ps1 | .\scripts\test.ps1 -NativeResilience and .\scripts\test.ps1 -DockerResilience |
Clippy is opt-in with --clippy or -Clippy. Docker tests require Docker Engine with Linux containers and tmpfs support. For WSL filesystem tests, keep the checkout and data under the Linux filesystem rather than /mnt/c. See the full test guide for prerequisites and limitations.
Docker resilience run · 2026-10-03
All five manual scenarios passed on Docker Engine 29.8.0, Linux/aarch64, using image ruvio:resilience-test (sha256:56dcb352…).
The 30-second mixed SET/GET/INCR soak completed 48,413 iterations (145,239 commands). Mutations during the injected filesystem failures returned MISCONF; after the fault was removed and Ruvio restarted, acknowledged keys were verified. Scenario details and rerun instructions.
Native crash recovery · macOS · 2026-10-03
On an Apple M4 Pro, three randomized process kills during concurrent writes passed for each WAL durability profile. Recovery preserved a continuous key prefix and every client-observed acknowledged write.
| Profile | Trials | Recovered keys | Acknowledged writes |
|---|---|---|---|
everysec | 3 / 3 passed | 297, 576, 810 | All preserved |
always | 3 / 3 passed | 592, 621, 320 | All preserved |
This is native process-crash evidence, not host power-loss or physical-device testing. Native macOS disk-full and permission-denial scenarios remain untested.
Performance and memory evidence
The public 17-command Redis comparison and one-million-string and equal-pass memory probes show the 2026-10-07 conditions, numbers, limits and downloadable raw JSON on this site; a GitHub account or repository access is not needed to read them. Other dated records include Docker Desktop workloads and a Cherry EPYC 7313P Linux run. Laptop and Docker results are not production-hardware claims.
Benchmark samples Command throughput and methods String and churn memory Repository benchmark notes (access required) Bare-metal evidence Memory density
Still needed for production confidence
- Host power-loss and production-like physical-storage flush testing.
- A 24-hour mixed-workload soak remains unvalidated and is not part of the current test plan.
- Native macOS disk-full and permission-denial tests outside Docker Desktop's Linux VM.
- Published, repeatable bare-metal Linux latency and throughput measurements.
- Repeated failover drills with measured recovery time; replica promotion is currently manual.
- Signed build provenance in addition to checksums and the generated SBOM.
Use the testing evidence guide and release gates to track these as the test plan grows.