This commit is contained in:
Oliver Gould
2017-07-22 19:50:17 +00:00
parent b7ca796e21
commit 067ec846e1
2 changed files with 18 additions and 10 deletions

View File

@@ -16,6 +16,7 @@ ordermap = "0.2.10"
[dev-dependencies] [dev-dependencies]
mock-io = { git = "https://github.com/carllerche/mock-io" } mock-io = { git = "https://github.com/carllerche/mock-io" }
test_futures = "0.0.1"
# Fuzzing # Fuzzing
quickcheck = "0.4.1" quickcheck = "0.4.1"

View File

@@ -6,6 +6,7 @@ extern crate futures;
#[macro_use] #[macro_use]
extern crate log; extern crate log;
extern crate mock_io; extern crate mock_io;
extern crate test_futures;
// scoped so `cargo test client_request` dtrt. // scoped so `cargo test client_request` dtrt.
mod client_request { mod client_request {
@@ -15,6 +16,7 @@ mod client_request {
use futures::*; use futures::*;
use bytes::Bytes; use bytes::Bytes;
use mock_io; use mock_io;
use test_futures::*;
// TODO: move into another file // TODO: move into another file
macro_rules! assert_user_err { macro_rules! assert_user_err {
@@ -48,12 +50,12 @@ mod client_request {
.write(SETTINGS_ACK) .write(SETTINGS_ACK)
.build(); .build();
let h2 = client::handshake(mock) let mut h2 = client::handshake(mock)
.wait().unwrap(); .wait().unwrap();
trace!("hands have been shook"); trace!("hands have been shook");
// At this point, the connection should be closed // At this point, the connection should be closed
assert!(Stream::wait(h2).next().is_none()); sassert_empty(&mut h2);
} }
#[test] #[test]
@@ -78,10 +80,14 @@ mod client_request {
// Send the request // Send the request
let mut request = request::Head::default(); let mut request = request::Head::default();
request.uri = "https://http2.akamai.com/".parse().unwrap(); request.uri = "https://http2.akamai.com/".parse().unwrap();
trace!("sending request");
let h2 = h2.send_request(1.into(), request, true).wait().unwrap(); let h2 = h2.send_request(1.into(), request, true).wait().unwrap();
// Get the response // Get the response
let (resp, h2) = h2.into_future().wait().unwrap();
trace!("getting response");
let (resp, mut h2) = h2.into_future().wait().unwrap();
match resp.unwrap() { match resp.unwrap() {
Frame::Headers { headers, .. } => { Frame::Headers { headers, .. } => {
@@ -91,7 +97,8 @@ mod client_request {
} }
// No more frames // No more frames
assert!(Stream::wait(h2).next().is_none()); trace!("ensure no more responses");
sassert_empty(&mut h2);
} }
#[test] #[test]
@@ -144,7 +151,7 @@ mod client_request {
} }
// Get the response body // Get the response body
let (data, h2) = h2.into_future().wait().unwrap(); let (data, mut h2) = h2.into_future().wait().unwrap();
match data.unwrap() { match data.unwrap() {
Frame::Data { id, data, end_of_stream, .. } => { Frame::Data { id, data, end_of_stream, .. } => {
@@ -155,7 +162,7 @@ mod client_request {
_ => panic!("unexpected frame"), _ => panic!("unexpected frame"),
} }
assert!(Stream::wait(h2).next().is_none()); sassert_empty(&mut h2);
} }
#[test] #[test]
@@ -208,7 +215,7 @@ mod client_request {
} }
// Get the response body // Get the response body
let (data, h2) = h2.into_future().wait().unwrap(); let (data, mut h2) = h2.into_future().wait().unwrap();
match data.unwrap() { match data.unwrap() {
Frame::Data { id, data, end_of_stream, .. } => { Frame::Data { id, data, end_of_stream, .. } => {
@@ -219,7 +226,7 @@ mod client_request {
_ => panic!("unexpected frame"), _ => panic!("unexpected frame"),
} }
assert!(Stream::wait(h2).next().is_none()); sassert_empty(&mut h2);
} }
#[test] #[test]
@@ -288,7 +295,7 @@ mod client_request {
} }
// Get the response body // Get the response body
let (data, h2) = h2.into_future().wait().expect("into future"); let (data, mut h2) = h2.into_future().wait().expect("into future");
match data.expect("response data") { match data.expect("response data") {
Frame::Data { id, data, end_of_stream, .. } => { Frame::Data { id, data, end_of_stream, .. } => {
@@ -299,7 +306,7 @@ mod client_request {
_ => panic!("unexpected frame"), _ => panic!("unexpected frame"),
} }
assert!(Stream::wait(h2).next().is_none()); sassert_empty(&mut h2);
} }
#[test] #[test]