diff --git a/packages/turso-sync/src/lib.rs b/packages/turso-sync/src/lib.rs index b280e1d4d..f5697c51e 100644 --- a/packages/turso-sync/src/lib.rs +++ b/packages/turso-sync/src/lib.rs @@ -1,9 +1,18 @@ +pub mod database; pub mod database_tape; pub mod errors; pub mod types; pub type Result = std::result::Result; +mod database_inner; +mod filesystem; +mod metadata; +mod sync_server; +#[cfg(test)] +mod test_context; +mod wal_session; + #[cfg(test)] mod tests { use tracing_subscriber::EnvFilter; @@ -12,6 +21,34 @@ mod tests { fn init() { tracing_subscriber::fmt() .with_env_filter(EnvFilter::from_default_env()) + // .with_ansi(false) .init(); } + + pub fn seed_u64() -> u64 { + seed().parse().unwrap_or(0) + } + + pub fn seed() -> String { + std::env::var("SEED").unwrap_or("0".to_string()) + } + + pub fn deterministic_runtime_from_seed>( + seed: &[u8], + f: impl Fn() -> F, + ) { + let seed = tokio::runtime::RngSeed::from_bytes(seed); + let runtime = tokio::runtime::Builder::new_current_thread() + .enable_time() + .start_paused(true) + .rng_seed(seed) + .build_local(Default::default()) + .unwrap(); + runtime.block_on(f()); + } + + pub fn deterministic_runtime>(f: impl Fn() -> F) { + let seed = seed(); + deterministic_runtime_from_seed(seed.as_bytes(), f); + } }