blob: 091a6d4ba7f42c1d0f9298c018c49a85a0f3cdb5 [file] [log] [blame]
use std::process::Command;
use std::thread;
use std::time;
#[test]
fn client() {
let rc = Command::new("target/debug/examples/client")
.arg("https://google.com")
.output()
.expect("cannot run client example");
assert!(rc.status.success());
}
#[test]
fn server() {
let mut srv = Command::new("target/debug/examples/server")
.arg("1337")
.spawn()
.expect("cannot run server example");
thread::sleep(time::Duration::from_secs(1));
let output = Command::new("curl")
.arg("--insecure")
.arg("--http1.0")
.arg("--silent")
.arg("https://localhost:1337")
.output()
.expect("cannot run curl");
println!("client output: {:?}", output.stdout);
assert_eq!(output.stdout, b"Try POST /echo\n");
srv.kill().unwrap();
}
#[test]
fn custom_ca_store() {
let mut srv = Command::new("target/debug/examples/server")
.arg("1338")
.spawn()
.expect("cannot run server example");
thread::sleep(time::Duration::from_secs(1));
let rc = Command::new("target/debug/examples/client")
.arg("https://localhost:1338")
.arg("examples/sample.pem")
.output()
.expect("cannot run client example");
srv.kill().unwrap();
if !rc.status.success() {
assert_eq!(String::from_utf8_lossy(&rc.stdout), "");
}
}