Skip to content

Commit bc4dd56

Browse files
committed
Introduce helper function connect in tokio-boring tests
1 parent b27a6e7 commit bc4dd56

1 file changed

Lines changed: 22 additions & 14 deletions

File tree

tokio-boring/tests/client_server.rs

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use boring::ssl::{SslAcceptor, SslConnector, SslFiletype, SslMethod};
1+
use boring::error::ErrorStack;
2+
use boring::ssl::{SslAcceptor, SslConnector, SslConnectorBuilder, SslFiletype, SslMethod};
23
use futures::future;
34
use std::future::Future;
45
use std::net::{SocketAddr, ToSocketAddrs};
@@ -46,12 +47,15 @@ fn create_server() -> (
4647

4748
let server = async move {
4849
let mut acceptor = SslAcceptor::mozilla_intermediate(SslMethod::tls()).unwrap();
50+
4951
acceptor
5052
.set_private_key_file("tests/key.pem", SslFiletype::PEM)
5153
.unwrap();
54+
5255
acceptor
5356
.set_certificate_chain_file("tests/cert.pem")
5457
.unwrap();
58+
5559
let acceptor = acceptor.build();
5660

5761
let stream = listener.accept().await.unwrap().0;
@@ -62,6 +66,21 @@ fn create_server() -> (
6266
(server, addr)
6367
}
6468

69+
async fn connect(
70+
addr: SocketAddr,
71+
setup: impl FnOnce(&mut SslConnectorBuilder) -> Result<(), ErrorStack>,
72+
) -> Result<SslStream<TcpStream>, HandshakeError<TcpStream>> {
73+
let mut connector = SslConnector::builder(SslMethod::tls()).unwrap();
74+
75+
setup(&mut connector).unwrap();
76+
77+
let config = connector.build().configure().unwrap();
78+
79+
let stream = TcpStream::connect(&addr).await.unwrap();
80+
81+
tokio_boring::connect(config, "localhost", stream).await
82+
}
83+
6584
#[tokio::test]
6685
async fn server() {
6786
let (stream, addr) = create_server();
@@ -80,12 +99,7 @@ async fn server() {
8099
};
81100

82101
let client = async {
83-
let mut connector = SslConnector::builder(SslMethod::tls()).unwrap();
84-
connector.set_ca_file("tests/cert.pem").unwrap();
85-
let config = connector.build().configure().unwrap();
86-
87-
let stream = TcpStream::connect(&addr).await.unwrap();
88-
let mut stream = tokio_boring::connect(config, "localhost", stream)
102+
let mut stream = connect(addr, |builder| builder.set_ca_file("tests/cert.pem"))
89103
.await
90104
.unwrap();
91105

@@ -110,13 +124,7 @@ async fn handshake_error() {
110124
};
111125

112126
let client = async {
113-
let connector = SslConnector::builder(SslMethod::tls()).unwrap();
114-
let config = connector.build().configure().unwrap();
115-
let stream = TcpStream::connect(&addr).await.unwrap();
116-
117-
let err = tokio_boring::connect(config, "localhost", stream)
118-
.await
119-
.unwrap_err();
127+
let err = connect(addr, |_| Ok(())).await.unwrap_err();
120128

121129
assert!(err.into_source_stream().is_some());
122130
};

0 commit comments

Comments
 (0)