feat(tvix/store/protos): add Deriver field to PathInfo
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
This commit is contained in:
parent
5f8eb4eeaa
commit
2d2c4322d9
10 changed files with 161 additions and 39 deletions
|
|
@ -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),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue