use libp2p_perf::{client, server, RunParams};
use libp2p_swarm::{Swarm, SwarmEvent};
use libp2p_swarm_test::SwarmExt;
#[tokio::test]
async fn perf() {
let _ = env_logger::try_init();
let mut server = Swarm::new_ephemeral(|_| server::Behaviour::new());
let server_peer_id = *server.local_peer_id();
let mut client = Swarm::new_ephemeral(|_| client::Behaviour::new());
server.listen().await;
client.connect(&mut server).await;
tokio::spawn(server.loop_on_next());
client
.behaviour_mut()
.perf(
server_peer_id,
RunParams {
to_send: 0,
to_receive: 0,
},
)
.unwrap();
client
.wait(|e| match e {
SwarmEvent::IncomingConnection { .. } => panic!(),
SwarmEvent::ConnectionEstablished { .. } => None,
SwarmEvent::Dialing { .. } => None,
SwarmEvent::Behaviour(client::Event { result, .. }) => Some(result),
e => panic!("{e:?}"),
})
.await
.unwrap();
}