refactor(lib): convert to futures 0.2.0-beta (#1470)

This commit is contained in:
Sam Rijs
2018-03-30 07:32:44 +11:00
committed by Sean McArthur
parent 5db85316a1
commit a12f7beed9
34 changed files with 1366 additions and 1347 deletions

View File

@@ -5,6 +5,7 @@ use std::time::Duration;
use futures::Async;
use futures::future::poll_fn;
use futures::executor::block_on;
use tokio::executor::thread_pool::{Builder as ThreadPoolBuilder};
use mock::MockConnector;
@@ -22,7 +23,7 @@ fn retryable_request() {
let client = Client::configure()
.connector(connector)
.executor(executor.sender().clone());
.build();
{
@@ -30,13 +31,13 @@ fn retryable_request() {
.uri("http://mock.local/a")
.body(Default::default())
.unwrap();
let res1 = client.request(req);
let srv1 = poll_fn(|| {
try_ready!(sock1.read(&mut [0u8; 512]));
let res1 = client.request(req).with_executor(executor.sender().clone());
let srv1 = poll_fn(|cx| {
try_ready!(sock1.read(cx, &mut [0u8; 512]));
try_ready!(sock1.write(b"HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"));
Ok(Async::Ready(()))
});
res1.join(srv1).wait().expect("res1");
block_on(res1.join(srv1)).expect("res1");
}
drop(sock1);
@@ -44,17 +45,17 @@ fn retryable_request() {
.uri("http://mock.local/b")
.body(Default::default())
.unwrap();
let res2 = client.request(req)
let res2 = client.request(req).with_executor(executor.sender().clone())
.map(|res| {
assert_eq!(res.status().as_u16(), 222);
});
let srv2 = poll_fn(|| {
try_ready!(sock2.read(&mut [0u8; 512]));
let srv2 = poll_fn(|cx| {
try_ready!(sock2.read(cx, &mut [0u8; 512]));
try_ready!(sock2.write(b"HTTP/1.1 222 OK\r\nContent-Length: 0\r\n\r\n"));
Ok(Async::Ready(()))
});
res2.join(srv2).wait().expect("res2");
block_on(res2.join(srv2)).expect("res2");
}
#[test]
@@ -68,7 +69,7 @@ fn conn_reset_after_write() {
let client = Client::configure()
.connector(connector)
.executor(executor.sender().clone());
.build();
{
let req = Request::builder()
@@ -77,13 +78,13 @@ fn conn_reset_after_write() {
.header("content-length", "0")
.body(Default::default())
.unwrap();
let res1 = client.request(req);
let srv1 = poll_fn(|| {
try_ready!(sock1.read(&mut [0u8; 512]));
let res1 = client.request(req).with_executor(executor.sender().clone());
let srv1 = poll_fn(|cx| {
try_ready!(sock1.read(cx, &mut [0u8; 512]));
try_ready!(sock1.write(b"HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"));
Ok(Async::Ready(()))
});
res1.join(srv1).wait().expect("res1");
block_on(res1.join(srv1)).expect("res1");
}
// sleep to allow some time for the connection to return to the pool
@@ -93,20 +94,20 @@ fn conn_reset_after_write() {
.uri("http://mock.local/a")
.body(Default::default())
.unwrap();
let res2 = client.request(req);
let res2 = client.request(req).with_executor(executor.sender().clone());
let mut sock1 = Some(sock1);
let srv2 = poll_fn(|| {
let srv2 = poll_fn(|cx| {
// We purposefully keep the socket open until the client
// has written the second request, and THEN disconnect.
//
// Not because we expect servers to be jerks, but to trigger
// state where we write on an assumedly good connetion, and
// only reset the close AFTER we wrote bytes.
try_ready!(sock1.as_mut().unwrap().read(&mut [0u8; 512]));
try_ready!(sock1.as_mut().unwrap().read(cx, &mut [0u8; 512]));
sock1.take();
Ok(Async::Ready(()))
});
let err = res2.join(srv2).wait().expect_err("res2");
let err = block_on(res2.join(srv2)).expect_err("res2");
match err {
::Error::Incomplete => (),
other => panic!("expected Incomplete, found {:?}", other)