Execution — db-23 capstone

Build & test

# everything
bash scripts/verify.sh

# cross-language identity check
bash scripts/cross_test.sh

verify.sh runs the 9-test suite in each of Rust, Go, and C++ and ends with === OK ===. cross_test.sh builds three dbctl binaries, runs both scenarios in each language, asserts equality across the three languages, and asserts each matches the frozen golden hash, then ends with === ALL OK ===.

Per-language one-liners

# Rust
( cd src/rust && cargo test --release --lib tests )
( cd src/rust && cargo run --release --bin dbctl -- \
    hash workload --seed 42 --ops 200 --keys 16 --scenario normal; echo )

# Go
( cd src/go && go test ./... )
( cd src/go && go run ./cmd/dbctl \
    hash workload --seed 42 --ops 200 --keys 16 --scenario normal; echo )

# C++
( cd src/cpp && cmake -S . -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j )
src/cpp/build/test_db23
src/cpp/build/dbctl hash workload --seed 42 --ops 200 --keys 16 --scenario normal; echo

CLI shape

dbctl hash workload --seed N --ops N --keys N --scenario <normal|fault>
  • Prints the SHA-256 hex of the cluster snapshot to stdout.
  • Writes no trailing newline (matches db-22 convention so shell comparisons stay simple).
  • Exits 2 on bad arguments.

Frozen scenarios

ScenarioCommand
normaldbctl hash workload --seed 42 --ops 200 --keys 16 --scenario normal
faultdbctl hash workload --seed 7 --ops 2000 --keys 128 --scenario fault

Expected outputs:

normal: 5976b45b9f40f440e8249da27fe4fe752e005f606efc3596bdb25ca4e4f99296
fault : d67c36725af65242e985a308db5152af2a3e2525fab33d11ed6e826a252ff792