Skip to content

Commit 3d0a0c1

Browse files
committed
refactor: update DummyImmutablesDbBuilder to simplify its usage
1 parent c0587d0 commit 3d0a0c1

File tree

3 files changed

+26
-20
lines changed

3 files changed

+26
-20
lines changed

mithril-aggregator/src/artifact_builder/cardano_database.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -113,20 +113,19 @@ mod tests {
113113
fn should_compute_the_size_of_the_uncompressed_database_only_immutable_ledger_and_volatile() {
114114
let test_dir = get_test_directory("should_compute_the_size_of_the_uncompressed_database_only_immutable_ledger_and_volatile");
115115

116-
let immutable_file_size = 777;
116+
let immutable_trio_file_size = 777;
117117
let ledger_file_size = 6666;
118118
let volatile_file_size = 99;
119119
DummyImmutablesDbBuilder::new(test_dir.as_os_str().to_str().unwrap())
120120
.with_immutables(&[1, 2])
121-
.set_immutable_file_size(immutable_file_size)
122-
.with_ledger_files(vec!["blocks-0.dat".to_string()])
121+
.set_immutable_trio_file_size(immutable_trio_file_size)
122+
.with_ledger_files(&["blocks-0.dat", "blocks-1.dat", "blocks-2.dat"])
123123
.set_ledger_file_size(ledger_file_size)
124-
.with_volatile_files(vec!["437".to_string(), "537".to_string()])
124+
.with_volatile_files(&["437", "537", "637", "737"])
125125
.set_volatile_file_size(volatile_file_size)
126126
.build();
127-
// Number of immutable files = 2 × 3 ('chunk', 'primary' and 'secondary').
128127
let expected_total_size =
129-
(2 * 3 * immutable_file_size) + ledger_file_size + (2 * volatile_file_size);
128+
(2 * immutable_trio_file_size) + (3 * ledger_file_size) + (4 * volatile_file_size);
130129

131130
let total_size = compute_uncompressed_database_size(&test_dir).unwrap();
132131

@@ -137,16 +136,18 @@ mod tests {
137136
async fn should_compute_valid_artifact() {
138137
let test_dir = get_test_directory("should_compute_valid_artifact");
139138

139+
let immutable_trio_file_size = 777;
140+
let ledger_file_size = 6666;
141+
let volatile_file_size = 99;
140142
DummyImmutablesDbBuilder::new(test_dir.as_os_str().to_str().unwrap())
141143
.with_immutables(&[1])
142-
.set_immutable_file_size(100)
143-
.with_ledger_files(vec!["blocks-0.dat".to_string()])
144-
.set_ledger_file_size(100)
145-
.with_volatile_files(vec!["437".to_string()])
146-
.set_volatile_file_size(100)
144+
.set_immutable_trio_file_size(immutable_trio_file_size)
145+
.with_ledger_files(&["blocks-0.dat"])
146+
.set_ledger_file_size(ledger_file_size)
147+
.with_volatile_files(&["437"])
148+
.set_volatile_file_size(volatile_file_size)
147149
.build();
148-
// Number of immutable files = 1 × 3 ('chunk', 'primary' and 'secondary').
149-
let expected_total_size = (3 * 100) + 100 + 100;
150+
let expected_total_size = immutable_trio_file_size + ledger_file_size + volatile_file_size;
150151

151152
let cardano_database_artifact_builder = CardanoDatabaseArtifactBuilder::new(
152153
test_dir,

mithril-common/src/digesters/cardano_immutable_digester.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ mod tests {
617617
let immutable_db = db_builder("hash_computation_is_quicker_with_a_full_cache")
618618
.with_immutables(&(1..=50).collect::<Vec<ImmutableFileNumber>>())
619619
.append_immutable_trio()
620-
.set_immutable_file_size(65536)
620+
.set_immutable_trio_file_size(65538)
621621
.build();
622622
let cache = MemoryImmutableFileDigestCacheProvider::default();
623623
let logger = TestLogger::stdout();

mithril-common/src/digesters/dummy_immutable_db_builder.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ impl DummyImmutablesDbBuilder {
7777
}
7878

7979
/// Set ledger files to write to the db in the 'ledger' subdirectory.
80-
pub fn with_ledger_files(&mut self, files: Vec<String>) -> &mut Self {
81-
self.ledger_files_to_write = files;
80+
pub fn with_ledger_files(&mut self, files: &[&str]) -> &mut Self {
81+
self.ledger_files_to_write = files.iter().map(|name| name.to_string()).collect();
8282
self
8383
}
8484

@@ -89,8 +89,8 @@ impl DummyImmutablesDbBuilder {
8989
}
9090

9191
/// Set volatile files to write to the db in the 'volatile' subdirectory.
92-
pub fn with_volatile_files(&mut self, files: Vec<String>) -> &mut Self {
93-
self.volatile_files_to_write = files;
92+
pub fn with_volatile_files(&mut self, files: &[&str]) -> &mut Self {
93+
self.volatile_files_to_write = files.iter().map(|f| f.to_string()).collect();
9494
self
9595
}
9696

@@ -111,8 +111,13 @@ impl DummyImmutablesDbBuilder {
111111
/// Set the size of all immutable files written by [build][Self::build] to the given `file_size` in bytes.
112112
///
113113
/// Note: by default the size of the produced files is less than a 1kb.
114-
pub fn set_immutable_file_size(&mut self, file_size: u64) -> &mut Self {
115-
self.immutable_file_size = Some(file_size);
114+
pub fn set_immutable_trio_file_size(&mut self, trio_file_size: u64) -> &mut Self {
115+
assert!(
116+
trio_file_size % 3 == 0,
117+
"'trio_file_size' must be a multiple of 3"
118+
);
119+
120+
self.immutable_file_size = Some(trio_file_size / 3);
116121
self
117122
}
118123

0 commit comments

Comments
 (0)