use crate::network::ConnectionHandler;
use async_std::task::block_on;
use bytes::Bytes;
use core::net::SocketAddr;
use core::str::FromStr;
use std_embedded_nal_async::Stack;
use std_embedded_time::StandardClock;
use test::Bencher;
macro_rules! setup_client {
($client:ident) => {
let stack = Stack::default();
let clock = StandardClock::default();
let server_address = SocketAddr::from_str("127.0.0.1:6379").unwrap();
let connection_handler = ConnectionHandler::resp3(server_address);
let $client = block_on(connection_handler.connect(&stack, Some(&clock))).unwrap();
};
}
#[bench]
fn benchmark_publish(bencher: &mut Bencher) {
setup_client!(client);
let topic = Bytes::from_static(b"test");
let data = Bytes::from_static(&[b'A'; 256]);
bencher.iter(|| {
block_on(client.publish(topic.clone(), data.clone())).unwrap();
});
block_on(client.close());
}