Upgrade some lib tests to async/.await version (#1882)
* test(http): use async/.await Signed-off-by: Weihang Lo <me@weihanglo.tw> * test(pool): use async/.await * test(pool): pass &mut Future into PollOnce * test(client): tests/benches using async/.await * test(client): change due to PR #1917 * test(client): change Delay to delay fucntion Ref: https://github.com/tokio-rs/tokio/pull/1440 * test(client): remove warning triggers
This commit is contained in:
		
				
					committed by
					
						 Sean McArthur
						Sean McArthur
					
				
			
			
				
	
			
			
			
						parent
						
							511ea3889b
						
					
				
				
					commit
					144893b409
				
			| @@ -630,58 +630,76 @@ impl ConnectingTcp { | ||||
|  | ||||
| #[cfg(test)] | ||||
| mod tests { | ||||
|     // FIXME: re-implement tests with `async/await`, this import should | ||||
|     // trigger a warning to remind us | ||||
|     use crate::Error; | ||||
|     /* | ||||
|     use std::io; | ||||
|     use futures::Future; | ||||
|  | ||||
|     use tokio::runtime::current_thread::Runtime; | ||||
|     use tokio_net::driver::Handle; | ||||
|  | ||||
|     use super::{Connect, Destination, HttpConnector}; | ||||
|  | ||||
|     #[test] | ||||
|     fn test_errors_missing_authority() { | ||||
|         let mut rt = Runtime::new().unwrap(); | ||||
|         let uri = "/foo/bar?baz".parse().unwrap(); | ||||
|         let dst = Destination { | ||||
|             uri, | ||||
|         }; | ||||
|         let connector = HttpConnector::new(1); | ||||
|         let connector = HttpConnector::new(); | ||||
|  | ||||
|         assert_eq!(connector.connect(dst).wait().unwrap_err().kind(), io::ErrorKind::InvalidInput); | ||||
|         rt.block_on(async { | ||||
|             assert_eq!( | ||||
|                 connector.connect(dst).await.unwrap_err().kind(), | ||||
|                 io::ErrorKind::InvalidInput, | ||||
|             ); | ||||
|         }) | ||||
|     } | ||||
|  | ||||
|     #[test] | ||||
|     fn test_errors_enforce_http() { | ||||
|         let mut rt = Runtime::new().unwrap(); | ||||
|         let uri = "https://example.domain/foo/bar?baz".parse().unwrap(); | ||||
|         let dst = Destination { | ||||
|             uri, | ||||
|         }; | ||||
|         let connector = HttpConnector::new(1); | ||||
|         let connector = HttpConnector::new(); | ||||
|  | ||||
|         assert_eq!(connector.connect(dst).wait().unwrap_err().kind(), io::ErrorKind::InvalidInput); | ||||
|         rt.block_on(async { | ||||
|             assert_eq!( | ||||
|                 connector.connect(dst).await.unwrap_err().kind(), | ||||
|                 io::ErrorKind::InvalidInput, | ||||
|             ); | ||||
|         }) | ||||
|     } | ||||
|  | ||||
|  | ||||
|     #[test] | ||||
|     fn test_errors_missing_scheme() { | ||||
|         let mut rt = Runtime::new().unwrap(); | ||||
|         let uri = "example.domain".parse().unwrap(); | ||||
|         let dst = Destination { | ||||
|             uri, | ||||
|         }; | ||||
|         let connector = HttpConnector::new(1); | ||||
|         let connector = HttpConnector::new(); | ||||
|  | ||||
|         assert_eq!(connector.connect(dst).wait().unwrap_err().kind(), io::ErrorKind::InvalidInput); | ||||
|         rt.block_on(async { | ||||
|             assert_eq!( | ||||
|                 connector.connect(dst).await.unwrap_err().kind(), | ||||
|                 io::ErrorKind::InvalidInput, | ||||
|             ); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     #[test] | ||||
|     #[cfg_attr(not(feature = "__internal_happy_eyeballs_tests"), ignore)] | ||||
|     fn client_happy_eyeballs() { | ||||
|         use std::future::Future; | ||||
|         use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, TcpListener}; | ||||
|         use std::task::Poll; | ||||
|         use std::time::{Duration, Instant}; | ||||
|  | ||||
|         use futures::{Async, Poll}; | ||||
|         use tokio::runtime::current_thread::Runtime; | ||||
|         use tokio_net::driver::Handle; | ||||
|  | ||||
|         use crate::common::{Pin, task}; | ||||
|         use super::dns; | ||||
|         use super::ConnectingTcp; | ||||
|  | ||||
| @@ -768,16 +786,15 @@ mod tests { | ||||
|         struct ConnectingTcpFuture(ConnectingTcp); | ||||
|  | ||||
|         impl Future for ConnectingTcpFuture { | ||||
|             type Item = u8; | ||||
|             type Error = ::std::io::Error; | ||||
|             type Output = Result<u8, std::io::Error>; | ||||
|  | ||||
|             fn poll(&mut self) -> Poll<Self::Item, Self::Error> { | ||||
|                 match self.0.poll(&Some(Handle::default())) { | ||||
|             fn poll(mut self: Pin<&mut Self>, cx: &mut task::Context<'_>) -> Poll<Self::Output> { | ||||
|                 match self.0.poll(cx,&Some(Handle::default())) { | ||||
|                     Poll::Ready(Ok(stream)) => Poll::Ready(Ok( | ||||
|                         if stream.peer_addr().unwrap().is_ipv4() { 4 } else { 6 } | ||||
|                     )), | ||||
|                     Poll::Ready(Err(e)) => Poll::Ready(Err(e)), | ||||
|                     Poll::Pending => Poll::Pending, | ||||
|                     Err(err) => Err(err), | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| @@ -818,6 +835,5 @@ mod tests { | ||||
|             (reachable, duration) | ||||
|         } | ||||
|     } | ||||
|     */ | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user