Skip to main content

atomr_persistence_tck/
lib.rs

1//! atomr-persistence-tck.
2//!
3//! Provides reusable spec functions plugin authors can call against their
4//! [`Journal`](atomr_persistence::Journal) and
5//! [`SnapshotStore`](atomr_persistence::SnapshotStore) implementations.
6//!
7//! The suite is split into [`journal_suite`] and [`snapshot_suite`] modules
8//! (plus the lightweight round-trip helpers retained for historical usage).
9
10mod journal_suite;
11mod snapshot_suite;
12
13pub use journal_suite::{
14    journal_concurrent_suite, journal_extended_suite, journal_replay_edge_cases, journal_round_trip,
15    journal_suite, journal_tag_suite,
16};
17pub use snapshot_suite::{snapshot_extended_suite, snapshot_round_trip, snapshot_suite};
18
19#[cfg(test)]
20mod tests {
21    use super::*;
22    use atomr_persistence::{InMemoryJournal, InMemorySnapshotStore};
23
24    #[tokio::test]
25    async fn in_memory_journal_round_trip() {
26        assert!(journal_round_trip(InMemoryJournal::new(), "tck-j").await);
27    }
28
29    #[tokio::test]
30    async fn in_memory_journal_full_suite() {
31        journal_suite(InMemoryJournal::new(), "tck-full").await;
32    }
33
34    #[tokio::test]
35    async fn in_memory_snapshot_round_trip() {
36        assert!(snapshot_round_trip(InMemorySnapshotStore::new(), "tck-s").await);
37    }
38
39    #[tokio::test]
40    async fn in_memory_snapshot_full_suite() {
41        snapshot_suite(InMemorySnapshotStore::new(), "tck-s-full").await;
42    }
43
44    #[tokio::test]
45    async fn in_memory_journal_extended_suite() {
46        journal_extended_suite(InMemoryJournal::new(), "tck-j-ext").await;
47    }
48
49    #[tokio::test]
50    async fn in_memory_journal_concurrent_suite() {
51        journal_concurrent_suite(InMemoryJournal::new(), "tck-j-conc").await;
52    }
53
54    #[tokio::test]
55    async fn in_memory_journal_edge_cases() {
56        journal_replay_edge_cases(InMemoryJournal::new(), "tck-j-edge").await;
57    }
58
59    #[tokio::test]
60    async fn in_memory_snapshot_extended_suite() {
61        snapshot_extended_suite(InMemorySnapshotStore::new(), "tck-s-ext").await;
62    }
63}