mirror of
				https://github.com/async-rs/async-std.git
				synced 2025-10-31 08:46:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			1,023 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			1,023 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use std::time::Duration;
 | |
| 
 | |
| use async_std::io;
 | |
| use async_std::task;
 | |
| 
 | |
| #[test]
 | |
| #[should_panic(expected = "timed out")]
 | |
| fn io_timeout_timedout() {
 | |
|     task::block_on(async {
 | |
|         io::timeout(Duration::from_secs(1), async {
 | |
|             let stdin = io::stdin();
 | |
|             let mut line = String::new();
 | |
|             let _n = stdin.read_line(&mut line).await?;
 | |
|             Ok(())
 | |
|         })
 | |
|         .await
 | |
|         .unwrap(); // We should panic with a timeout error
 | |
|     });
 | |
| }
 | |
| 
 | |
| #[test]
 | |
| #[should_panic(expected = "My custom error")]
 | |
| fn io_timeout_future_err() {
 | |
|     task::block_on(async {
 | |
|         io::timeout(Duration::from_secs(1), async {
 | |
|             Err::<(), io::Error>(io::Error::new(io::ErrorKind::Other, "My custom error"))
 | |
|         })
 | |
|         .await
 | |
|         .unwrap(); // We should panic with our own error
 | |
|     });
 | |
| }
 | |
| 
 | |
| #[test]
 | |
| fn io_timeout_future_ok() {
 | |
|     task::block_on(async {
 | |
|         io::timeout(Duration::from_secs(1), async { Ok(()) })
 | |
|             .await
 | |
|             .unwrap(); // We shouldn't panic at all
 | |
|     });
 | |
| }
 |