feat(tvix/castore): bump [Directory,File]Node size to u64
Having more than 4GiB files is quite possible (think about the NixOS graphical installer, and an uncompressed iso of it). No wire format changes. Change-Id: Ia78a07e4c554e91b93c5b9f8533266e4bd7f22b6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9950 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
This commit is contained in:
parent
47e34b2c36
commit
2546446d51
16 changed files with 55 additions and 57 deletions
|
|
@ -217,7 +217,7 @@ mod tests {
|
|||
let mut inode_tracker = InodeTracker::default();
|
||||
let f = InodeData::Regular(
|
||||
fixtures::BLOB_A_DIGEST.clone(),
|
||||
fixtures::BLOB_A.len() as u32,
|
||||
fixtures::BLOB_A.len() as u64,
|
||||
false,
|
||||
);
|
||||
|
||||
|
|
@ -241,7 +241,7 @@ mod tests {
|
|||
ino,
|
||||
inode_tracker.put(InodeData::Regular(
|
||||
fixtures::BLOB_B_DIGEST.clone(),
|
||||
fixtures::BLOB_B.len() as u32,
|
||||
fixtures::BLOB_B.len() as u64,
|
||||
false,
|
||||
))
|
||||
);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ use tvix_castore::B3Digest;
|
|||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum InodeData {
|
||||
Regular(B3Digest, u32, bool), // digest, size, executable
|
||||
Regular(B3Digest, u64, bool), // digest, size, executable
|
||||
Symlink(bytes::Bytes), // target
|
||||
Directory(DirectoryInodeData), // either [DirectoryInodeData:Sparse] or [DirectoryInodeData:Populated]
|
||||
}
|
||||
|
|
@ -16,7 +16,7 @@ pub enum InodeData {
|
|||
/// lookup and did fetch the data.
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum DirectoryInodeData {
|
||||
Sparse(B3Digest, u32), // digest, size
|
||||
Sparse(B3Digest, u64), // digest, size
|
||||
Populated(B3Digest, Vec<(u64, castorepb::node::Node)>), // [(child_inode, node)]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ async fn populate_blob_a(
|
|||
node: Some(castorepb::node::Node::File(castorepb::FileNode {
|
||||
name: BLOB_A_NAME.into(),
|
||||
digest: fixtures::BLOB_A_DIGEST.clone().into(),
|
||||
size: fixtures::BLOB_A.len() as u32,
|
||||
size: fixtures::BLOB_A.len() as u64,
|
||||
executable: false,
|
||||
})),
|
||||
}),
|
||||
|
|
@ -101,7 +101,7 @@ async fn populate_blob_b(
|
|||
node: Some(castorepb::node::Node::File(castorepb::FileNode {
|
||||
name: BLOB_B_NAME.into(),
|
||||
digest: fixtures::BLOB_B_DIGEST.clone().into(),
|
||||
size: fixtures::BLOB_B.len() as u32,
|
||||
size: fixtures::BLOB_B.len() as u64,
|
||||
executable: false,
|
||||
})),
|
||||
}),
|
||||
|
|
@ -135,7 +135,7 @@ async fn populate_helloworld_blob(
|
|||
node: Some(castorepb::node::Node::File(castorepb::FileNode {
|
||||
name: HELLOWORLD_BLOB_NAME.into(),
|
||||
digest: fixtures::HELLOWORLD_BLOB_DIGEST.clone().into(),
|
||||
size: fixtures::HELLOWORLD_BLOB_CONTENTS.len() as u32,
|
||||
size: fixtures::HELLOWORLD_BLOB_CONTENTS.len() as u64,
|
||||
executable: true,
|
||||
})),
|
||||
}),
|
||||
|
|
@ -262,7 +262,7 @@ async fn populate_blob_a_without_blob(
|
|||
node: Some(castorepb::node::Node::File(castorepb::FileNode {
|
||||
name: BLOB_A_NAME.into(),
|
||||
digest: fixtures::BLOB_A_DIGEST.clone().into(),
|
||||
size: fixtures::BLOB_A.len() as u32,
|
||||
size: fixtures::BLOB_A.len() as u64,
|
||||
executable: false,
|
||||
})),
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ async fn walk_node(
|
|||
nar_node
|
||||
.file(
|
||||
proto_file_node.executable,
|
||||
proto_file_node.size.into(),
|
||||
proto_file_node.size,
|
||||
&mut blob_reader.compat(),
|
||||
)
|
||||
.await
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ async fn single_file_missing_blob() {
|
|||
&castorepb::node::Node::File(FileNode {
|
||||
name: "doesntmatter".into(),
|
||||
digest: HELLOWORLD_BLOB_DIGEST.clone().into(),
|
||||
size: HELLOWORLD_BLOB_CONTENTS.len() as u32,
|
||||
size: HELLOWORLD_BLOB_CONTENTS.len() as u64,
|
||||
executable: false,
|
||||
}),
|
||||
// the blobservice is empty intentionally, to provoke the error.
|
||||
|
|
@ -150,7 +150,7 @@ async fn single_file() {
|
|||
&castorepb::node::Node::File(FileNode {
|
||||
name: "doesntmatter".into(),
|
||||
digest: HELLOWORLD_BLOB_DIGEST.clone().into(),
|
||||
size: HELLOWORLD_BLOB_CONTENTS.len() as u32,
|
||||
size: HELLOWORLD_BLOB_CONTENTS.len() as u64,
|
||||
executable: false,
|
||||
}),
|
||||
blob_service,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue