@@ -1478,15 +1478,17 @@ mod dispatch_impl {
1478
1478
assert_eq ! ( vec, b"bar=foo" ) ;
1479
1479
}
1480
1480
1481
- /*#[test]
1481
+ #[ ignore] // Re-enable as soon as HTTP/2.0 is supported again.
1482
+ #[ test]
1482
1483
fn alpn_h2 ( ) {
1483
1484
use hyper:: Response ;
1484
1485
use hyper:: server:: conn:: Http ;
1485
1486
use hyper:: service:: service_fn;
1487
+ use tokio_tcp:: TcpListener ;
1486
1488
1487
1489
let _ = pretty_env_logger:: try_init ( ) ;
1488
1490
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 ( ) ;
1490
1492
let addr = listener. local_addr ( ) . unwrap ( ) ;
1491
1493
let mut connector = DebugConnector :: new ( ) ;
1492
1494
connector. alpn_h2 = true ;
@@ -1495,7 +1497,8 @@ mod dispatch_impl {
1495
1497
let client = Client :: builder ( )
1496
1498
. build :: < _ , :: hyper:: Body > ( connector) ;
1497
1499
1498
- let srv = listener.incoming()
1500
+ let mut incoming = listener. incoming ( ) ;
1501
+ let srv = incoming
1499
1502
. try_next ( )
1500
1503
. map_err ( |_| unreachable ! ( ) )
1501
1504
. and_then ( |item| {
@@ -1504,7 +1507,7 @@ mod dispatch_impl {
1504
1507
. http2_only ( true )
1505
1508
. serve_connection ( socket, service_fn ( |req| async move {
1506
1509
assert_eq ! ( req. headers( ) . get( "host" ) , None ) ;
1507
- Ok(Response::new(Body::empty()))
1510
+ Ok :: < _ , hyper :: Error > ( Response :: new ( Body :: empty ( ) ) )
1508
1511
} ) )
1509
1512
} )
1510
1513
. map_err ( |e| panic ! ( "server error: {}" , e) ) ;
@@ -1529,7 +1532,7 @@ mod dispatch_impl {
1529
1532
1530
1533
assert_eq ! ( connects. load( Ordering :: SeqCst ) , 3 , "after ALPN, no more connects" ) ;
1531
1534
drop ( client) ;
1532
- }*/
1535
+ }
1533
1536
1534
1537
1535
1538
struct DebugConnector {
@@ -2094,12 +2097,12 @@ mod conn {
2094
2097
assert_eq ! ( vec, b"bar=foo" ) ;
2095
2098
}
2096
2099
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 ( ) {
2100
2103
use futures_util:: future;
2101
2104
use hyper:: { Response , Server } ;
2102
- use hyper::service::service_fn;
2105
+ use hyper:: service:: { make_service_fn , service_fn} ;
2103
2106
use tokio:: timer:: Delay ;
2104
2107
2105
2108
let _ = pretty_env_logger:: try_init ( ) ;
@@ -2108,19 +2111,23 @@ mod conn {
2108
2111
2109
2112
let server = Server :: bind ( & ( [ 127 , 0 , 0 , 1 ] , 0 ) . into ( ) )
2110
2113
. 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 ( ) ) ) ) )
2113
2116
} ) ) ;
2114
2117
let addr = server. local_addr ( ) ;
2115
2118
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 ( |_| ( ) ) ) ;
2117
2122
2118
2123
let io = rt. block_on ( tcp_connect ( & addr) ) . expect ( "tcp connect" ) ;
2119
2124
let ( mut client, conn) = rt. block_on (
2120
2125
conn:: Builder :: new ( ) . http2_only ( true ) . handshake :: < _ , Body > ( io)
2121
2126
) . expect ( "http handshake" ) ;
2122
- rt.spawn(conn.map_err(|e| panic!("client conn error: {:?}", e)));
2123
2127
2128
+ rt. spawn ( conn
2129
+ . map_err ( |e| panic ! ( "client conn error: {:?}" , e) )
2130
+ . map ( |_| ( ) ) ) ;
2124
2131
2125
2132
// Sanity check that client is ready
2126
2133
rt. block_on ( future:: poll_fn ( |ctx| client. poll_ready ( ctx) ) ) . expect ( "client poll ready sanity" ) ;
@@ -2139,27 +2146,17 @@ mod conn {
2139
2146
let _ = shdn_tx. send ( ( ) ) ;
2140
2147
2141
2148
// 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 ) ) ) ;
2143
2150
2144
2151
// After graceful shutdown roundtrips, the client should be closed...
2145
2152
rt. block_on ( future:: poll_fn ( |ctx| client. poll_ready ( ctx) ) ) . expect_err ( "client should be closed" ) ;
2146
- }*/
2153
+ }
2147
2154
2148
2155
struct DebugStream {
2149
2156
tcp : TcpStream ,
2150
2157
shutdown_called : bool ,
2151
2158
}
2152
2159
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
-
2163
2160
impl AsyncWrite for DebugStream {
2164
2161
fn poll_shutdown ( mut self : Pin < & mut Self > , cx : & mut Context < ' _ > ) -> Poll < Result < ( ) , io:: Error > > {
2165
2162
self . shutdown_called = true ;
0 commit comments