Testing
Each engine is tested against the real system it replaces. Every container a test starts is throwaway, memory-capped and removed with its volumes.
| Suite | Proves |
|---|---|
cargo test | Engines and server: SQL, row-level security, storage, simulations, cache, streams, migrations |
tests/e2e/run.sh | All four SDKs (with AutoGraph) and TLS against a fresh server |
tests/e2e/console.sh | The Control Center in Chromium: every page, night mode, phone width |
tests/wire/run.sh | psql, node-postgres and Drizzle over the Postgres protocol |
tests/cache/run.sh | redis-cli, ioredis, node-redis; 866 replies compared with Redis 7.4 in Docker |
tests/stream/run.sh | kafkajs and librdkafka; a session compared with Apache Kafka 3.9 in Docker |
tests/objects/run.sh | The AWS SDK over S3 |
tests/search/run.sh | Indexing, ranking, tenants, live sync, restarts |
tests/migrate/run.sh | Every migration source against real PostgreSQL, MySQL, Redis, Kafka and S3 in Docker |
tests/diff/run.sh | Random queries and scenarios (views, triggers, functions, windows) on Propus and PostgreSQL 18; results must match |
tests/diff/extensions.sh | Vector queries against pgvector and geometry queries against PostGIS in Docker; results must match |
tests/replication/run.sh <binary> | A primary and replicas in separate containers: following, refused writes, new and dropped databases, restarts, synchronous commits, promotion, failover |
tests/installer/run.sh <binary> | The installer in a throwaway Ubuntu container: signatures, permissions, TLS, upgrade, rollback, uninstall |
tests/all.sh | Everything above plus cargo fmt --check and clippy, with a summary |
tests/all.sh needs Docker, Node, Python, a JDK with Maven, .NET, redis-cli and psql. Logs go to $LOGS (a temp folder by default).
Beyond features
- Seeded simulations of transactions, crashes and schema changes; a failure prints its seed to replay.
- The server is killed mid-write and every acknowledged transaction must survive.
- Bytes in data files are flipped and the damage must be reported, never served.
- Secrets and audited SQL must never reach the disk unencrypted.