From a4f6c4181aa7f975b1c3aad8d3fb30021388e014 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Wed, 1 Mar 2023 18:55:51 +0100 Subject: feat(tvix/store): add new_temporary for all Sled services This provides a service using /dev/shm, that's deleted once the reference is dropped. Refactor all tests to use these, which allows getting rid of most TempDir usage in the tests. The only place where we still use TempDir is in the importer tests, which work on a filesystem path. Change-Id: I08a950aa774bf9b46d9f5c92edf5efba36053242 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8193 Reviewed-by: raitobezarius Tested-by: BuildkiteCI --- tvix/store/src/proto/tests/grpc_blobservice.rs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'tvix/store/src/proto/tests/grpc_blobservice.rs') diff --git a/tvix/store/src/proto/tests/grpc_blobservice.rs b/tvix/store/src/proto/tests/grpc_blobservice.rs index 4ea367cbdc86..88eb21e30241 100644 --- a/tvix/store/src/proto/tests/grpc_blobservice.rs +++ b/tvix/store/src/proto/tests/grpc_blobservice.rs @@ -5,24 +5,20 @@ use crate::proto::blob_service_server::BlobService as GRPCBlobService; use crate::proto::{BlobChunk, GRPCBlobServiceWrapper, ReadBlobRequest, StatBlobRequest}; use crate::tests::fixtures::{BLOB_A, BLOB_A_DIGEST, BLOB_B, BLOB_B_DIGEST}; use crate::tests::utils::{gen_blob_service, gen_chunk_service}; -use std::path::Path; -use tempfile::TempDir; -fn gen_grpc_blob_service( - p: &Path, -) -> GRPCBlobServiceWrapper< +fn gen_grpc_blob_service() -> GRPCBlobServiceWrapper< impl BlobService + Send + Sync + Clone + 'static, impl ChunkService + Send + Sync + Clone + 'static, > { - let blob_service = gen_blob_service(p); - let chunk_service = gen_chunk_service(p); + let blob_service = gen_blob_service(); + let chunk_service = gen_chunk_service(); GRPCBlobServiceWrapper::new(blob_service, chunk_service) } /// Trying to read a non-existent blob should return a not found error. #[tokio::test] async fn not_found_read() { - let service = gen_grpc_blob_service(TempDir::new().unwrap().path()); + let service = gen_grpc_blob_service(); let resp = service .read(tonic::Request::new(ReadBlobRequest { @@ -37,7 +33,7 @@ async fn not_found_read() { /// Trying to stat a non-existent blob should return a not found error. #[tokio::test] async fn not_found_stat() { - let service = gen_grpc_blob_service(TempDir::new().unwrap().path()); + let service = gen_grpc_blob_service(); let resp = service .stat(tonic::Request::new(StatBlobRequest { @@ -55,7 +51,7 @@ async fn not_found_stat() { /// won't get split into multiple chunks. #[tokio::test] async fn put_read_stat() { - let service = gen_grpc_blob_service(TempDir::new().unwrap().path()); + let service = gen_grpc_blob_service(); // Send blob A. let put_resp = service @@ -117,7 +113,7 @@ async fn put_read_stat() { /// `read()` method. #[tokio::test] async fn put_read_stat_large() { - let service = gen_grpc_blob_service(TempDir::new().unwrap().path()); + let service = gen_grpc_blob_service(); // split up BLOB_B into BlobChunks containing 1K bytes each. let blob_b_blobchunks: Vec = BLOB_B -- cgit 1.4.1