@@ -1478,15 +1478,17 @@ mod dispatch_impl {
14781478 assert_eq ! ( vec, b"bar=foo" ) ;
14791479 }
14801480
1481- /*#[test]
1481+ #[ ignore] // Re-enable as soon as HTTP/2.0 is supported again.
1482+ #[ test]
14821483 fn alpn_h2 ( ) {
14831484 use hyper:: Response ;
14841485 use hyper:: server:: conn:: Http ;
14851486 use hyper:: service:: service_fn;
1487+ use tokio_tcp:: TcpListener ;
14861488
14871489 let _ = pretty_env_logger:: try_init ( ) ;
14881490 let mut rt = Runtime :: new ( ) . unwrap ( ) ;
1489- let listener = TkTcpListener ::bind(&"127.0.0.1:0".parse().unwrap()).unwrap();
1491+ let listener = TcpListener :: bind ( & "127.0.0.1:0" . parse ( ) . unwrap ( ) ) . unwrap ( ) ;
14901492 let addr = listener. local_addr ( ) . unwrap ( ) ;
14911493 let mut connector = DebugConnector :: new ( ) ;
14921494 connector. alpn_h2 = true ;
@@ -1495,7 +1497,8 @@ mod dispatch_impl {
14951497 let client = Client :: builder ( )
14961498 . build :: < _ , :: hyper:: Body > ( connector) ;
14971499
1498- let srv = listener.incoming()
1500+ let mut incoming = listener. incoming ( ) ;
1501+ let srv = incoming
14991502 . try_next ( )
15001503 . map_err ( |_| unreachable ! ( ) )
15011504 . and_then ( |item| {
@@ -1504,7 +1507,7 @@ mod dispatch_impl {
15041507 . http2_only ( true )
15051508 . serve_connection ( socket, service_fn ( |req| async move {
15061509 assert_eq ! ( req. headers( ) . get( "host" ) , None ) ;
1507- Ok(Response::new(Body::empty()))
1510+ Ok :: < _ , hyper :: Error > ( Response :: new ( Body :: empty ( ) ) )
15081511 } ) )
15091512 } )
15101513 . map_err ( |e| panic ! ( "server error: {}" , e) ) ;
@@ -1529,7 +1532,7 @@ mod dispatch_impl {
15291532
15301533 assert_eq ! ( connects. load( Ordering :: SeqCst ) , 3 , "after ALPN, no more connects" ) ;
15311534 drop ( client) ;
1532- }*/
1535+ }
15331536
15341537
15351538 struct DebugConnector {
@@ -2094,12 +2097,12 @@ mod conn {
20942097 assert_eq ! ( vec, b"bar=foo" ) ;
20952098 }
20962099
2097- // DISABLED
2098- // #[test]
2099- /* fn http2_detect_conn_eof() {
2100+ # [ ignore ] // Re-enable as soon as HTTP/2.0 is supported again.
2101+ #[ test]
2102+ fn http2_detect_conn_eof ( ) {
21002103 use futures_util:: future;
21012104 use hyper:: { Response , Server } ;
2102- use hyper::service::service_fn;
2105+ use hyper:: service:: { make_service_fn , service_fn} ;
21032106 use tokio:: timer:: Delay ;
21042107
21052108 let _ = pretty_env_logger:: try_init ( ) ;
@@ -2108,19 +2111,23 @@ mod conn {
21082111
21092112 let server = Server :: bind ( & ( [ 127 , 0 , 0 , 1 ] , 0 ) . into ( ) )
21102113 . http2_only ( true )
2111- .serve(|| service_fn(|_req| {
2112- Ok( Response::new(Body::empty()))
2114+ . serve ( make_service_fn ( |_| async move {
2115+ Ok :: < _ , hyper :: Error > ( service_fn ( |_req| future :: ok :: < _ , hyper :: Error > ( Response :: new ( Body :: empty ( ) ) ) ) )
21132116 } ) ) ;
21142117 let addr = server. local_addr ( ) ;
21152118 let ( shdn_tx, shdn_rx) = oneshot:: channel ( ) ;
2116- rt.spawn(server.with_graceful_shutdown(shdn_rx).map_err(|e| panic!("server error: {:?}", e)));
2119+ rt. spawn ( server. with_graceful_shutdown ( async {
2120+ shdn_rx. await . ok ( ) ;
2121+ } ) . map ( |_| ( ) ) ) ;
21172122
21182123 let io = rt. block_on ( tcp_connect ( & addr) ) . expect ( "tcp connect" ) ;
21192124 let ( mut client, conn) = rt. block_on (
21202125 conn:: Builder :: new ( ) . http2_only ( true ) . handshake :: < _ , Body > ( io)
21212126 ) . expect ( "http handshake" ) ;
2122- rt.spawn(conn.map_err(|e| panic!("client conn error: {:?}", e)));
21232127
2128+ rt. spawn ( conn
2129+ . map_err ( |e| panic ! ( "client conn error: {:?}" , e) )
2130+ . map ( |_| ( ) ) ) ;
21242131
21252132 // Sanity check that client is ready
21262133 rt. block_on ( future:: poll_fn ( |ctx| client. poll_ready ( ctx) ) ) . expect ( "client poll ready sanity" ) ;
@@ -2139,27 +2146,17 @@ mod conn {
21392146 let _ = shdn_tx. send ( ( ) ) ;
21402147
21412148 // Allow time for graceful shutdown roundtrips...
2142- rt.block_on(Delay::new(::std::time::Instant::now() + Duration::from_millis(100)).map_err(|e| panic!("delay error: {:?}", e))).expect("delay" );
2149+ rt. block_on ( Delay :: new ( :: std:: time:: Instant :: now ( ) + Duration :: from_millis ( 100 ) ) ) ;
21432150
21442151 // After graceful shutdown roundtrips, the client should be closed...
21452152 rt. block_on ( future:: poll_fn ( |ctx| client. poll_ready ( ctx) ) ) . expect_err ( "client should be closed" ) ;
2146- }*/
2153+ }
21472154
21482155 struct DebugStream {
21492156 tcp : TcpStream ,
21502157 shutdown_called : bool ,
21512158 }
21522159
2153- /*impl Write for DebugStream {
2154- fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
2155- self.tcp.write(buf)
2156- }
2157-
2158- fn flush(&mut self) -> io::Result<()> {
2159- self.tcp.flush()
2160- }
2161- }*/
2162-
21632160 impl AsyncWrite for DebugStream {
21642161 fn poll_shutdown ( mut self : Pin < & mut Self > , cx : & mut Context < ' _ > ) -> Poll < Result < ( ) , io:: Error > > {
21652162 self . shutdown_called = true ;
0 commit comments