diff options
author | Florian Klink <flokli@flokli.de> | 2023-10-10T22·22+0200 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2023-10-14T13·23+0000 |
commit | 2d2c4322d93308ddffe1647466abd91025af6a68 (patch) | |
tree | 37ead8574df6eb98d76ca95636b50bf8fe1945cb /tvix/store/src/proto/tests/pathinfo.rs | |
parent | 5f8eb4eeaaad31aedc45efee3143e6b0bbc982a4 (diff) |
feat(tvix/store/protos): add Deriver field to PathInfo r/6805
This uses the newly introduced StorePath message type to add a Deriver field to the PathInfo message. Support for validation is added to both the golang and rust implementation. This includes extending unit tests. Change-Id: Ifc3eb3263fa25b9eec260db354cd74234c40af7e Reviewed-on: https://cl.tvl.fyi/c/depot/+/9647 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/store/src/proto/tests/pathinfo.rs')
-rw-r--r-- | tvix/store/src/proto/tests/pathinfo.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tvix/store/src/proto/tests/pathinfo.rs b/tvix/store/src/proto/tests/pathinfo.rs index 5e1ae9c45b64..03094ed734ce 100644 --- a/tvix/store/src/proto/tests/pathinfo.rs +++ b/tvix/store/src/proto/tests/pathinfo.rs @@ -262,3 +262,34 @@ fn validate_symlink_target_null_byte_invalid() { node.validate().expect_err("must fail validation"); } + +/// Create a PathInfo with a correct deriver field and ensure it succeeds. +#[test] +fn validate_valid_deriver() { + let mut path_info = PATH_INFO_WITHOUT_NARINFO.clone(); + + // add a valid deriver + path_info.deriver = Some(crate::proto::StorePath { + name: "foo".to_string(), + digest: DUMMY_OUTPUT_HASH.clone(), + }); + + path_info.validate().expect("must validate"); +} + +/// Create a PathInfo with a broken deriver field and ensure it fails. +#[test] +fn validate_invalid_deriver() { + let mut path_info = PATH_INFO_WITHOUT_NARINFO.clone(); + + // add a broken deriver (invalid digest) + path_info.deriver = Some(crate::proto::StorePath { + name: "foo".to_string(), + digest: vec![].into(), + }); + + match path_info.validate().expect_err("must fail validation") { + ValidatePathInfoError::InvalidDeriverField(_) => {} + e => panic!("unexpected error: {:?}", e), + } +} |