1
0
Fork 0
firefox/third_party/rust/tokio/tests/io_fill_buf.rs
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

34 lines
859 B
Rust

#![warn(rust_2018_idioms)]
#![cfg(all(feature = "full", not(target_os = "wasi")))] // Wasi does not support file operations
use tempfile::NamedTempFile;
use tokio::fs::File;
use tokio::io::{AsyncBufReadExt, BufReader};
use tokio_test::assert_ok;
#[tokio::test]
async fn fill_buf_file() {
let file = NamedTempFile::new().unwrap();
assert_ok!(std::fs::write(file.path(), b"hello"));
let file = assert_ok!(File::open(file.path()).await);
let mut file = BufReader::new(file);
let mut contents = Vec::new();
loop {
let consumed = {
let buffer = assert_ok!(file.fill_buf().await);
if buffer.is_empty() {
break;
}
contents.extend_from_slice(buffer);
buffer.len()
};
file.consume(consumed);
}
assert_eq!(contents, b"hello");
}