feat(tvix/store): add rstest-based PathInfoService tests

This introduces rstest-based tests. We also add fixtures for creating
some BlobService / DirectoryService out of thin air.
To test a PathInfoService, we don't really care too much about its
internal storage - ensuring they work is up to the castore tests.

Change-Id: Ia62af076ef9c9fbfcf8b020a781454ad299d972e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11272
Tested-by: BuildkiteCI
Reviewed-by: Connor Brewster <cbrewster@hey.com>
This commit is contained in:
Florian Klink 2024-03-27 12:11:39 +01:00 committed by flokli
parent 93dc5df957
commit 07a51c7dc9
10 changed files with 216 additions and 4 deletions

View file

@ -1,8 +1,17 @@
use lazy_static::lazy_static;
use rstest::*;
use std::sync::Arc;
pub use tvix_castore::fixtures::*;
use tvix_castore::proto as castorepb;
use tvix_castore::{
blobservice::{BlobService, MemoryBlobService},
directoryservice::{DirectoryService, MemoryDirectoryService},
proto as castorepb,
};
use crate::proto::{nar_info::ca, nar_info::Ca, NarInfo, PathInfo};
use crate::proto::{
nar_info::{ca, Ca},
NarInfo, PathInfo,
};
pub const DUMMY_NAME: &str = "00000000000000000000000000000000-dummy";
pub const DUMMY_OUTPUT_HASH: [u8; 20] = [0; 20];
@ -121,3 +130,13 @@ lazy_static! {
..PATH_INFO_WITHOUT_NARINFO.clone()
};
}
#[fixture]
pub(crate) fn blob_service() -> Arc<dyn BlobService> {
Arc::from(MemoryBlobService::default())
}
#[fixture]
pub(crate) fn directory_service() -> Arc<dyn DirectoryService> {
Arc::from(MemoryDirectoryService::default())
}