| #![warn(rust_2018_idioms)] |
| #![cfg(feature = "full")] |
| |
| use tokio::io::AsyncBufReadExt; |
| use tokio_test::assert_ok; |
| |
| use std::io::Cursor; |
| |
| #[tokio::test] |
| async fn read_line() { |
| let mut buf = String::new(); |
| let mut rd = Cursor::new(b"hello\nworld\n\n"); |
| |
| let n = assert_ok!(rd.read_line(&mut buf).await); |
| assert_eq!(n, 6); |
| assert_eq!(buf, "hello\n"); |
| buf.clear(); |
| let n = assert_ok!(rd.read_line(&mut buf).await); |
| assert_eq!(n, 6); |
| assert_eq!(buf, "world\n"); |
| buf.clear(); |
| let n = assert_ok!(rd.read_line(&mut buf).await); |
| assert_eq!(n, 1); |
| assert_eq!(buf, "\n"); |
| buf.clear(); |
| let n = assert_ok!(rd.read_line(&mut buf).await); |
| assert_eq!(n, 0); |
| assert_eq!(buf, ""); |
| } |