diff options
| author | Benoît du Garreau <bdgdlm@outlook.com> | 2023-03-02 11:50:37 +0100 |
|---|---|---|
| committer | Benoît du Garreau <bdgdlm@outlook.com> | 2023-03-02 11:51:20 +0100 |
| commit | 23cd4cee05cf8b07d341dd01e4eafebad76da5c4 (patch) | |
| tree | f9d37d0d938d25adba5acaa9a51045debfdec043 /library/std/src/os/unix/fs/tests.rs | |
| parent | 1e63f08c85d7bc2fb9cf2fad21d6d17359b0be15 (diff) | |
| download | rust-23cd4cee05cf8b07d341dd01e4eafebad76da5c4.tar.gz rust-23cd4cee05cf8b07d341dd01e4eafebad76da5c4.zip | |
Add basic tests
Diffstat (limited to 'library/std/src/os/unix/fs/tests.rs')
| -rw-r--r-- | library/std/src/os/unix/fs/tests.rs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/library/std/src/os/unix/fs/tests.rs b/library/std/src/os/unix/fs/tests.rs new file mode 100644 index 00000000000..67f607bd468 --- /dev/null +++ b/library/std/src/os/unix/fs/tests.rs @@ -0,0 +1,57 @@ +use super::*; + +#[test] +fn read_vectored_at() { + let msg = b"preadv is working!"; + let dir = crate::sys_common::io::test::tmpdir(); + + let filename = dir.join("preadv.txt"); + { + let mut file = fs::File::create(&filename).unwrap(); + file.write_all(msg).unwrap(); + } + { + let file = fs::File::open(&filename).unwrap(); + let mut buf0 = [0; 4]; + let mut buf1 = [0; 3]; + + let mut iovec = [io::IoSliceMut::new(&mut buf0), io::IoSliceMut::new(&mut buf1)]; + + let n = file.read_vectored_at(&mut iovec, 4).unwrap(); + + assert!(n == 4 || n == 7); + assert_eq!(&buf0, b"dv i"); + + if n == 7 { + assert_eq!(&buf1, b"s w"); + } + } +} + +#[test] +fn write_vectored_at() { + let msg = b"pwritev is not working!"; + let dir = crate::sys_common::io::test::tmpdir(); + + let filename = dir.join("preadv.txt"); + { + let mut file = fs::File::create(&filename).unwrap(); + file.write_all(msg).unwrap(); + } + let expected = { + let file = fs::File::options().write(true).open(&filename).unwrap(); + let buf0 = b" "; + let buf1 = b"great "; + + let iovec = [io::IoSlice::new(buf0), io::IoSlice::new(buf1)]; + + let n = file.write_vectored_at(&iovec, 11).unwrap(); + + assert!(n == 4 || n == 11); + + if n == 4 { b"pwritev is working!" } else { b"pwritev is great !" } + }; + + let content = fs::read(&filename).unwrap(); + assert_eq!(&content, expected); +} |
