Minimize test duplication
This commit is contained in:
parent
1b3e0c8a15
commit
d3104955dd
|
|
@ -17,6 +17,7 @@ use std::time::Duration;
|
||||||
use tempdir::TempDir;
|
use tempdir::TempDir;
|
||||||
|
|
||||||
use dh::Dh;
|
use dh::Dh;
|
||||||
|
use error::ErrorStack;
|
||||||
use hash::MessageDigest;
|
use hash::MessageDigest;
|
||||||
use ocsp::{OcspResponse, OcspResponseStatus};
|
use ocsp::{OcspResponse, OcspResponseStatus};
|
||||||
use pkey::PKey;
|
use pkey::PKey;
|
||||||
|
|
@ -29,8 +30,8 @@ use ssl::SslVersion;
|
||||||
use ssl::{ClientHelloResponse, ExtensionContext};
|
use ssl::{ClientHelloResponse, ExtensionContext};
|
||||||
use ssl::{
|
use ssl::{
|
||||||
Error, HandshakeError, MidHandshakeSslStream, ShutdownResult, ShutdownState, Ssl, SslAcceptor,
|
Error, HandshakeError, MidHandshakeSslStream, ShutdownResult, ShutdownState, Ssl, SslAcceptor,
|
||||||
SslConnector, SslContext, SslFiletype, SslMethod, SslOptions, SslSessionCacheMode, SslStream,
|
SslAcceptorBuilder, SslConnector, SslContext, SslContextBuilder, SslFiletype, SslMethod,
|
||||||
SslVerifyMode, StatusType, SslContextBuilder
|
SslOptions, SslSessionCacheMode, SslStream, SslVerifyMode, StatusType,
|
||||||
};
|
};
|
||||||
#[cfg(ossl102)]
|
#[cfg(ossl102)]
|
||||||
use x509::store::X509StoreBuilder;
|
use x509::store::X509StoreBuilder;
|
||||||
|
|
@ -737,15 +738,14 @@ fn connector_no_hostname_can_disable_verify() {
|
||||||
s.read_exact(&mut [0]).unwrap();
|
s.read_exact(&mut [0]).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
fn test_mozilla_server(new: fn(SslMethod) -> Result<SslAcceptorBuilder, ErrorStack>) {
|
||||||
fn connector_client_server_mozilla_intermediate() {
|
|
||||||
let listener = TcpListener::bind("127.0.0.1:0").unwrap();
|
let listener = TcpListener::bind("127.0.0.1:0").unwrap();
|
||||||
let port = listener.local_addr().unwrap().port();
|
let port = listener.local_addr().unwrap().port();
|
||||||
|
|
||||||
let t = thread::spawn(move || {
|
let t = thread::spawn(move || {
|
||||||
let key = PKey::private_key_from_pem(KEY).unwrap();
|
let key = PKey::private_key_from_pem(KEY).unwrap();
|
||||||
let cert = X509::from_pem(CERT).unwrap();
|
let cert = X509::from_pem(CERT).unwrap();
|
||||||
let mut acceptor = SslAcceptor::mozilla_intermediate(SslMethod::tls()).unwrap();
|
let mut acceptor = new(SslMethod::tls()).unwrap();
|
||||||
acceptor.set_private_key(&key).unwrap();
|
acceptor.set_private_key(&key).unwrap();
|
||||||
acceptor.set_certificate(&cert).unwrap();
|
acceptor.set_certificate(&cert).unwrap();
|
||||||
let acceptor = acceptor.build();
|
let acceptor = acceptor.build();
|
||||||
|
|
@ -769,101 +769,25 @@ fn connector_client_server_mozilla_intermediate() {
|
||||||
t.join().unwrap();
|
t.join().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn connector_client_server_mozilla_intermediate() {
|
||||||
|
test_mozilla_server(SslAcceptor::mozilla_intermediate);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn connector_client_server_mozilla_modern() {
|
fn connector_client_server_mozilla_modern() {
|
||||||
let listener = TcpListener::bind("127.0.0.1:0").unwrap();
|
test_mozilla_server(SslAcceptor::mozilla_modern);
|
||||||
let port = listener.local_addr().unwrap().port();
|
|
||||||
|
|
||||||
let t = thread::spawn(move || {
|
|
||||||
let key = PKey::private_key_from_pem(KEY).unwrap();
|
|
||||||
let cert = X509::from_pem(CERT).unwrap();
|
|
||||||
let mut acceptor = SslAcceptor::mozilla_modern(SslMethod::tls()).unwrap();
|
|
||||||
acceptor.set_private_key(&key).unwrap();
|
|
||||||
acceptor.set_certificate(&cert).unwrap();
|
|
||||||
let acceptor = acceptor.build();
|
|
||||||
let stream = listener.accept().unwrap().0;
|
|
||||||
let mut stream = acceptor.accept(stream).unwrap();
|
|
||||||
|
|
||||||
stream.write_all(b"hello").unwrap();
|
|
||||||
});
|
|
||||||
|
|
||||||
let mut connector = SslConnector::builder(SslMethod::tls()).unwrap();
|
|
||||||
connector.set_ca_file("test/root-ca.pem").unwrap();
|
|
||||||
let connector = connector.build();
|
|
||||||
|
|
||||||
let stream = TcpStream::connect(("127.0.0.1", port)).unwrap();
|
|
||||||
let mut stream = connector.connect("foobar.com", stream).unwrap();
|
|
||||||
|
|
||||||
let mut buf = [0; 5];
|
|
||||||
stream.read_exact(&mut buf).unwrap();
|
|
||||||
assert_eq!(b"hello", &buf);
|
|
||||||
|
|
||||||
t.join().unwrap();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn connector_client_server_mozilla_intermediate_v5() {
|
fn connector_client_server_mozilla_intermediate_v5() {
|
||||||
let listener = TcpListener::bind("127.0.0.1:0").unwrap();
|
test_mozilla_server(SslAcceptor::mozilla_intermediate_v5);
|
||||||
let port = listener.local_addr().unwrap().port();
|
|
||||||
|
|
||||||
let t = thread::spawn(move || {
|
|
||||||
let key = PKey::private_key_from_pem(KEY).unwrap();
|
|
||||||
let cert = X509::from_pem(CERT).unwrap();
|
|
||||||
let mut acceptor = SslAcceptor::mozilla_intermediate_v5(SslMethod::tls()).unwrap();
|
|
||||||
acceptor.set_private_key(&key).unwrap();
|
|
||||||
acceptor.set_certificate(&cert).unwrap();
|
|
||||||
let acceptor = acceptor.build();
|
|
||||||
let stream = listener.accept().unwrap().0;
|
|
||||||
let mut stream = acceptor.accept(stream).unwrap();
|
|
||||||
|
|
||||||
stream.write_all(b"hello").unwrap();
|
|
||||||
});
|
|
||||||
|
|
||||||
let mut connector = SslConnector::builder(SslMethod::tls()).unwrap();
|
|
||||||
connector.set_ca_file("test/root-ca.pem").unwrap();
|
|
||||||
let connector = connector.build();
|
|
||||||
|
|
||||||
let stream = TcpStream::connect(("127.0.0.1", port)).unwrap();
|
|
||||||
let mut stream = connector.connect("foobar.com", stream).unwrap();
|
|
||||||
|
|
||||||
let mut buf = [0; 5];
|
|
||||||
stream.read_exact(&mut buf).unwrap();
|
|
||||||
assert_eq!(b"hello", &buf);
|
|
||||||
|
|
||||||
t.join().unwrap();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[cfg(ossl111)]
|
#[cfg(ossl111)]
|
||||||
fn connector_client_server_mozilla_modern_v5() {
|
fn connector_client_server_mozilla_modern_v5() {
|
||||||
let listener = TcpListener::bind("127.0.0.1:0").unwrap();
|
test_mozilla_server(SslAcceptor::mozilla_modern_v5);
|
||||||
let port = listener.local_addr().unwrap().port();
|
|
||||||
|
|
||||||
let t = thread::spawn(move || {
|
|
||||||
let key = PKey::private_key_from_pem(KEY).unwrap();
|
|
||||||
let cert = X509::from_pem(CERT).unwrap();
|
|
||||||
let mut acceptor = SslAcceptor::mozilla_modern_v5(SslMethod::tls()).unwrap();
|
|
||||||
acceptor.set_private_key(&key).unwrap();
|
|
||||||
acceptor.set_certificate(&cert).unwrap();
|
|
||||||
let acceptor = acceptor.build();
|
|
||||||
let stream = listener.accept().unwrap().0;
|
|
||||||
let mut stream = acceptor.accept(stream).unwrap();
|
|
||||||
|
|
||||||
stream.write_all(b"hello").unwrap();
|
|
||||||
});
|
|
||||||
|
|
||||||
let mut connector = SslConnector::builder(SslMethod::tls()).unwrap();
|
|
||||||
connector.set_ca_file("test/root-ca.pem").unwrap();
|
|
||||||
let connector = connector.build();
|
|
||||||
|
|
||||||
let stream = TcpStream::connect(("127.0.0.1", port)).unwrap();
|
|
||||||
let mut stream = connector.connect("foobar.com", stream).unwrap();
|
|
||||||
|
|
||||||
let mut buf = [0; 5];
|
|
||||||
stream.read_exact(&mut buf).unwrap();
|
|
||||||
assert_eq!(b"hello", &buf);
|
|
||||||
|
|
||||||
t.join().unwrap();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue