mirror of https://github.com/ctz/rustls
Add regression test suite
This commit is contained in:
parent
23e9da1dc6
commit
ffd183c202
|
@ -0,0 +1,18 @@
|
|||
#[allow(dead_code)]
|
||||
mod common;
|
||||
use common::OpenSSLServer;
|
||||
|
||||
/* Test where the server gives certificates A -> B where the
|
||||
* validation path is A -> B -> C where C is a trust root
|
||||
* but B is not. */
|
||||
#[test]
|
||||
fn partial_chain() {
|
||||
let mut server = OpenSSLServer::new_rsa(8100);
|
||||
server.partial_chain();
|
||||
server.run();
|
||||
server.client()
|
||||
.verbose()
|
||||
.expect("Ciphers common between both SSL end points:")
|
||||
.go();
|
||||
server.kill();
|
||||
}
|
|
@ -133,6 +133,7 @@ pub struct OpenSSLServer {
|
|||
pub key: String,
|
||||
pub cert: String,
|
||||
pub chain: String,
|
||||
pub intermediate: String,
|
||||
pub cacert: String,
|
||||
pub extra_args: Vec<&'static str>,
|
||||
pub child: Option<process::Child>
|
||||
|
@ -157,6 +158,7 @@ impl OpenSSLServer {
|
|||
cert: format!("test-ca/{}/end.cert", keytype),
|
||||
chain: format!("test-ca/{}/end.chain", keytype),
|
||||
cacert: format!("test-ca/{}/ca.cert", keytype),
|
||||
intermediate: format!("test-ca/{}/inter.cert", keytype),
|
||||
extra_args: Vec::new(),
|
||||
child: None
|
||||
}
|
||||
|
@ -170,6 +172,11 @@ impl OpenSSLServer {
|
|||
OpenSSLServer::new("ecdsa", start_port)
|
||||
}
|
||||
|
||||
pub fn partial_chain(&mut self) -> &mut Self {
|
||||
self.chain = self.intermediate.clone();
|
||||
self
|
||||
}
|
||||
|
||||
pub fn arg(&mut self, arg: &'static str) -> &mut Self {
|
||||
self.extra_args.push(arg);
|
||||
self
|
||||
|
@ -182,18 +189,17 @@ impl OpenSSLServer {
|
|||
extra_args.push("-www");
|
||||
}
|
||||
|
||||
println!("args = {:?}", extra_args);
|
||||
let mut subp = process::Command::new("openssl");
|
||||
subp.arg("s_server")
|
||||
.arg("-accept").arg(self.port.to_string())
|
||||
.arg("-key").arg(&self.key)
|
||||
.arg("-cert").arg(&self.cert)
|
||||
.arg("-CAfile").arg(&self.chain)
|
||||
.args(&extra_args)
|
||||
.stdout(process::Stdio::null())
|
||||
.stderr(process::Stdio::null());
|
||||
|
||||
let child = process::Command::new("openssl")
|
||||
.arg("s_server")
|
||||
.arg("-accept").arg(self.port.to_string())
|
||||
.arg("-key").arg(&self.key)
|
||||
.arg("-cert").arg(&self.cert)
|
||||
.arg("-CAfile").arg(&self.chain)
|
||||
.args(&extra_args)
|
||||
.stdout(process::Stdio::null())
|
||||
.stderr(process::Stdio::null())
|
||||
.spawn()
|
||||
let child = subp.spawn()
|
||||
.expect("cannot run openssl server");
|
||||
|
||||
self.wait_for_port().expect("server did not come up");
|
||||
|
|
|
@ -64,8 +64,8 @@ fn wikipedia() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn letsencrypt() {
|
||||
connect("letsencrypt.org")
|
||||
fn hello_letsencrypt() {
|
||||
connect("helloworld.letsencrypt.org")
|
||||
.expect("HTTP/1.1 200 OK")
|
||||
.go()
|
||||
.unwrap();
|
||||
|
@ -98,7 +98,7 @@ fn baidu() {
|
|||
#[test]
|
||||
fn netflix() {
|
||||
connect("www.netflix.com")
|
||||
.expect("HTTP/1.1 200 OK")
|
||||
.expect("HTTP/1.1 ")
|
||||
.go()
|
||||
.unwrap();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue