mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-27 04:54:21 +01:00
add lib
This commit is contained in:
@@ -1,9 +1,18 @@
|
||||
pub mod database;
|
||||
pub mod database_tape;
|
||||
pub mod errors;
|
||||
pub mod types;
|
||||
|
||||
pub type Result<T> = std::result::Result<T, errors::Error>;
|
||||
|
||||
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<F: std::future::Future<Output = ()>>(
|
||||
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: std::future::Future<Output = ()>>(f: impl Fn() -> F) {
|
||||
let seed = seed();
|
||||
deterministic_runtime_from_seed(seed.as_bytes(), f);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user