# mongo-kotlin-driver Validation Report Generated 2026-07-16 — SecantusDB 0.5.4b234 vs mongo-kotlin-driver cb45be6bb147 (`vendor/mongo-java-driver/driver-kotlin-sync/`). Run `uv run python -m invoke validate-kotlin` to refresh. This is the official MongoDB **Kotlin** driver gauge — the Kotlin sync client (which ships in the mongo-java-driver monorepo) exercised end-to-end against a standalone SecantusDB daemon. ## Scope `driver-kotlin-sync/src/integrationTest/` contains **3** test classes upstream. The gauge currently runs **2** of them (~67%). The rest are either out of scope (search-index / change-stream-resume / retryable scenarios that need features SecantusDB doesn't implement) or unaudited — each new class needs the runner's wall-clock guard to confirm it terminates before it's added to `kotlin_validation/include_modules.py`. The pass rate below describes the included subset, not the whole integration tree. ## Summary by module | Module | Passed | Failed | Skipped | Total | Pass rate | |---|---:|---:|---:|---:|---:| | `driver-kotlin-sync` | 294 | 0 | 244 | 538 | 100.0% | | **Overall** | **294** | **0** | **244** | **538** | **100.0%** | ## How this is generated **mongo-kotlin-driver's integration tests are run unmodified, against a standalone SecantusDB daemon.** The Kotlin driver lives in the mongo-java-driver monorepo (`vendor/mongo-java-driver/driver-kotlin-sync/`), checked out at the pinned upstream tag with zero local edits. `kotlin_validation/runner.py` does the same two-phase spawn as the Java gauge: phase 1 boots `python -m secantus --port 0 --storage-path --standalone` without `--auth` and seeds `root-user` (root role) via pymongo; phase 2 restarts on the same tempdir **with `--auth`**. Gradle then runs the bundled wrapper's `:driver-kotlin-sync:integrationTest` task with `-Dorg.mongodb.test.uri=mongodb://root-user:password@…/?authSource=admin`. These are **integration tests** under `driver-kotlin-sync/src/integrationTest/` — every test opens a real TCP connection through the Kotlin client (over its `syncadapter` shim), SCRAM-authenticates, and exchanges wire commands. The pure-Mockito unit tests under `src/test/` never touch a server and are intentionally excluded. The driver writes JUnit XML to `/build/test-results/integrationTest/TEST-*.xml`; we copy those out of the vendored tree (so the submodule stays untouched) and parse them here. Widen `kotlin_validation/include_modules.py` to add more classes.