about summary refs log tree commit diff
path: root/tvix/store/src/proto/tests/pathinfo.rs
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2024-04-05T22·20+0300
committerclbot <clbot@tvl.fyi>2024-04-05T23·28+0000
commit39276dc5b41fa5e756ebb8ae30b4d2ac91995be7 (patch)
tree3f74aa26253e230608c3820e8cdc7dad676f907f /tvix/store/src/proto/tests/pathinfo.rs
parent9e8106305018057821905f1c7b8249e5a882336c (diff)
feat(tvix/store/proto): avoid clone in PathInfo::validate() r/7856
Have this return a StorePathRef<'_>, rather than a StorePath, and leave
it up to the caller to possibly convert it to a owned StorePath.

This avoids some allocations, if we only want to validate.

Change-Id: I5cf8e246fe02bd4e631f46a5cb86d3f77a728a0d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11361
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: Connor Brewster <cbrewster@hey.com>
Diffstat (limited to '')
-rw-r--r--tvix/store/src/proto/tests/pathinfo.rs17
1 files changed, 8 insertions, 9 deletions
diff --git a/tvix/store/src/proto/tests/pathinfo.rs b/tvix/store/src/proto/tests/pathinfo.rs
index dca74dc92f..2806a8ee1d 100644
--- a/tvix/store/src/proto/tests/pathinfo.rs
+++ b/tvix/store/src/proto/tests/pathinfo.rs
@@ -3,8 +3,7 @@ use crate::tests::fixtures::*;
 use bytes::Bytes;
 use data_encoding::BASE64;
 use nix_compat::nixbase32;
-use nix_compat::store_path::{self, StorePath, StorePathRef};
-use std::str::FromStr;
+use nix_compat::store_path::{self, StorePathRef};
 use test_case::test_case;
 use tvix_castore::proto as castorepb;
 
@@ -20,7 +19,7 @@ use tvix_castore::proto as castorepb;
 )]
 fn validate_no_node(
     t_node: Option<castorepb::Node>,
-    t_result: Result<StorePath, ValidatePathInfoError>,
+    t_result: Result<StorePathRef, ValidatePathInfoError>,
 ) {
     // construct the PathInfo object
     let p = PathInfo {
@@ -36,7 +35,7 @@ fn validate_no_node(
         digest: DUMMY_DIGEST.clone().into(),
         size: 0,
     },
-    Ok(StorePath::from_str(DUMMY_NAME).expect("must succeed"));
+    Ok(StorePathRef::from_bytes(DUMMY_NAME.as_bytes()).expect("must succeed"));
     "ok"
 )]
 #[test_case(
@@ -62,7 +61,7 @@ fn validate_no_node(
 )]
 fn validate_directory(
     t_directory_node: castorepb::DirectoryNode,
-    t_result: Result<StorePath, ValidatePathInfoError>,
+    t_result: Result<StorePathRef, ValidatePathInfoError>,
 ) {
     // construct the PathInfo object
     let p = PathInfo {
@@ -81,7 +80,7 @@ fn validate_directory(
         size: 0,
         executable: false,
     },
-    Ok(StorePath::from_str(DUMMY_NAME).expect("must succeed"));
+    Ok(StorePathRef::from_bytes(DUMMY_NAME.as_bytes()).expect("must succeed"));
     "ok"
 )]
 #[test_case(
@@ -107,7 +106,7 @@ fn validate_directory(
 )]
 fn validate_file(
     t_file_node: castorepb::FileNode,
-    t_result: Result<StorePath, ValidatePathInfoError>,
+    t_result: Result<StorePathRef, ValidatePathInfoError>,
 ) {
     // construct the PathInfo object
     let p = PathInfo {
@@ -124,7 +123,7 @@ fn validate_file(
         name: DUMMY_NAME.into(),
         target: "foo".into(),
     },
-    Ok(StorePath::from_str(DUMMY_NAME).expect("must succeed"));
+    Ok(StorePathRef::from_bytes(DUMMY_NAME.as_bytes()).expect("must succeed"));
     "ok"
 )]
 #[test_case(
@@ -140,7 +139,7 @@ fn validate_file(
 )]
 fn validate_symlink(
     t_symlink_node: castorepb::SymlinkNode,
-    t_result: Result<StorePath, ValidatePathInfoError>,
+    t_result: Result<StorePathRef, ValidatePathInfoError>,
 ) {
     // construct the PathInfo object
     let p = PathInfo {