in src/columnar_storage/src/manifest/mod.rs [406:454]
fn test_find_manifest() {
let root_dir = temp_dir::TempDir::new().unwrap();
let runtime = Arc::new(tokio::runtime::Runtime::new().unwrap());
let rt = runtime.clone();
let store = Arc::new(LocalFileSystem::new());
rt.block_on(async move {
let manifest = Manifest::try_new(
root_dir.path().to_string_lossy().to_string(),
store,
runtime.clone(),
ManifestConfig::default(),
)
.await
.unwrap();
for i in 0..20 {
let time_range = (i..i + 1).into();
let meta = FileMeta {
max_sequence: i as u64,
num_rows: i as u32,
size: i as u32,
time_range,
};
manifest.add_file(i as u64, meta).await.unwrap();
}
let find_range = (10..15).into();
let mut ssts = manifest.find_ssts(&find_range).await;
let mut expected_ssts = (10..15)
.map(|i| {
let id = i as u64;
let time_range = (i..i + 1).into();
let meta = FileMeta {
max_sequence: i as u64,
num_rows: i as u32,
size: i as u32,
time_range,
};
SstFile::new(id, meta)
})
.collect::<Vec<_>>();
expected_ssts.sort_by_key(|a| a.id());
ssts.sort_by_key(|a| a.id());
assert_eq!(expected_ssts, ssts);
});
}