Skip to content

Commit f3e30df

Browse files
authored
Merge pull request #86 from chainbound/jonas/test/reqrep
test(socket): add reqrep tests
2 parents ebafc3a + 7cc1861 commit f3e30df

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

msg-socket/tests/it/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
mod pubsub;
2+
mod reqrep;
23

34
fn main() {}

msg-socket/tests/it/reqrep.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
use bytes::Bytes;
2+
use msg_socket::{RepSocket, ReqSocket};
3+
use msg_transport::tcp::Tcp;
4+
use tokio_stream::StreamExt;
5+
6+
#[tokio::test(flavor = "multi_thread", worker_threads = 4)]
7+
async fn test_reqrep() {
8+
let _ = tracing_subscriber::fmt::try_init();
9+
10+
let mut rep = RepSocket::new(Tcp::default());
11+
let mut req = ReqSocket::new(Tcp::default());
12+
13+
rep.bind("0.0.0.0:0").await.unwrap();
14+
15+
req.connect(rep.local_addr().unwrap()).await.unwrap();
16+
17+
tokio::spawn(async move {
18+
while let Some(request) = rep.next().await {
19+
let msg = request.msg().clone();
20+
request.respond(msg).unwrap();
21+
}
22+
});
23+
24+
let response = req.request(Bytes::from_static(b"hello")).await.unwrap();
25+
tracing::info!("Response: {:?}", response);
26+
}

0 commit comments

Comments
 (0)