Skip to content

Commit 8bdc5ad

Browse files
committed
fix(dmq): blocking tests missing KES signed DMQ messages
1 parent aac2bb6 commit 8bdc5ad

File tree

3 files changed

+20
-76
lines changed

3 files changed

+20
-76
lines changed

internal/mithril-dmq/src/consumer/server/pallas.rs

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -282,43 +282,27 @@ mod tests {
282282

283283
use pallas_network::{
284284
facades::DmqClient,
285-
miniprotocols::{
286-
localmsgnotification,
287-
localmsgsubmission::{DmqMsg, DmqMsgPayload},
288-
},
285+
miniprotocols::{localmsgnotification, localmsgsubmission::DmqMsg},
289286
};
290287
use tokio::sync::{mpsc::unbounded_channel, watch};
291288
use tokio::time::sleep;
292289

293290
use mithril_common::{current_function, test::TempDir};
294291

295-
use crate::test_tools::TestLogger;
292+
use crate::{test::fake_message::compute_fake_msg, test_tools::TestLogger};
296293

297294
use super::*;
298295

299296
fn create_temp_dir(folder_name: &str) -> PathBuf {
300297
TempDir::create_with_short_path("dmq_consumer_server", folder_name)
301298
}
302299

303-
fn fake_msg() -> DmqMsg {
304-
DmqMsg {
305-
msg_payload: DmqMsgPayload {
306-
msg_id: vec![0, 1],
307-
msg_body: vec![0, 1, 2],
308-
kes_period: 10,
309-
expires_at: 100,
310-
},
311-
kes_signature: vec![0, 1, 2, 3],
312-
operational_certificate: vec![0, 1, 2, 3, 4],
313-
cold_verification_key: vec![0, 1, 2, 3, 4, 5],
314-
}
315-
}
316-
317300
#[tokio::test(flavor = "multi_thread")]
318301
async fn pallas_dmq_consumer_server_non_blocking_success() {
302+
let current_function_name = current_function!();
319303
let (stop_tx, stop_rx) = watch::channel(());
320304
let (signature_dmq_tx, signature_dmq_rx) = unbounded_channel::<DmqMessage>();
321-
let socket_path = create_temp_dir(current_function!()).join("node.socket");
305+
let socket_path = create_temp_dir(current_function_name).join("node.socket");
322306
let cardano_network = CardanoNetwork::TestNet(0);
323307
let dmq_consumer_server = Arc::new(DmqConsumerServerPallas::new(
324308
socket_path.to_path_buf(),
@@ -327,7 +311,7 @@ mod tests {
327311
TestLogger::stdout(),
328312
));
329313
dmq_consumer_server.register_receiver(signature_dmq_rx).await.unwrap();
330-
let message = fake_msg();
314+
let message: DmqMsg = compute_fake_msg(b"test", current_function_name).await.into();
331315
let client = tokio::spawn({
332316
async move {
333317
// sleep to avoid refused connection from the server
@@ -375,9 +359,10 @@ mod tests {
375359

376360
#[tokio::test(flavor = "multi_thread")]
377361
async fn pallas_dmq_consumer_server_blocking_success() {
362+
let current_function_name = current_function!();
378363
let (stop_tx, stop_rx) = watch::channel(());
379364
let (signature_dmq_tx, signature_dmq_rx) = unbounded_channel::<DmqMessage>();
380-
let socket_path = create_temp_dir(current_function!()).join("node.socket");
365+
let socket_path = create_temp_dir(current_function_name).join("node.socket");
381366
let cardano_network = CardanoNetwork::TestNet(0);
382367
let dmq_consumer_server = Arc::new(DmqConsumerServerPallas::new(
383368
socket_path.to_path_buf(),
@@ -386,7 +371,7 @@ mod tests {
386371
TestLogger::stdout(),
387372
));
388373
dmq_consumer_server.register_receiver(signature_dmq_rx).await.unwrap();
389-
let message = fake_msg();
374+
let message: DmqMsg = compute_fake_msg(b"test", current_function_name).await.into();
390375
let client = tokio::spawn({
391376
async move {
392377
// sleep to avoid refused connection from the server

internal/mithril-dmq/tests/consumer_client_server.rs

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,12 @@ use std::sync::Arc;
33

44
use tokio::sync::{mpsc::unbounded_channel, watch};
55

6-
use mithril_cardano_node_chain::test::double::FakeChainObserver;
7-
use mithril_common::{
8-
CardanoNetwork,
9-
crypto_helper::TryToBytes,
10-
current_function,
11-
test::{TempDir, crypto_helper::KesSignerFake},
12-
};
6+
use mithril_common::{CardanoNetwork, current_function, test::TempDir};
137
use mithril_dmq::{
148
DmqConsumerClient, DmqConsumerClientPallas, DmqConsumerServer, DmqConsumerServerPallas,
15-
DmqMessage, DmqMessageBuilder, test::payload::DmqMessageTestPayload,
9+
DmqMessage, test::fake_message::compute_fake_msg, test::payload::DmqMessageTestPayload,
1610
};
1711

18-
async fn create_fake_msg(bytes: &[u8], test_directory: &str) -> DmqMessage {
19-
let dmq_builder = DmqMessageBuilder::new(
20-
{
21-
let (kes_signature, operational_certificate) =
22-
KesSignerFake::dummy_signature(test_directory);
23-
let kes_signer =
24-
KesSignerFake::new(vec![Ok((kes_signature, operational_certificate.clone()))]);
25-
26-
Arc::new(kes_signer)
27-
},
28-
Arc::new(FakeChainObserver::default()),
29-
)
30-
.set_ttl(100);
31-
let message = DmqMessageTestPayload::new(bytes);
32-
dmq_builder.build(&message.to_bytes_vec().unwrap()).await.unwrap()
33-
}
34-
3512
#[tokio::test(flavor = "multi_thread")]
3613
async fn dmq_consumer_client_server() {
3714
let current_function_name = current_function!();
@@ -69,14 +46,14 @@ async fn dmq_consumer_client_server() {
6946
);
7047
let mut messages = vec![];
7148
signature_dmq_tx
72-
.send(create_fake_msg(b"msg_1", current_function_name).await)
49+
.send(compute_fake_msg(b"msg_1", current_function_name).await)
7350
.unwrap();
7451
signature_dmq_tx
75-
.send(create_fake_msg(b"msg_2", current_function_name).await)
52+
.send(compute_fake_msg(b"msg_2", current_function_name).await)
7653
.unwrap();
7754
messages.extend_from_slice(&consumer_client.consume_messages().await.unwrap());
7855
signature_dmq_tx
79-
.send(create_fake_msg(b"msg_3", current_function_name).await)
56+
.send(compute_fake_msg(b"msg_3", current_function_name).await)
8057
.unwrap();
8158
messages.extend_from_slice(&consumer_client.consume_messages().await.unwrap());
8259

@@ -109,7 +86,7 @@ async fn dmq_consumer_client_server() {
10986
);
11087
let mut messages = vec![];
11188
signature_dmq_tx
112-
.send(create_fake_msg(b"msg_4", current_function_name).await)
89+
.send(compute_fake_msg(b"msg_4", current_function_name).await)
11390
.unwrap();
11491
messages.extend_from_slice(&consumer_client.consume_messages().await.unwrap());
11592
stop_tx.send(()).unwrap();

internal/mithril-dmq/tests/publisher_client_server.rs

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,15 @@ use tokio::sync::{mpsc::unbounded_channel, watch};
55

66
use mithril_cardano_node_chain::test::double::FakeChainObserver;
77
use mithril_common::{
8-
CardanoNetwork,
9-
crypto_helper::TryToBytes,
10-
current_function,
8+
CardanoNetwork, current_function,
119
test::{TempDir, crypto_helper::KesSignerFake},
1210
};
1311
use mithril_dmq::{
1412
DmqMessage, DmqMessageBuilder, DmqPublisherClient, DmqPublisherClientPallas,
15-
DmqPublisherServer, DmqPublisherServerPallas, test::payload::DmqMessageTestPayload,
13+
DmqPublisherServer, DmqPublisherServerPallas,
14+
test::{fake_message::compute_fake_msg, payload::DmqMessageTestPayload},
1615
};
1716

18-
async fn create_fake_msg(bytes: &[u8], test_directory: &str) -> DmqMessage {
19-
let dmq_builder = DmqMessageBuilder::new(
20-
{
21-
let (kes_signature, operational_certificate) =
22-
KesSignerFake::dummy_signature(test_directory);
23-
let kes_signer =
24-
KesSignerFake::new(vec![Ok((kes_signature, operational_certificate.clone()))]);
25-
26-
Arc::new(kes_signer)
27-
},
28-
Arc::new(FakeChainObserver::default()),
29-
)
30-
.set_ttl(100);
31-
let message = DmqMessageTestPayload::new(bytes);
32-
dmq_builder.build(&message.to_bytes_vec().unwrap()).await.unwrap()
33-
}
34-
3517
#[tokio::test]
3618
async fn dmq_publisher_client_server() {
3719
let current_function_name = current_function!();
@@ -157,9 +139,9 @@ async fn dmq_publisher_client_server() {
157139
let (_, _, messages) = tokio::try_join!(server, client, recorder).unwrap();
158140
assert_eq!(
159141
vec![
160-
create_fake_msg(b"msg_1", current_function_name).await,
161-
create_fake_msg(b"msg_2", current_function_name).await,
162-
create_fake_msg(b"msg_3", current_function_name).await,
142+
compute_fake_msg(b"msg_1", current_function_name).await,
143+
compute_fake_msg(b"msg_2", current_function_name).await,
144+
compute_fake_msg(b"msg_3", current_function_name).await,
163145
],
164146
messages
165147
);

0 commit comments

Comments
 (0)