1 /// Microbenchmarks go here. Larger benchmarks of (eg.) protocol 2 /// performance go in examples/internal/bench.rs. 3 4 use criterion::Criterion; 5 use criterion::criterion_group; 6 use criterion::criterion_main; 7 8 #[allow(dead_code)] 9 mod common; 10 use crate::common::*; 11 12 use rustls::{Session, ServerSession}; 13 14 use std::sync::Arc; 15 use std::io; 16 bench_ewouldblock(c: &mut Criterion)17fn bench_ewouldblock(c: &mut Criterion) { 18 let server_config = make_server_config(KeyType::RSA); 19 let mut server = ServerSession::new(&Arc::new(server_config)); 20 let mut read_ewouldblock = FailsReads::new(io::ErrorKind::WouldBlock); 21 c.bench_function("read_tls with EWOULDBLOCK", 22 move |b| b.iter(|| server.read_tls(&mut read_ewouldblock))); 23 } 24 25 criterion_group!(benches, bench_ewouldblock); 26 criterion_main!(benches); 27