diff options
author | Florian Klink <flokli@flokli.de> | 2023-10-12T20·26+0200 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2023-10-12T21·05+0000 |
commit | 9b7629826f45af70ed2668353ff4d28446cd1417 (patch) | |
tree | e3c0b9b0ec1dde6ff048ef5655caeaa89bdccd6c /tvix/castore/src/proto/tests/directory.rs | |
parent | c9e90b4dd79d113514a853abd298752d87860f98 (diff) |
refactor(tvix/castore): factor out node checks r/6794
Implement `validate()` on `node::Node`, and call it from PathInfo's validate() too. Node-related errors are moved to a ValidateNodeError error type. This additionally adds some more validations for symlink targets (they must not be empty, and not contain null bytes). Change-Id: Ib9b89f1c9c795e868a1533281239bc8a36d97c5d Reviewed-on: https://cl.tvl.fyi/c/depot/+/9715 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: edef <edef@edef.eu>
Diffstat (limited to 'tvix/castore/src/proto/tests/directory.rs')
-rw-r--r-- | tvix/castore/src/proto/tests/directory.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/tvix/castore/src/proto/tests/directory.rs b/tvix/castore/src/proto/tests/directory.rs index d46e8cb6c3c4..69d9b5b4efe6 100644 --- a/tvix/castore/src/proto/tests/directory.rs +++ b/tvix/castore/src/proto/tests/directory.rs @@ -1,4 +1,6 @@ -use crate::proto::{Directory, DirectoryNode, FileNode, SymlinkNode, ValidateDirectoryError}; +use crate::proto::{ + Directory, DirectoryNode, FileNode, SymlinkNode, ValidateDirectoryError, ValidateNodeError, +}; use lazy_static::lazy_static; lazy_static! { @@ -171,7 +173,7 @@ fn validate_invalid_names() { ..Default::default() }; match d.validate().expect_err("must fail") { - ValidateDirectoryError::InvalidName(n) => { + ValidateDirectoryError::InvalidNode(n, ValidateNodeError::InvalidName()) => { assert_eq!(n, b"") } _ => panic!("unexpected error"), @@ -188,7 +190,7 @@ fn validate_invalid_names() { ..Default::default() }; match d.validate().expect_err("must fail") { - ValidateDirectoryError::InvalidName(n) => { + ValidateDirectoryError::InvalidNode(n, ValidateNodeError::InvalidName()) => { assert_eq!(n, b".") } _ => panic!("unexpected error"), @@ -206,7 +208,7 @@ fn validate_invalid_names() { ..Default::default() }; match d.validate().expect_err("must fail") { - ValidateDirectoryError::InvalidName(n) => { + ValidateDirectoryError::InvalidNode(n, ValidateNodeError::InvalidName()) => { assert_eq!(n, b"..") } _ => panic!("unexpected error"), @@ -222,7 +224,7 @@ fn validate_invalid_names() { ..Default::default() }; match d.validate().expect_err("must fail") { - ValidateDirectoryError::InvalidName(n) => { + ValidateDirectoryError::InvalidNode(n, ValidateNodeError::InvalidName()) => { assert_eq!(n, b"\x00") } _ => panic!("unexpected error"), @@ -238,7 +240,7 @@ fn validate_invalid_names() { ..Default::default() }; match d.validate().expect_err("must fail") { - ValidateDirectoryError::InvalidName(n) => { + ValidateDirectoryError::InvalidNode(n, ValidateNodeError::InvalidName()) => { assert_eq!(n, b"foo/bar") } _ => panic!("unexpected error"), @@ -257,7 +259,7 @@ fn validate_invalid_digest() { ..Default::default() }; match d.validate().expect_err("must fail") { - ValidateDirectoryError::InvalidDigestLen(n) => { + ValidateDirectoryError::InvalidNode(_, ValidateNodeError::InvalidDigestLen(n)) => { assert_eq!(n, 2) } _ => panic!("unexpected error"), |