refactor(tvix/store/directorysvc): use [u8; 32] instead of Vec<u8>
Also, simplify the trait interface, only allowing lookups of Directory objects by their digest. Change-Id: I6eec28a8cb0557bed9b69df8b8ff99a5e0f8fe35 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8313 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
parent
9c08cbc973
commit
ee23220564
12 changed files with 126 additions and 128 deletions
|
|
@ -2,7 +2,7 @@ use crate::proto::{Directory, DirectoryNode, FileNode, SymlinkNode, ValidateDire
|
|||
use lazy_static::lazy_static;
|
||||
|
||||
lazy_static! {
|
||||
static ref DUMMY_DIGEST: Vec<u8> = vec![
|
||||
static ref DUMMY_DIGEST: [u8; 32] = [
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
|
@ -66,7 +66,7 @@ fn digest() {
|
|||
|
||||
assert_eq!(
|
||||
d.digest(),
|
||||
vec![
|
||||
[
|
||||
0xaf, 0x13, 0x49, 0xb9, 0xf5, 0xf9, 0xa1, 0xa6, 0xa0, 0x40, 0x4d, 0xea, 0x36, 0xdc,
|
||||
0xc9, 0x49, 0x9b, 0xcb, 0x25, 0xc9, 0xad, 0xc1, 0x12, 0xb7, 0xcc, 0x9a, 0x93, 0xca,
|
||||
0xe4, 0x1f, 0x32, 0x62
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ async fn not_found() {
|
|||
|
||||
let resp = service
|
||||
.get(tonic::Request::new(GetDirectoryRequest {
|
||||
by_what: Some(ByWhat::Digest(DIRECTORY_A.digest())),
|
||||
by_what: Some(ByWhat::Digest(DIRECTORY_A.digest().to_vec())),
|
||||
..Default::default()
|
||||
}))
|
||||
.await;
|
||||
|
|
@ -114,14 +114,17 @@ async fn put_get_multiple() {
|
|||
.await
|
||||
.expect("must succeed");
|
||||
|
||||
assert_eq!(DIRECTORY_B.digest(), put_resp.into_inner().root_digest);
|
||||
assert_eq!(
|
||||
DIRECTORY_B.digest().to_vec(),
|
||||
put_resp.into_inner().root_digest
|
||||
);
|
||||
|
||||
// now, request b, first in non-recursive mode.
|
||||
let items = get_directories(
|
||||
&service,
|
||||
GetDirectoryRequest {
|
||||
recursive: false,
|
||||
by_what: Some(ByWhat::Digest(DIRECTORY_B.digest())),
|
||||
by_what: Some(ByWhat::Digest(DIRECTORY_B.digest().to_vec())),
|
||||
},
|
||||
)
|
||||
.await
|
||||
|
|
@ -135,7 +138,7 @@ async fn put_get_multiple() {
|
|||
&service,
|
||||
GetDirectoryRequest {
|
||||
recursive: true,
|
||||
by_what: Some(ByWhat::Digest(DIRECTORY_B.digest())),
|
||||
by_what: Some(ByWhat::Digest(DIRECTORY_B.digest().to_vec())),
|
||||
},
|
||||
)
|
||||
.await
|
||||
|
|
@ -161,14 +164,17 @@ async fn put_get_dedup() {
|
|||
.await
|
||||
.expect("must succeed");
|
||||
|
||||
assert_eq!(DIRECTORY_C.digest(), put_resp.into_inner().root_digest);
|
||||
assert_eq!(
|
||||
DIRECTORY_C.digest().to_vec(),
|
||||
put_resp.into_inner().root_digest
|
||||
);
|
||||
|
||||
// Ask for "C" recursively. We expect to only get "A" once, as there's no point sending it twice.
|
||||
let items = get_directories(
|
||||
&service,
|
||||
GetDirectoryRequest {
|
||||
recursive: true,
|
||||
by_what: Some(ByWhat::Digest(DIRECTORY_C.digest())),
|
||||
by_what: Some(ByWhat::Digest(DIRECTORY_C.digest().to_vec())),
|
||||
},
|
||||
)
|
||||
.await
|
||||
|
|
@ -211,7 +217,7 @@ async fn put_reject_wrong_size() {
|
|||
let broken_parent_directory = Directory {
|
||||
directories: vec![DirectoryNode {
|
||||
name: "foo".to_string(),
|
||||
digest: DIRECTORY_A.digest(),
|
||||
digest: DIRECTORY_A.digest().to_vec(),
|
||||
size: 42,
|
||||
}],
|
||||
..Default::default()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue