diff options
Diffstat (limited to 'vendor/weezl/tests/async.rs')
-rw-r--r-- | vendor/weezl/tests/async.rs | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/vendor/weezl/tests/async.rs b/vendor/weezl/tests/async.rs deleted file mode 100644 index 5df95b0..0000000 --- a/vendor/weezl/tests/async.rs +++ /dev/null @@ -1,48 +0,0 @@ -use std::{env, fs}; -use tokio::io::BufReader; -use tokio::net::{TcpListener, TcpStream}; -use tokio_util::compat::TokioAsyncReadCompatExt as _; -use weezl::{decode, encode, BitOrder}; - -async fn pair() -> (TcpStream, TcpStream) { - let listener = TcpListener::bind("localhost:0") - .await - .expect("No loop tcp for testing"); - let addr = listener.local_addr().expect("No address for listener"); - - let connect = TcpStream::connect(addr); - let accept = listener.accept(); - - let (a, (b, _)) = tokio::try_join!(connect, accept).expect("Can connect"); - (a, b) -} - -async fn assert_send_through(data: &[u8], send: &mut TcpStream, recv: &mut TcpStream) { - let mut send = send.compat(); - let mut recv = BufReader::new(recv).compat(); - - let mut encoder = encode::Encoder::new(BitOrder::Lsb, 8); - let encode = encoder.into_async(&mut send).encode_all(data); - - let mut recv_buffer = vec![]; - let mut decoder = decode::Decoder::new(BitOrder::Lsb, 8); - let decode = decoder.into_async(&mut recv_buffer).decode_all(&mut recv); - - let (encode, decode) = tokio::join!(encode, decode); - encode.status.expect("Could send/encoded data"); - decode.status.expect("Could recv/decode data"); - - assert_eq!(recv_buffer, data); -} - -#[test] -fn with_streams() { - let file = env::args().next().unwrap(); - let data = fs::read(file).unwrap(); - - let rt = tokio::runtime::Runtime::new().expect("runtime"); - let _enter = rt.enter(); - - let (mut send, mut recv) = rt.block_on(pair()); - rt.block_on(assert_send_through(&data, &mut send, &mut recv)); -} |