StoreTck
A whole store's contract: the backend gives the config of a store, and the kit opens it through its StoreProvider, as the host does, and runs every port's spec against what the store opens. A port the provider forgets to open, or opens wrong, fails here, where the per-port specs (which a backend's test feeds its own classes) would not see it.
EventLogSpec when the store holds logs (Store.holdsLogs), its snapshot store beside it when it holds snapshots too;
SnapshotStoreSpec when it holds snapshots (Store.holdsSnapshots);
the control plane when it holds logs, its home: TimerStoreSpec, CheckpointStoreSpec, LeaseStoreSpec, FailureLedgerSpec (with FailureLedgerContextsSpec) and ReservationStoreSpec. A store that holds no log must refuse each of those ports, and its log, with an error that says so (UnsupportedOperationException).
A spec that does not apply to the store skips with the reason. Each test opens one store from config, as the host does, and creates its schema as its ports open; a store in memory keeps its data in that instance, so the test's ports share it. The specs keep their tests apart by their own contexts, groups and names. Where a spec moves the time, the store is opened with its clock (StoreConfig.clock).
A backend extends it with its configuration, and keeps its per-port specs for what only they reach (a hook of its own). The report names the backend's class and the port: PostgresStoreTck > EventLog > ... (PortNames).