()
| 34 | #[cfg(linux_kernel)] |
| 35 | #[test] |
| 36 | fn test_fcntl_pipe_sized_writes() { |
| 37 | use rustix::io::{read, write}; |
| 38 | use rustix::pipe::{fcntl_getpipe_size, fcntl_setpipe_size}; |
| 39 | |
| 40 | let (reader, writer) = rustix::pipe::pipe().unwrap(); |
| 41 | |
| 42 | let size = fcntl_getpipe_size(&reader).unwrap(); |
| 43 | |
| 44 | let ones = vec![1; size]; |
| 45 | assert_eq!(write(&writer, &ones), Ok(size)); |
| 46 | let mut buf = vec![2; size]; |
| 47 | assert_eq!(read(&reader, &mut buf), Ok(size)); |
| 48 | assert_eq!(buf, ones); |
| 49 | |
| 50 | let size = size * 2; |
| 51 | let set_size = fcntl_setpipe_size(&reader, size).unwrap(); |
| 52 | let get_size = fcntl_getpipe_size(&reader).unwrap(); |
| 53 | assert_eq!(size, set_size); |
| 54 | assert_eq!(size, get_size); |
| 55 | |
| 56 | let ones = vec![1; size]; |
| 57 | assert_eq!(write(&writer, &ones), Ok(size)); |
| 58 | let mut buf = vec![2; size]; |
| 59 | assert_eq!(read(&reader, &mut buf), Ok(size)); |
| 60 | assert_eq!(buf, ones); |
| 61 | } |
nothing calls this directly
no test coverage detected