Files
alkblobs/tests/conformance/main.rs
T
glm-5.3-flash aa96f8b981 feat(tests): the conformance suite's pg-lo column — the LO-medium SKIP-posture column green (wave 5)
- tests/conformance/pg_lo_column.rs (new): the two pair-gated factories
  (DualTierMemPgLoFactory on all(mem, pg-lo) — the one-window-host rule's
  named test topology; DualTierPostgresPgLoFactory on
  all(postgres, pg-lo) — the consolidation posture, two schemas per open,
  carrying the dormancy row), a fresh dedicated database per open with
  the engine-owned schemas minted inside, teardown reaping tracked LOIDs
  (lo_unlink) then dropping the minted schemas then the database
  (WITH (FORCE)) with per-open drop-guard janitors for the abandoned
  paths, and the rows: the verbatim form-independent mirror (INV-1, INV-6,
  the two no-op abort shapes), the schedule-relative INV-2/3, the
  two-sweep exact counts over the full protection set across each
  factory's observed window host, the window-delay race, the
  holder-stages-only lease, INV-5's durable row, the three dispatch rows
  over the LO-medium placement oracle, the INV-1 extension (window-edge
  ranged reads + the planted-overclaim beyond-length clean failure), the
  virgin-store rows, and the dormancy row; structural isolation +
  panicking-row tests probing zero orphan residue (no kv-only rejection
  row — recorded; pg-lo is a large engine)
- the LO-isolation corollary carried in the engine task's recorded
  per-test-database shape (the C7 lesson): zero LO residue on the shared
  harness database is structural, so the engine suite's
  shared_harness_db_holds_zero_lo_residue gate stays green alongside the
  column under --all-features
- main.rs: the pg_lo_column gate (feature pg-lo, default-off) + the
  columns' doc paragraph
- README: the pg-lo rows table in §Columns beyond the reference set, the
  SKIP-posture note naming the second landed column and the per-factory
  feature-pair gating, current state = five columns
- store.rs: one mechanical gate fix — the PgOpts import was unused in the
  sqlite+pg-lo config (tripping clippy --features pg-lo -D warnings);
  the gate now names the configs that consume it

Verification (harness server live 2026-10-12): --all-features against the
server fully green (188 lib + 106 conformance + 4 git-interop; zero
LO/schema/database residue after the run); default test green (69/19/3);
--features "pg-lo,mem" and "postgres,pg-lo" green server-less
(skipping cleanly) and --features pg-lo alone; clippy -D warnings green
on default, pg-lo, pg-lo+mem, postgres+pg-lo, all-features; fmt --check
green; cargo doc --no-deps clean.
2026-10-12 08:47:55 +00:00

74 lines
3.1 KiB
Rust

//! `main.rs` — the conformance test target's root.
//!
//! The suite is in-crate by decided point (docs/plans/implementation.md):
//! engines are features of one crate, so the harness is factory-
//! parameterized over engine constructors rather than a sibling suite
//! crate. This target carries the skeleton (factory trait shape, the
//! stamp convention, the invariant backlog registry — see
//! [`README`](./README.md)) plus the **wave-2 factory binding**: the
//! `Store` facade type landed as the concrete `alkblobs::Store`
//! (engine-blind; src/store.rs holds the engine-representation design
//! point), and the skeleton's `Store` associated type collapsed into
//! it — `open` vends the concrete facade type directly, recorded in
//! `factory.rs` and the README. The wave-1 mock probe retired with it;
//! the binding demonstrator ([`binding`], mem-gated — mem is the
//! skip-free reference shape) proves the contract implementable
//! against the real type.
//!
//! The reference rows landed with wave 2's mem column: [`rows`] holds
//! the reference row set (INV-1…6 plus the two constructor-mode rows,
//! ADR-stamped, traced to [`backlog`]); the columns' records live in
//! their module docs ([`README`](./README.md) §The reference row set
//! is the recorded inventory other columns mirror).
//!
//! The columns: [`mem_column`] — the contract-reference column;
//! [`local_column`] — the suite's first dual-tier column (the
//! `kv = mem` + `large = local` dispatch-coverage shape ADR-012 §6.3
//! names), which mirrors the reference set and grows the
//! dispatch-coverage and local-specific rows; [`sqlite_column`] — the
//! suite's first SQL-backed column (the default-build production
//! shape, `kv = sqlite` + `large = local`), which mirrors the
//! form-independent reference rows and grows the durable-schedule
//! sweep rows (README §The schedule-relative reading for SQL-backed
//! columns); [`postgres_column`] — the suite's first SKIP-posture
//! column (the fleet-capable-kv shape, `kv = postgres` + `large =
//! `local`, feature `postgres` default-off), which mirrors the same
//! sets against the harness server and skips cleanly server-less;
//! [`pg_lo_column`] — the suite's second SKIP-posture column (the
//! LO-medium column, feature `pg-lo` default-off, its two factories
//! spanning feature pairs `mem`+`pg-lo` and `postgres`+`pg-lo`), which
//! runs the same sets against the LO medium and skips cleanly
//! server-less.
//!
//! Items beyond the tests below are the later columns' surface, hence
//! the scoped `#![allow(dead_code)]` — it shrinks as columns land.
#![allow(dead_code)]
mod backlog;
#[cfg(feature = "mem")]
mod binding;
mod factory;
#[cfg(feature = "mem")]
mod local_column;
#[cfg(feature = "mem")]
mod mem_column;
#[cfg(feature = "pg-lo")]
mod pg_lo_column;
#[cfg(feature = "postgres")]
mod postgres_column;
mod rows;
#[cfg(feature = "sqlite")]
mod sqlite_column;
mod stamp;
#[test]
fn stamp_marker_matches_convention() {
assert_eq!(stamp::STAMP_MARKER, "Contract stamp:");
}
#[test]
fn backlog_registers_the_seven_invariants() {
backlog::assert_traceable();
}