Skip to content

Commit d0b9ae9

Browse files
committed
Fix unit & integration tests
1 parent c330482 commit d0b9ae9

File tree

8 files changed

+86
-20
lines changed

8 files changed

+86
-20
lines changed

mithril-aggregator/src/database/provider/certificate.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -906,7 +906,7 @@ mod tests {
906906

907907
#[tokio::test]
908908
async fn get_master_certificate_for_epoch() {
909-
let (certificates, _) = setup_certificate_chain(14, 3);
909+
let (certificates, _) = setup_certificate_chain(3, 1);
910910
let expected_certificate_id = &certificates[2].hash;
911911
let epoch = &certificates[2].beacon.epoch;
912912
let mut deps = DependenciesBuilder::new(Configuration::new_sample());

mithril-aggregator/src/database/provider/open_message.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ from open_message
482482
on open_message.open_message_id = single_signature.open_message_id
483483
where {condition}
484484
group by open_message.open_message_id
485-
order by open_message.created_at desc
485+
order by open_message.rowid desc
486486
"#
487487
)
488488
}

mithril-aggregator/src/dependency.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,12 @@ impl DependencyManager {
194194
}
195195

196196
for (epoch, params) in parameters_per_epoch {
197-
self.fill_verification_key_store(epoch, &params.0).await;
198-
self.fill_stakes_store(epoch, params.0.to_vec()).await;
199197
self.protocol_parameters_store
200198
.save_protocol_parameters(epoch, params.1)
201199
.await
202200
.expect("save_protocol_parameters should not fail");
201+
self.fill_verification_key_store(epoch, &params.0).await;
202+
self.fill_stakes_store(epoch, params.0.to_vec()).await;
203203
}
204204

