about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2023-10-05T07·52+0300
committerclbot <clbot@tvl.fyi>2023-10-05T09·52+0000
commit7706a8f224d6277b7c4f32ffaf869dc7f28e643d (patch)
tree944140c800e01582a4faf1c0e0a975158c01c94e
parentc67ab911ebdefddda5b05981834c783c0e7a3d7a (diff)
refactor(tvix/store): mv *Err*::Invalid{Node,}DigestLen r/6705
There's other digests in the PathInfo structure, that also might have
wrong digest lengths. Rename this to give some room for them, and update
the error message a bit as we go.

Change-Id: I06562664721156e658f2ed14ba1de907377d284b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9543
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
-rw-r--r--tvix/store/src/proto/mod.rs10
-rw-r--r--tvix/store/src/proto/tests/pathinfo.rs4
2 files changed, 7 insertions, 7 deletions
diff --git a/tvix/store/src/proto/mod.rs b/tvix/store/src/proto/mod.rs
index f2bec10f16..56a0225685 100644
--- a/tvix/store/src/proto/mod.rs
+++ b/tvix/store/src/proto/mod.rs
@@ -2,7 +2,7 @@
 // https://github.com/hyperium/tonic/issues/1056
 use nix_compat::store_path::{self, StorePath};
 use thiserror::Error;
-use tvix_castore::{proto as castorepb, B3Digest};
+use tvix_castore::{proto as castorepb, B3Digest, B3_LEN};
 
 mod grpc_pathinfoservice_wrapper;
 
@@ -31,8 +31,8 @@ pub enum ValidatePathInfoError {
     InvalidNodeName(Vec<u8>, store_path::Error),
 
     /// The digest the (root) node refers to has invalid length.
-    #[error("Invalid Digest length: {0}")]
-    InvalidDigestLen(usize),
+    #[error("Invalid Digest length: expected {}, got {}", B3_LEN, .0)]
+    InvalidNodeDigestLen(usize),
 
     /// The number of references in the narinfo.reference_names field does not match
     /// the number of references in the .references field.
@@ -84,7 +84,7 @@ impl PathInfo {
                 Some(castorepb::node::Node::Directory(directory_node)) => {
                     // ensure the digest has the appropriate size.
                     if TryInto::<B3Digest>::try_into(directory_node.digest.clone()).is_err() {
-                        return Err(ValidatePathInfoError::InvalidDigestLen(
+                        return Err(ValidatePathInfoError::InvalidNodeDigestLen(
                             directory_node.digest.len(),
                         ));
                     }
@@ -98,7 +98,7 @@ impl PathInfo {
                 Some(castorepb::node::Node::File(file_node)) => {
                     // ensure the digest has the appropriate size.
                     if TryInto::<B3Digest>::try_into(file_node.digest.clone()).is_err() {
-                        return Err(ValidatePathInfoError::InvalidDigestLen(
+                        return Err(ValidatePathInfoError::InvalidNodeDigestLen(
                             file_node.digest.len(),
                         ));
                     }
diff --git a/tvix/store/src/proto/tests/pathinfo.rs b/tvix/store/src/proto/tests/pathinfo.rs
index dfbeb831d7..a74b7c3f7c 100644
--- a/tvix/store/src/proto/tests/pathinfo.rs
+++ b/tvix/store/src/proto/tests/pathinfo.rs
@@ -43,7 +43,7 @@ fn validate_no_node(
         digest: Bytes::new(),
         size: 0,
     },
-    Err(ValidatePathInfoError::InvalidDigestLen(0));
+    Err(ValidatePathInfoError::InvalidNodeDigestLen(0));
     "invalid digest length"
 )]
 #[test_case(
@@ -88,7 +88,7 @@ fn validate_directory(
         digest: Bytes::new(),
         ..Default::default()
     },
-    Err(ValidatePathInfoError::InvalidDigestLen(0));
+    Err(ValidatePathInfoError::InvalidNodeDigestLen(0));
     "invalid digest length"
 )]
 #[test_case(