This assert does not hold as many streams can be pushed into pending_capacity during a call to send_data(). See issue #224 for more discussion and sign-off. Closes #224
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //! Utilities to support tests.
 | |
| 
 | |
| #[cfg(not(feature = "unstable"))]
 | |
| compile_error!(
 | |
|     "Tests depend on the 'unstable' feature on h2. \
 | |
|     Retry with `cargo test --features unstable`"
 | |
| );
 | |
| 
 | |
| pub extern crate bytes;
 | |
| pub extern crate env_logger;
 | |
| pub extern crate futures;
 | |
| pub extern crate h2;
 | |
| pub extern crate http;
 | |
| pub extern crate string;
 | |
| pub extern crate tokio_io;
 | |
| 
 | |
| // Kind of annoying, but we can't use macros from crates that aren't specified
 | |
| // at the root.
 | |
| macro_rules! try_ready {
 | |
|     ($e:expr) => ({
 | |
|         use $crate::support::futures::Async;
 | |
|         match $e {
 | |
|             Ok(Async::Ready(t)) => t,
 | |
|             Ok(Async::NotReady) => return Ok(Async::NotReady),
 | |
|             Err(e) => return Err(From::from(e)),
 | |
|         }
 | |
|     })
 | |
| }
 | |
| 
 | |
| macro_rules! try_nb {
 | |
|     ($e:expr) => ({
 | |
|         use ::std::io::ErrorKind::WouldBlock;
 | |
|         use $crate::support::futures::Async;
 | |
| 
 | |
|         match $e {
 | |
|             Ok(t) => t,
 | |
|             Err(ref e) if e.kind() == WouldBlock => {
 | |
|                 return Ok(Async::NotReady)
 | |
|             }
 | |
|             Err(e) => return Err(e.into()),
 | |
|         }
 | |
|     })
 | |
| }
 | |
| 
 | |
| #[macro_use]
 | |
| mod assert;
 | |
| 
 | |
| #[macro_use]
 | |
| pub mod raw;
 | |
| 
 | |
| pub mod frames;
 | |
| pub mod prelude;
 | |
| pub mod mock;
 | |
| pub mod mock_io;
 | |
| pub mod notify;
 | |
| pub mod util;
 | |
| 
 | |
| mod future_ext;
 | |
| 
 | |
| pub use self::future_ext::{FutureExt, Unwrap};
 | |
| 
 | |
| pub type WindowSize = usize;
 | |
| pub const DEFAULT_WINDOW_SIZE: WindowSize = (1 << 16) - 1;
 | |
| 
 | |
| // This is our test Codec type
 | |
| pub type Codec<T> = h2::Codec<T, ::std::io::Cursor<::bytes::Bytes>>;
 | |
| 
 | |
| // This is the frame type that is sent
 | |
| pub type SendFrame = h2::frame::Frame<::std::io::Cursor<::bytes::Bytes>>;
 |