MCPcopy Create free account
hub / github.com/bytecodealliance/rustix / test_fcntl_pipe_sized_writes

Function test_fcntl_pipe_sized_writes

tests/pipe/fcntl.rs:36–61  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

34#[cfg(linux_kernel)]
35#[test]
36fn 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}

Callers

nothing calls this directly

Calls 3

pipeFunction · 0.50
fcntl_getpipe_sizeFunction · 0.50
fcntl_setpipe_sizeFunction · 0.50

Tested by

no test coverage detected