1 use super::conn_pipe::*;
2 use super::*;
3
4 #[tokio::test]
test_pipe() -> Result<()>5 async fn test_pipe() -> Result<()> {
6 let (c1, c2) = pipe();
7 let mut b1 = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
8 let n = c1.send(&b1).await?;
9 assert_eq!(n, 10);
10
11 let mut b2 = vec![133; 100];
12 let n = c2.recv(&mut b2).await?;
13 assert_eq!(n, 10);
14 assert_eq!(&b2[..n], &b1[..]);
15
16 let n = c2.send(&b2[..10]).await?;
17 assert_eq!(n, 10);
18 let n = c2.send(&b2[..5]).await?;
19 assert_eq!(n, 5);
20
21 let n = c1.recv(&mut b1).await?;
22 assert_eq!(n, 10);
23 let n = c1.recv(&mut b1).await?;
24 assert_eq!(n, 5);
25
26 Ok(())
27 }
28