A database vendor saying “trust our tests” is worth little. This page lists the evidence instead: tests other people wrote, tests that were proven to fail before the feature existed, crash tests that kill the process for real, and every known divergence — documented, not hidden.
The MongoDB unified spec tests (mongodb/specifications) are the language-neutral JSON files every official MongoDB driver is validated against. We run all 189 CRUD files against the OxiDB document engine:
| Result | Count | Meaning |
|---|---|---|
| Passed | 147 | Byte-for-byte the behavior MongoDB's spec demands: CRUD, upsert seeding, $setOnInsert, pipeline updates, arrayFilters, bulkWrite, findOneAnd*, projections, matched-vs-modified counting |
| Unexpected failures | 0 | — |
| Known divergences | 4 | All one root cause, documented in the runner: OxiDB assigns document ids itself, so a duplicate client-supplied _id does not error |
| Skipped | ~385 | Every one with a machine-readable reason: legacy-server error emulation (117), driver-internal concepts (command monitoring, read/write concerns, failpoints), 5.0 $setField escape hatches |
The suite runs with scripts/run_mongo_spec.sh. The spec files are CC BY-NC-SA licensed, so they are cloned at run time rather than vendored — and the adapter's one shim (engine-assigned _id) is documented in the runner's header, not smuggled past you.
On the SQL side the same philosophy already ran its course: the EF Core provider passes all 3832 of Microsoft's official EF Core relational specification tests.
Graceful shutdown hides durability bugs: Drop flushes in-memory state and papers over a lost write. Every OxiDB crash suite therefore SIGKILLs a subprocess mid-write and verifies acknowledged writes after recovery — WAL replay, sealed-segment replay, checkpoint interleavings, multi-collection atomicity, encrypted stores.
Two findings that shaped the method:
An unauthenticated fuzz harness against the wire protocol found 4 real denial-of-service bugs (fixed in 0.28.3; servers older than that are vulnerable). A fuzzer that has never caught anything is a fuzzer that isn't trying; ours has a trophy list and keeps running.
OxiDB documents exactly which anomalies its OCC model admits and which it excludes — a per-anomaly scorecard in docs/isolation.md, pinned by a characterization suite so the docs cannot drift from the engine. Aggregations are snapshot-consistent by default (MVCC-lite): a concurrent aggregate can never observe half a transfer.
The 1M-document MongoDB comparison runs both engines natively, same machine, same indexes, client outside Docker (an earlier setup measured a Docker port-forward artifact and flattered nobody — we documented it). Current standing: OxiDB faster in 12 of 18 operations, including every aggregation and bulk updates. The losses are printed too, with their causes:
F_FULLFSYNC (~4 ms on Apple SSDs, measured); MongoDB's default acknowledges before its journal reaches disk. At equal durability settings the two engines are within 2µs of each other — the gap is a durability policy, not engine speed.One harness lesson worth stealing: in an earlier EF Core benchmark, the more OxiDB won a round, the worse its next number looked — the idle server paid recovery inside the measured window. Benchmarks get root-caused here like bugs do.
| Suite | Standing |
|---|---|
| Core engine (unit + integration, incl. crash suites) | 898 / 898 |
| MongoDB CRUD specification tests | 147 passed, 0 unexpected failures |
| EF Core relational specification tests (SQL engine) | 3832 / 3832 |
| Server suites (ACID, security, protocol) | green |
| WASM build (document engine) | clean |