diff options
Diffstat (limited to 'tvix/store/src/proto')
-rw-r--r-- | tvix/store/src/proto/tests/grpc_pathinfoservice.rs | 75 | ||||
-rw-r--r-- | tvix/store/src/proto/tests/mod.rs | 1 |
2 files changed, 0 insertions, 76 deletions
diff --git a/tvix/store/src/proto/tests/grpc_pathinfoservice.rs b/tvix/store/src/proto/tests/grpc_pathinfoservice.rs deleted file mode 100644 index df74861bc7b4..000000000000 --- a/tvix/store/src/proto/tests/grpc_pathinfoservice.rs +++ /dev/null @@ -1,75 +0,0 @@ -use crate::proto::get_path_info_request::ByWhat::ByOutputHash; -use crate::proto::path_info_service_server::PathInfoService as GRPCPathInfoService; -use crate::proto::GRPCPathInfoServiceWrapper; -use crate::proto::GetPathInfoRequest; -use crate::proto::PathInfo; -use crate::tests::fixtures::DUMMY_OUTPUT_HASH; -use crate::tests::utils::gen_blob_service; -use crate::tests::utils::gen_directory_service; -use crate::tests::utils::gen_pathinfo_service; -use bytes::Bytes; -use futures::stream::BoxStream; -use std::sync::Arc; -use tonic::Request; -use tvix_castore::proto as castorepb; - -/// generates a GRPCPathInfoService out of blob, directory and pathinfo services. -/// -/// We only interact with it via the PathInfo GRPC interface. -/// It uses the NonCachingNARCalculationService NARCalculationService to -/// calculate NARs. -fn gen_grpc_service( -) -> Arc<dyn GRPCPathInfoService<ListStream = BoxStream<'static, Result<PathInfo, tonic::Status>>>> -{ - let blob_service = gen_blob_service(); - let directory_service = gen_directory_service(); - Arc::new(GRPCPathInfoServiceWrapper::new(gen_pathinfo_service( - blob_service, - directory_service, - ))) -} - -/// Trying to get a non-existent PathInfo should return a not found error. -#[tokio::test] -async fn not_found() { - let service = gen_grpc_service(); - - let resp = service - .get(Request::new(GetPathInfoRequest { - by_what: Some(ByOutputHash(Bytes::from(DUMMY_OUTPUT_HASH.to_vec()))), - })) - .await; - - let resp = resp.expect_err("must fail"); - assert_eq!(resp.code(), tonic::Code::NotFound); -} - -/// Put a PathInfo into the store, get it back. -#[tokio::test] -async fn put_get() { - let service = gen_grpc_service(); - - let path_info = PathInfo { - node: Some(castorepb::Node { - node: Some(castorepb::node::Node::Symlink(castorepb::SymlinkNode { - name: "00000000000000000000000000000000-foo".into(), - target: "doesntmatter".into(), - })), - }), - ..Default::default() - }; - - let resp = service.put(Request::new(path_info.clone())).await; - - assert!(resp.is_ok()); - assert_eq!(resp.expect("must succeed").into_inner(), path_info); - - let resp = service - .get(Request::new(GetPathInfoRequest { - by_what: Some(ByOutputHash(Bytes::from(DUMMY_OUTPUT_HASH.to_vec()))), - })) - .await; - - assert!(resp.is_ok()); - assert_eq!(resp.expect("must succeed").into_inner(), path_info); -} diff --git a/tvix/store/src/proto/tests/mod.rs b/tvix/store/src/proto/tests/mod.rs index bff885624380..c9c670202740 100644 --- a/tvix/store/src/proto/tests/mod.rs +++ b/tvix/store/src/proto/tests/mod.rs @@ -1,2 +1 @@ -mod grpc_pathinfoservice; mod pathinfo; |