• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #[cfg(not(target_os = "redox"))]
2 #[test]
test_file()3 fn test_file() {
4     #[cfg(not(any(target_os = "illumos", target_os = "solaris")))]
5     rustix::fs::accessat(
6         rustix::fs::cwd(),
7         "Cargo.toml",
8         rustix::fs::Access::READ_OK,
9         rustix::fs::AtFlags::empty(),
10     )
11     .unwrap();
12 
13     assert_eq!(
14         rustix::fs::openat(
15             rustix::fs::cwd(),
16             "Cagro.motl",
17             rustix::fs::OFlags::RDONLY,
18             rustix::fs::Mode::empty(),
19         )
20         .unwrap_err(),
21         rustix::io::Errno::NOENT
22     );
23 
24     let file = rustix::fs::openat(
25         rustix::fs::cwd(),
26         "Cargo.toml",
27         rustix::fs::OFlags::RDONLY,
28         rustix::fs::Mode::empty(),
29     )
30     .unwrap();
31 
32     assert_eq!(
33         rustix::fs::openat(
34             &file,
35             "Cargo.toml",
36             rustix::fs::OFlags::RDONLY,
37             rustix::fs::Mode::empty(),
38         )
39         .unwrap_err(),
40         rustix::io::Errno::NOTDIR
41     );
42 
43     #[cfg(not(any(
44         target_os = "dragonfly",
45         target_os = "haiku",
46         target_os = "illumos",
47         target_os = "ios",
48         target_os = "macos",
49         target_os = "netbsd",
50         target_os = "openbsd",
51         target_os = "redox",
52         target_os = "solaris",
53     )))]
54     rustix::fs::fadvise(&file, 0, 10, rustix::fs::Advice::Normal).unwrap();
55 
56     assert_eq!(
57         rustix::io::fcntl_getfd(&file).unwrap(),
58         rustix::io::FdFlags::empty()
59     );
60     assert_eq!(
61         rustix::fs::fcntl_getfl(&file).unwrap(),
62         rustix::fs::OFlags::empty()
63     );
64 
65     let stat = rustix::fs::fstat(&file).unwrap();
66     assert!(stat.st_size > 0);
67     assert!(stat.st_blocks > 0);
68 
69     #[cfg(not(any(
70         target_os = "haiku",
71         target_os = "illumos",
72         target_os = "netbsd",
73         target_os = "redox",
74         target_os = "solaris",
75         target_os = "wasi",
76     )))]
77     {
78         let statfs = rustix::fs::fstatfs(&file).unwrap();
79         assert!(statfs.f_blocks > 0);
80     }
81 
82     #[cfg(not(any(
83         target_os = "haiku",
84         target_os = "illumos",
85         target_os = "redox",
86         target_os = "solaris",
87         target_os = "wasi",
88     )))]
89     {
90         let statvfs = rustix::fs::fstatvfs(&file).unwrap();
91         assert!(statvfs.f_frsize > 0);
92     }
93 
94     #[cfg(all(feature = "fs", feature = "net"))]
95     assert_eq!(rustix::io::is_read_write(&file).unwrap(), (true, false));
96 
97     assert_ne!(rustix::io::ioctl_fionread(&file).unwrap(), 0);
98 }
99