test(client): Uncomment failing tests and make them #[ignore]d.
This commit is contained in:
committed by
Sean McArthur
parent
b831ae1870
commit
821fa03c2a
@@ -1478,15 +1478,17 @@ mod dispatch_impl {
|
|||||||
assert_eq!(vec, b"bar=foo");
|
assert_eq!(vec, b"bar=foo");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*#[test]
|
#[ignore] // Re-enable as soon as HTTP/2.0 is supported again.
|
||||||
|
#[test]
|
||||||
fn alpn_h2() {
|
fn alpn_h2() {
|
||||||
use hyper::Response;
|
use hyper::Response;
|
||||||
use hyper::server::conn::Http;
|
use hyper::server::conn::Http;
|
||||||
use hyper::service::service_fn;
|
use hyper::service::service_fn;
|
||||||
|
use tokio_tcp::TcpListener;
|
||||||
|
|
||||||
let _ = pretty_env_logger::try_init();
|
let _ = pretty_env_logger::try_init();
|
||||||
let mut rt = Runtime::new().unwrap();
|
let mut rt = Runtime::new().unwrap();
|
||||||
let listener = TkTcpListener::bind(&"127.0.0.1:0".parse().unwrap()).unwrap();
|
let listener = TcpListener::bind(&"127.0.0.1:0".parse().unwrap()).unwrap();
|
||||||
let addr = listener.local_addr().unwrap();
|
let addr = listener.local_addr().unwrap();
|
||||||
let mut connector = DebugConnector::new();
|
let mut connector = DebugConnector::new();
|
||||||
connector.alpn_h2 = true;
|
connector.alpn_h2 = true;
|
||||||
@@ -1495,7 +1497,8 @@ mod dispatch_impl {
|
|||||||
let client = Client::builder()
|
let client = Client::builder()
|
||||||
.build::<_, ::hyper::Body>(connector);
|
.build::<_, ::hyper::Body>(connector);
|
||||||
|
|
||||||
let srv = listener.incoming()
|
let mut incoming = listener.incoming();
|
||||||
|
let srv = incoming
|
||||||
.try_next()
|
.try_next()
|
||||||
.map_err(|_| unreachable!())
|
.map_err(|_| unreachable!())
|
||||||
.and_then(|item| {
|
.and_then(|item| {
|
||||||
@@ -1504,7 +1507,7 @@ mod dispatch_impl {
|
|||||||
.http2_only(true)
|
.http2_only(true)
|
||||||
.serve_connection(socket, service_fn(|req| async move {
|
.serve_connection(socket, service_fn(|req| async move {
|
||||||
assert_eq!(req.headers().get("host"), None);
|
assert_eq!(req.headers().get("host"), None);
|
||||||
Ok(Response::new(Body::empty()))
|
Ok::<_, hyper::Error>(Response::new(Body::empty()))
|
||||||
}))
|
}))
|
||||||
})
|
})
|
||||||
.map_err(|e| panic!("server error: {}", e));
|
.map_err(|e| panic!("server error: {}", e));
|
||||||
@@ -1529,7 +1532,7 @@ mod dispatch_impl {
|
|||||||
|
|
||||||
assert_eq!(connects.load(Ordering::SeqCst), 3, "after ALPN, no more connects");
|
assert_eq!(connects.load(Ordering::SeqCst), 3, "after ALPN, no more connects");
|
||||||
drop(client);
|
drop(client);
|
||||||
}*/
|
}
|
||||||
|
|
||||||
|
|
||||||
struct DebugConnector {
|
struct DebugConnector {
|
||||||
@@ -2094,12 +2097,12 @@ mod conn {
|
|||||||
assert_eq!(vec, b"bar=foo");
|
assert_eq!(vec, b"bar=foo");
|
||||||
}
|
}
|
||||||
|
|
||||||
// DISABLED
|
#[ignore] // Re-enable as soon as HTTP/2.0 is supported again.
|
||||||
// #[test]
|
#[test]
|
||||||
/*fn http2_detect_conn_eof() {
|
fn http2_detect_conn_eof() {
|
||||||
use futures_util::future;
|
use futures_util::future;
|
||||||
use hyper::{Response, Server};
|
use hyper::{Response, Server};
|
||||||
use hyper::service::service_fn;
|
use hyper::service::{make_service_fn, service_fn};
|
||||||
use tokio::timer::Delay;
|
use tokio::timer::Delay;
|
||||||
|
|
||||||
let _ = pretty_env_logger::try_init();
|
let _ = pretty_env_logger::try_init();
|
||||||
@@ -2108,19 +2111,23 @@ mod conn {
|
|||||||
|
|
||||||
let server = Server::bind(&([127, 0, 0, 1], 0).into())
|
let server = Server::bind(&([127, 0, 0, 1], 0).into())
|
||||||
.http2_only(true)
|
.http2_only(true)
|
||||||
.serve(|| service_fn(|_req| {
|
.serve(make_service_fn(|_| async move {
|
||||||
Ok(Response::new(Body::empty()))
|
Ok::<_, hyper::Error>(service_fn(|_req| future::ok::<_, hyper::Error>(Response::new(Body::empty()))))
|
||||||
}));
|
}));
|
||||||
let addr = server.local_addr();
|
let addr = server.local_addr();
|
||||||
let (shdn_tx, shdn_rx) = oneshot::channel();
|
let (shdn_tx, shdn_rx) = oneshot::channel();
|
||||||
rt.spawn(server.with_graceful_shutdown(shdn_rx).map_err(|e| panic!("server error: {:?}", e)));
|
rt.spawn(server.with_graceful_shutdown(async {
|
||||||
|
shdn_rx.await.ok();
|
||||||
|
}).map(|_| ()));
|
||||||
|
|
||||||
let io = rt.block_on(tcp_connect(&addr)).expect("tcp connect");
|
let io = rt.block_on(tcp_connect(&addr)).expect("tcp connect");
|
||||||
let (mut client, conn) = rt.block_on(
|
let (mut client, conn) = rt.block_on(
|
||||||
conn::Builder::new().http2_only(true).handshake::<_, Body>(io)
|
conn::Builder::new().http2_only(true).handshake::<_, Body>(io)
|
||||||
).expect("http handshake");
|
).expect("http handshake");
|
||||||
rt.spawn(conn.map_err(|e| panic!("client conn error: {:?}", e)));
|
|
||||||
|
|
||||||
|
rt.spawn(conn
|
||||||
|
.map_err(|e| panic!("client conn error: {:?}", e))
|
||||||
|
.map(|_| ()));
|
||||||
|
|
||||||
// Sanity check that client is ready
|
// Sanity check that client is ready
|
||||||
rt.block_on(future::poll_fn(|ctx| client.poll_ready(ctx))).expect("client poll ready sanity");
|
rt.block_on(future::poll_fn(|ctx| client.poll_ready(ctx))).expect("client poll ready sanity");
|
||||||
@@ -2139,27 +2146,17 @@ mod conn {
|
|||||||
let _ = shdn_tx.send(());
|
let _ = shdn_tx.send(());
|
||||||
|
|
||||||
// Allow time for graceful shutdown roundtrips...
|
// Allow time for graceful shutdown roundtrips...
|
||||||
rt.block_on(Delay::new(::std::time::Instant::now() + Duration::from_millis(100)).map_err(|e| panic!("delay error: {:?}", e))).expect("delay");
|
rt.block_on(Delay::new(::std::time::Instant::now() + Duration::from_millis(100)));
|
||||||
|
|
||||||
// After graceful shutdown roundtrips, the client should be closed...
|
// After graceful shutdown roundtrips, the client should be closed...
|
||||||
rt.block_on(future::poll_fn(|ctx| client.poll_ready(ctx))).expect_err("client should be closed");
|
rt.block_on(future::poll_fn(|ctx| client.poll_ready(ctx))).expect_err("client should be closed");
|
||||||
}*/
|
}
|
||||||
|
|
||||||
struct DebugStream {
|
struct DebugStream {
|
||||||
tcp: TcpStream,
|
tcp: TcpStream,
|
||||||
shutdown_called: bool,
|
shutdown_called: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*impl Write for DebugStream {
|
|
||||||
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
|
|
||||||
self.tcp.write(buf)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn flush(&mut self) -> io::Result<()> {
|
|
||||||
self.tcp.flush()
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
impl AsyncWrite for DebugStream {
|
impl AsyncWrite for DebugStream {
|
||||||
fn poll_shutdown(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), io::Error>> {
|
fn poll_shutdown(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), io::Error>> {
|
||||||
self.shutdown_called = true;
|
self.shutdown_called = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user