berrypod/test/support/bench_repo.ex
jamey 162bf4ca53 add SQLite concurrency tests and bench task
BenchRepo for isolated concurrency testing against temp DB files.
Correctness tests prove WAL concurrent reads, IMMEDIATE transaction
mode vs DEFERRED upgrade failures, and PRAGMA application. Benchmark
tests (tagged :benchmark, excluded by default) measure throughput.

mix bench.sqlite runs HTTP load scenarios against the full Phoenix
stack with --prod, --scale, --pool-size, and --busy-timeout options.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 09:23:36 +00:00

13 lines
362 B
Elixir

defmodule Berrypod.BenchRepo do
@moduledoc """
Standalone Ecto Repo for SQLite concurrency tests.
Started dynamically against temp DB files — no Sandbox, no Application
config dependency. Each test controls pool size, PRAGMAs, and transaction
mode independently.
"""
use Ecto.Repo,
otp_app: :berrypod,
adapter: Ecto.Adapters.SQLite3
end