205205
for certificate in certificate_chain {
@@ -237,6 +237,9 @@ impl DependencyManager {
237237
second_epoch_signers: Vec<SignerWithStake>,
238238
genesis_protocol_parameters: &ProtocolParameters,
239239
) {
240+
self.init_protocol_parameter_store(genesis_protocol_parameters)
241+
.await;
242+
240243
let (work_epoch, epoch_to_sign) = self.get_genesis_epochs().await;
241244
for (epoch, signers) in [
242245
(work_epoch, genesis_signers),
@@ -245,9 +248,6 @@ impl DependencyManager {
245248
self.fill_verification_key_store(epoch, &signers).await;
246249
self.fill_stakes_store(epoch, signers).await;
247250
}
248-
249-
self.init_protocol_parameter_store(genesis_protocol_parameters)
250-
.await;
251251
}
252252

253253
/// `TEST METHOD ONLY`
@@ -269,6 +269,10 @@ impl DependencyManager {
269269

270270
async fn fill_verification_key_store(&self, target_epoch: Epoch, signers: &[SignerWithStake]) {
271271
for signer in signers {
272+
self.signer_recorder
273+
.record_signer_id(signer.party_id.clone())
274+
.await
275+
.expect("record_signer_id should not fail");
272276
self.verification_key_store
273277
.save_verification_key(target_epoch, signer.clone())
274278
.await

mithril-aggregator/src/runtime/runner.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,7 +774,7 @@ pub mod tests {
774774
let runner = AggregatorRunner::new(config, Arc::new(dependencies));
775775

776776
let beacon = fake_data::beacon();
777-
let mut certificate = fake_data::certificate("certificate_hash".to_string());
777+
let mut certificate = fake_data::genesis_certificate("certificate_hash".to_string());
778778
certificate.beacon = beacon.clone();
779779

780780
assert!(!runner

mithril-aggregator/tests/certificate_chain.rs

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,11 @@ async fn certificate_chain() {
6060
cycle!(tester, "signing");
6161
tester.register_signers(&signers).await.unwrap();
6262
cycle_err!(tester, "signing");
63-
tester.send_single_signatures(&signers).await.unwrap();
63+
let signed_entity_type = tester.retrieve_signed_entity_type().await;
64+
tester
65+
.send_single_signatures(&signed_entity_type, &signers)
66+
.await
67+
.unwrap();
6468

6569
comment!("The state machine should have issued a multisignature");
6670
cycle!(tester, "idle");
@@ -76,7 +80,11 @@ async fn certificate_chain() {
7680
tester.increase_immutable_number().await.unwrap();
7781
cycle!(tester, "ready");
7882
cycle!(tester, "signing");
79-
tester.send_single_signatures(&signers).await.unwrap();
83+
let signed_entity_type = tester.retrieve_signed_entity_type().await;
84+
tester
85+
.send_single_signatures(&signed_entity_type, &signers)
86+
.await
87+
.unwrap();
8088
cycle!(tester, "idle");
8189
let (last_certificates, snapshots) =
8290
tester.get_last_certificates_and_snapshots().await.unwrap();
@@ -135,7 +143,11 @@ async fn certificate_chain() {
135143
"Signers register & send signatures, the new certificate should be link to the first of the previous epoch"
136144
);
137145
tester.register_signers(&new_signers).await.unwrap();
138-
tester.send_single_signatures(&signers).await.unwrap();
146+
let signed_entity_type = tester.retrieve_signed_entity_type().await;
147+
tester
148+
.send_single_signatures(&signed_entity_type, &signers)
149+
.await
150+
.unwrap();
139151
cycle!(tester, "idle");
140152
let (last_certificates, snapshots) =
141153
tester.get_last_certificates_and_snapshots().await.unwrap();
@@ -170,7 +182,12 @@ async fn certificate_chain() {
170182
tester.increase_immutable_number().await.unwrap();
171183
cycle!(tester, "ready");
172184
cycle!(tester, "signing");
173-
tester.send_single_signatures(&signers).await.unwrap();
185+
186+
let signed_entity_type = tester.retrieve_signed_entity_type().await;
187+
tester
188+
.send_single_signatures(&signed_entity_type, &signers)
189+
.await
190+
.unwrap();
174191
cycle!(tester, "idle");
175192

176193
comment!(
@@ -182,7 +199,12 @@ async fn certificate_chain() {
182199
tester.increase_immutable_number().await.unwrap();
183200
cycle!(tester, "ready");
184201
cycle!(tester, "signing");
185-
tester.send_single_signatures(&new_signers).await.unwrap();
202+
let signed_entity_type = tester.retrieve_signed_entity_type().await;
203+
204+
tester
205+
.send_single_signatures(&signed_entity_type, &new_signers)
206+
.await
207+
.unwrap();
186208
cycle!(tester, "idle");
187209

188210
let (last_certificates, snapshots) =

mithril-aggregator/tests/create_certificate.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,10 @@ async fn create_certificate() {
6767
cycle!(tester, "signing");
6868

6969
comment!("signers send their single signature");
70+
let signed_entity_type = tester.retrieve_signed_entity_type().await;
7071
let signers_who_sign = &signers[0..=6];
7172
tester
72-
.send_single_signatures(signers_who_sign)
73+
.send_single_signatures(&signed_entity_type, signers_who_sign)
7374
.await
7475
.unwrap();
7576

mithril-aggregator/tests/test_extensions/runtime_tester.rs

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ use mithril_aggregator::{
1717
use mithril_common::crypto_helper::{key_encode_hex, ProtocolClerk, ProtocolGenesisSigner};
1818
use mithril_common::digesters::DumbImmutableFileObserver;
1919
use mithril_common::entities::{
20-
Certificate, Epoch, ImmutableFileNumber, SignerWithStake, SingleSignatures, Snapshot,
21-
StakeDistribution,
20+
Certificate, Epoch, ImmutableFileNumber, SignedEntityType, SignerWithStake, SingleSignatures,
21+
Snapshot, StakeDistribution,
2222
};
2323
use mithril_common::{chain_observer::FakeObserver, digesters::DumbImmutableDigester};
2424

@@ -148,6 +148,13 @@ impl RuntimeTester {
148148
.get_current_beacon()
149149
.await
150150
.map_err(|e| format!("Querying the current beacon should not fail: {e:?}"))?;
151+
self.deps_builder
152+
.get_certifier_service()
153+
.await
154+
.unwrap()
155+
.inform_epoch(beacon.epoch)
156+
.await
157+
.expect("inform_epoch should not fail");
151158
let protocol_parameters = self
152159
.deps_builder
153160
.get_protocol_parameters_store()
@@ -221,6 +228,13 @@ impl RuntimeTester {
221228
.await
222229
.ok_or("a new epoch should have been issued")?;
223230
self.update_digester_digest().await?;
231+
self.deps_builder
232+
.get_certifier_service()
233+
.await
234+
.unwrap()
235+
.inform_epoch(new_epoch)
236+
.await
237+
.expect("inform_epoch should not fail");
224238

225239
Ok(new_epoch)
226240
}
@@ -243,8 +257,10 @@ impl RuntimeTester {
243257
/// "Send", actually register, the given single signatures in the multi-signers
244258
pub async fn send_single_signatures(
245259
&mut self,
260+
signed_entity_type: &SignedEntityType,
246261
signers: &[SignerFixture],
247262
) -> Result<(), String> {
263+
let certifier_service = self.deps_builder.get_certifier_service().await.unwrap();
248264
let lock = self.deps_builder.get_multi_signer().await.unwrap();
249265
let multisigner = lock.read().await;
250266
let message = multisigner
@@ -263,8 +279,8 @@ impl RuntimeTester {
263279
signature.indexes,
264280
);
265281

266-
multisigner
267-
.register_single_signature(&message, &single_signatures)
282+
certifier_service
283+
.register_single_signature(signed_entity_type, &single_signatures)
268284
.await
269285
.map_err(|e| {
270286
format!("registering a winning lottery signature should not fail: {e:?}")
@@ -349,7 +365,7 @@ impl RuntimeTester {
349365
Ok(fixture.signers_fixture())
350366
}
351367

352-
// Update the digester result using the current beacon
368+
/// Update the digester result using the current beacon
353369
pub async fn update_digester_digest(&mut self) -> Result<(), String> {
354370
let beacon = self
355371
.deps_builder
@@ -370,8 +386,30 @@ impl RuntimeTester {
370386
Ok(())
371387
}
372388

373-
// update the Era markers
389+
/// Update the Era markers
374390
pub async fn set_era_markers(&self, markers: Vec<EraMarker>) {
375391
self.era_reader_adapter.set_markers(markers)
376392
}
393+
394+
/// Retrieve signed entity type
395+
pub async fn retrieve_signed_entity_type(&mut self) -> SignedEntityType {
396+
let signer_entity_type_default = SignedEntityType::CardanoImmutableFilesFull(
397+
self.deps_builder
398+
.get_beacon_provider()
399+
.await
400+
.unwrap()
401+
.get_current_beacon()
402+
.await
403+
.unwrap(),
404+
);
405+
self.deps_builder
406+
.get_certifier_service()
407+
.await
408+
.unwrap()
409+
.get_open_message(&signer_entity_type_default)
410+
.await
411+
.unwrap()
412+
.map(|om| om.signed_entity_type)
413+
.unwrap()
414+
}
377415
}

mithril-common/src/entities/certificate_pending.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ pub struct CertificatePending {
1010
pub beacon: Beacon,
1111

1212
/// Signed entity type
13+
#[serde(rename = "entity_type")]
1314
pub signed_entity_type: SignedEntityType,
1415

1516
/// Current Protocol parameters

0 commit comments

Comments
 (0)