reifydb-store-multi 0.5.0

Multi-version storage for OLTP operations with MVCC support
Documentation
// SPDX-License-Identifier: Apache-2.0
// Copyright (c) 2025 ReifyDB

use std::path::Path;

use reifydb_store_multi::{buffer::tier::MultiBufferTier, config::PersistentConfig};
use reifydb_testing::{tempdir::temp_dir, testscript::runner::run_path};
use test_each_file::test_each_path;

mod common;
use common::Runner;

test_each_path! { in "crates/store-multi/tests/scripts/multi" as store_multi_memory => test_memory }
test_each_path! { in "crates/store-multi/tests/scripts/multi" as store_multi_sqlite_unbuffered => test_sqlite_unbuffered }

test_each_path! { in "crates/store-multi/tests/scripts/historical" as store_multi_historical_memory => test_memory }

fn test_memory(path: &Path) {
	let storage = MultiBufferTier::memory();
	run_path(&mut Runner::new(storage), path).expect("test failed")
}

fn test_sqlite_unbuffered(path: &Path) {
	temp_dir(|_db_path| run_path(&mut Runner::sqlite_unbuffered(PersistentConfig::sqlite_in_memory()), path))
		.expect("test failed")
}