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