1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Shared test fixtures for the single-binary Postgres harness (RELIAR-27): a minimal `Message`
//! body, two `Serializer` fixtures, and the real-Postgres harness itself (§8.2).
//!
//! [`inbox`] holds the inbox scenario files' own fixtures (a throwaway business table + two
//! `InboxHandler`s) — kept in its own file since none of it is outbox-shaped. [`faults`] holds
//! `FaultyStore`, the store-fault decorator (ADR 0043 §4); [`transport`] holds `StubTransport`,
//! its `Publisher`-side counterpart (ADR 0043 A.1) — succeed, stall or panic, never fail;
//! [`metrics`] holds `CountingMetrics`, a harness-local `OutboxMetrics` recorder (ADR 0043 A.5).
//! [`decorators`] holds the claim-shaping
//! decorators (`OverDeliveringStore`, `CountingStore`, `PoisoningStore`) the dispatcher's
//! claim-cadence and concurrency trials wrap `PostgresOutboxStore` in. [`db`] owns the shared
//! container and the migrated-template-per-test harness; [`seed`], [`time`] and [`wait`] are the
//! scenario-seeding, SQL-time-travel and bounded-poll helpers built on top of it; [`recorder`]
//! installs the recording `tracing` subscriber the second phase's trials use.
//!
//! **The one thing that changed for RELIAR-27**: the shared `ContainerAsync` is never stored in
//! a `static`. A `static` is never dropped at process exit, so `Drop` — the *only* container
//! removal path in `testcontainers` 0.27 (there is no Ryuk/reaper) — never ran; combined with
//! one container-starting binary per scenario file, that leaked one Postgres container (with
//! its volumes) per file, per run. [`db::start_shared_container`] instead returns the container
//! to its caller (`tests/postgres/main.rs`), which keeps it as a **local** for the process's
//! whole lifetime and drops it explicitly before exiting — see that file's module docs.
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;